sue*_*nda 1 c multidimensional-array dynamic-arrays
我试图定义一个包含指向字符串的char指针的动态数组.字符串可以是任意长度,所以我使用了char指针.我希望每次需要存储更多值时动态调整数组大小.以下代码给出了分段错误.我做得好吗?
int main() {
char **input=NULL;
char *buffer;
int i=0;
do {
input = (char **)realloc(input, (i+1) * sizeof(char *));
scanf("%s", &buffer);
strcpy(input[i++],buffer);
} while(strlen(buffer)!=0);
}
Run Code Online (Sandbox Code Playgroud)
您的代码中存在多个问题.在你修复所有这些之后它才会起作用
buffer.如果不是下一个可能更严重的点,Scanf会写入空气buffer给scanf,而不是&bufferinput[i].你只是为内存分配input.