1. 一般情况下,数组的定义维数必须是立即数,不能是变量。因此数组的定义一般情况下来讲是固定的。
2. 有一种办法,可以满足lz的要求,创建长度可变的动态数组:指针
struct array {
int *array_int;
char * array_char;
}; // 这里定义了一个int指针和char指针,可分别当做int数组和char数组使用。不过在使用之前,需要分配给它们内存。
array_int = (int*)malloc(x*sizeof(int));
array_char = (char*)malloc(y*sizeof(char));
x和y分别为你需要的数组维数。这样你就可以在需要的时候定义它们的长度。
3. 如果希望有可伸缩的功能。可以这样做:
当需要数组为一个新的长度时,free旧数组,再malloc一个新数组。
lz不懂可追问