您的位置:首页 > 财经 > 产业 > 适合个人外贸平台_中央广播电视总台2019主持人大赛_如何百度推广_成人短期培训学校

适合个人外贸平台_中央广播电视总台2019主持人大赛_如何百度推广_成人短期培训学校

2025/4/22 13:45:15 来源:https://blog.csdn.net/javacode123456/article/details/147091366  浏览:    关键词:适合个人外贸平台_中央广播电视总台2019主持人大赛_如何百度推广_成人短期培训学校
适合个人外贸平台_中央广播电视总台2019主持人大赛_如何百度推广_成人短期培训学校

以前确实没关注过这个问题,一直都是直接定义固定长度的数组,尽量减少指针的操作。

 柔性数组主要是再结构体里面定义一个长度为0的数组,这里和定义一个指针式存在明显去别的。定义一个指针会占用内存,但是定义一个长度为0的数组不会占用空间。

以下具体的使用例程:

//结构体定义
strcut Test
{int number;char buf[0];    //柔性数组
};int main(void)
{struct Test* ptr = null;        //创建指针/*动态分配大小,这里是柔性数组实现的关键部分根据上面的描述,结构体实际上空间只有4个Byte后续增加的空间,就是柔性数组的大小,实现不定长数组。*/ptr = (struct Test*)malloc(sizeof(struct Test) + 40);ptr->number = 20;if(ptr != null){printf("分配成功\n");for(int i = 0;i < ptr->number){ptr->buf[i] = i;printf("%d" ,ptr->buf[i]);}printf("测试完毕\n");//释放free(ptr);//消除野指针ptr = null;}else{printf("分配失败\n");}return 0;
}

总体来说,柔性数组具有极大的灵活性,主要是用作底层接口实现,对外只需要使用一个指针实现不定长数组,减少代码的风险。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com