在c 1中使用realloc

时间:2015-12-13 14:05:47

标签: c realloc

我不知道这段代码中的问题是什么 -

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]);

谢谢。

1 个答案:

答案 0 :(得分:4)

A未初始化,请尝试使用NULL初始化它:

char **A = NULL;
initialize(&A, 10, 10);
在这种情况下,

realloc()的行为类似于malloc(),并且会在进一步调用中正确realloc()。否则,realloc()将取消引用未初始化的指针。

此外,realloc() *A

realloc(*A, sizeof(char *) * r);

否则,您将尝试重新分配指向已分配空间A的指针,这当然会失败。