我不知道这段代码中的问题是什么 -
void initialize(char ***A, int r, int c){
*A = (char **)realloc(A,sizeof(char *)*r);
}
这是电话 -
char **A;
initialize(&A, 10, 10);
printf("%c",A[1][1]);
谢谢。
答案 0 :(得分:4)
A未初始化,请尝试使用NULL
初始化它:
char **A = NULL;
initialize(&A, 10, 10);
在这种情况下, realloc()
的行为类似于malloc()
,并且会在进一步调用中正确realloc()
。否则,realloc()
将取消引用未初始化的指针。
此外,realloc()
*A
:
realloc(*A, sizeof(char *) * r);
否则,您将尝试重新分配指向已分配空间A的指针,这当然会失败。