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

C语言如何定义一组长度不定的数组 – java – 前端

时间:2020-01-19 13:03:46

相关推荐

C语言如何定义一组长度不定的数组 – java – 前端

C语言中实现变长数组有几种方式:1.柔性数组 2.动态分配内存

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

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

int nLen = 100;MyData *myData = (MyData*)malloc(sizeof(MyData) + 100);

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

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

char *p;

p=(char *)malloc(100);

//对p进行操作

free(p);

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

char* TEST(int len){

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

}

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

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