想要定义一个由变量定义大小的二维数组来存储字符串,但是发现程序无法运行,但是将变量定义为常量就可以正常运行,
定义放方法一开始为char a[n][100]
改为 char a[10][100]就可以了
这是为什么?如果我想定义一个这样的数组我应该怎么写?(如果可以不用malloc函数更好)
万分感谢!
数组定义都需要定义成确切的大小。因为涉及到内存的分配。想要动态大小都是要用malloc。
定义数组是放在栈中的,需要在编译的时候就要确定大小。你可以这样用。
int (*p)[100] = malloc(n*100*sizeof(int));
```c
```