如何在C中初始化二维字符串数组的行
我想使用指针将字符串存储在2D数组中,但我不知道该怎么做。我看到的示例仅使用int数组,或者使用方括号[]分配固定大小的内存。因此,我试图初始化我的2D字符串数组,这就是我所拥有的:如何在C中初始化二维字符串数组的行,c,arrays,memory-management,char,C,Arrays,Memory Management,Char,我想使用指针将字符串存储在2D数组中,但我不知道该怎么做。我看到的示例仅使用int数组,或者使用方括号[]分配固定大小的内存。因此,我试图初始化我的2D字符串数组,这就是我所拥有的: char ** stringArr = (char**)malloc(/*I don't know what goes here*/); for(i = 0; i < rows; i++) stringArr[i] = (char*)malloc(cols *sizeof(char)); char*
char ** stringArr = (char**)malloc(/*I don't know what goes here*/);
for(i = 0; i < rows; i++)
stringArr[i] = (char*)malloc(cols *sizeof(char));
char**stringArr=(char**)malloc(/*我不知道这里是什么*/);
对于(i=0;i
正如您可以看到我第一次调用malloc时的参数一样,如果我想要一个精确的x行数,每行存储一个字符字符串,那么我就无法确定应该在那里放置什么。任何帮助都将不胜感激 执行此操作,因为您正在分配一些指针:
malloc(rows * sizeof(char*))
您需要使用行数
char ** stringArr = malloc(rows * sizeof(char*));
另外,不要键入malloc()调用的返回值。使用
sizeof*ptr*N
请注意,即使stringArr
是char**stringArr
或int**stringArr
,此方法如何使用正确的类型
stringArr = malloc(sizeof *stringArr * rows);
for(i = 0; i < rows; i++)
stringArr[i] = malloc(sizeof *(stringArr[i]) * cols);
stringArr=malloc(sizeof*stringArr*行);
对于(i=0;i
谢谢您的回复,但为什么我不应该键入malloc()?就连cplusplus.com也在malloc()的参考页面上键入了它。@Ghost\u Stark这里是一个受保护的主题链接!希望它能让事情更清楚:谢谢!我意识到我的错误。我分配的是指针,而不是纯值。