
说说你这个例子吧,你这个其实不属于变长数组,因为在定义数组 arr[] 前,它的大小 var 已经是固定的了。应该是这样:
int var
int arr[var]
先不要初始化变量 var。
我再给个例子吧,《Linux C编程一站式学习》里面关于归并排序算法的其中一个函数。
void merge(int start, int mid, int end)
{
int n1 = mid - start + 1
int n2 = end - mid
int left[n1], right[n2]
......
}
其中,left与right都是变长数组,因为在定义的时候,数组大小不确定。
gcc默认是不支持c99及以上版本的如果想支持,需要在编译时加参数:-std=c99
gcc -std=c99 -o xx xx.c
或者在源码里定义宏
#define __STDC_VERSION__ 199901L
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)