扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
你好,如果正常定义以为一维数组的话,是必须指定其大小的,如果在定义的同时进行初始化,则可以不必写大小,例如int a[]={1,2,3},编译器会根据初始化数据自动计算出数组长度。其次,如果用一维数组做函数的形参,也可以不指定大小。
成都创新互联公司-专业网站定制、快速模板网站建设、高性价比垣曲网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式垣曲网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖垣曲地区。费用合理售后完善,十余年实体公司更值得信赖。
二维数组在定义时需要指定大小,就算在定义时初始化也必须指定第二个方括号中数,做函数参数时也是一样。
希望可以帮到你,望采纳。
c语言中不可以用变量定义数组的个数。
可以使用mallo函数
mallo函数返回的实际是一个无类型指针,必须在其前面加上指针类型强制转换才可以使用;
指针自身=(指针类型*)malloc(sizeof(指针类型)*数据数量);
int*p=NULL;
intn=10;
p=(int*)malloc(sizeof(int)*n);
扩展资料
mallo函数使用注意事项
调用malloc函数时,它沿连接表寻找一个大到足以满足用户请求所需要的内存块。然后,将该内存块一分为二(一块的大小与用户请求的大小相等,另一块的大小就是剩下的字节)。接下来,将分配给用户的那块内存传给用户,并将剩下的那块(如果有的话)返回到连接表上。
调用free函数时,它将用户释放的内存块连接到空闲链上。到最后,空闲链会被切成很多的小内存片段,如果这时用户申请一个大的内存片段,那么空闲链上可能没有可以满足用户要求的片段了。
因为函数里面的x,y并不是主函数里面的a[0],a[1],实参仅仅把值传给了形参,而并不是本身,也就是说你实际上改变了x,y而不是a[0] a[1],而当函数运行完之后,x,y也就释放了,和a[0],a[1]就没什么关系了
用指针才行
C语言数组这样定义是不合法的,必须要说明数组的大小。数组的大小在不说明时,必须要初始化为指定有限的元素。例如,
char s[100];
char s1[]="asdfgh";
char s2[]={'A','B'};
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流