2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > C语言如何定义一组长度不定的数组? – 网络

C语言如何定义一组长度不定的数组? – 网络

时间:2024-04-11 11:22:56

相关推荐

C语言如何定义一组长度不定的数组? – 网络

1.使用柔性数组的话就是在结构体中定义一个长度为0的数组:

structMyData{intnLen;chardata[0];};数组的长度为0就表明数组占用的长度只有一个数组名,当要使用的时候就可以直接分配制定长度的空间,使用完之后释放即可。

intnLen=100;MyData*myData=(MyData*)malloc(sizeof(MyData)+100);

再对这个数组进行其他操作,操作完了之后free掉分配的空间。

2.使用动态分配的方式,和1差不多,只不过要先定义一个指针用来保存分配好的内存空间的其实地址,分配好之后,这个指针就可以当作数组来使用,你要分配多少都是可以变化的,操作完成之后同样要进行释放。

char*p;

p=(char*)malloc(100);

//对p进行操作

free(p);

如果你的变化的长度是来自其他计算公式或者函数也可以,可以另外定义一个函数,函数的返回值可以是结构体或者指针,而参数就是这个变化的长度。

char*TEST(intlen){

char*p;p=(char*)malloc(len);returnp;

}

调用:char*a=TEST(获取长度的其他函数);

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。