【发布时间】:2012-03-07 01:56:54
【问题描述】:
我想动态分配一个字符数组。所以我有上面的代码
void initialize(char **document_table, int size){
int x, i, j, M;
printf("how many words every line: "); scanf("%d", &M);
document_table = malloc(sizeof(char) * size);
for(x = 0; x < size; x ++) {
document_table[x] = malloc(sizeof(char) * M);
}
for(i=0; i<N; i++){
for(j=0; j<N; j++){
scanf("%c",&document_table[i][j]);
}
}
}
但似乎在分配内存后功能停止工作。
【问题讨论】:
-
您的嵌套循环使用相同的索引变量
i,并一直将第一个元素的地址传递给scanf。 -
此外,
N没有定义或初始化。我想你的意思可能是M。但如果是这种情况,您不希望size作为函数参数传入,而是希望根据用户输入的内容进行计算? -
xm iand j 输入错误。但这不是问题所在,我有大小代替 N。但扫描第一个程序停止后它不起作用。
标签: c function 2d malloc allocation