C语言定义未知长度的数组

我在编写归并排序算法时遇到了这个问题。为什么不能用
scanf("%d",&n);
int a[n+1];
如果用malloc函数,请解释一下指针在数组里的用法

首先确认你的编译器是否支持C99的vla特性,如果支持,那么直接用上面的代码就可以了

如果不支持只好使用malloc的动态内存分配来实现

scanf("%d",&n);
int *a=(int *)malloc(sizeof(int)*n+1);
a[0]=xxx;
...
a[n]=xxx;

温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-07-12
等到用户输入的行数列数以后,用malloc分配内存,得到指针就行了.

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网