Arrays 如何在C中编写动态数量的行并将它们分配给数组

Arrays 如何在C中编写动态数量的行并将它们分配给数组,arrays,c,loops,user-input,Arrays,C,Loops,User Input,您好,我正在尝试在C中向数组写入一些行,行的数量取决于用户的第一次输入 我的程序在第二次迭代后意外结束,即使我要求循环8次 intmain(){ 字符行[32]; fgets(line,32,stdin);//获取未来输入行的(int)数量 int n=原子(线); char*array[n];//创建一个数组来保存将来的行 对于(int i=0;i

您好,我正在尝试在C中向数组写入一些行,行的数量取决于用户的第一次输入

我的程序在第二次迭代后意外结束,即使我要求循环8次

intmain(){
字符行[32];
fgets(line,32,stdin);//获取未来输入行的(int)数量
int n=原子(线);
char*array[n];//创建一个数组来保存将来的行
对于(int i=0;i
这一行创建了一个由n个char*类型的元素组成的数组,因此是一个指针数组。由于这些元素没有初始化,最终会将字节写入内存中的任意地址,从而导致崩溃

您需要使用malloc()为数组的每个元素分配32字节的内存,或者声明一个包含n个字符[32]个元素的数组(因此每个元素都是一个32个字符的数组):


预期的最大行长是多少?(不询问行数。)
char *array[n];
char array[n][32];