可能重复:
Realloc 未调整指针数组的大小
谁能告诉我我的错误在哪里?此函数应创建一个由 提供的字符组成的数组stdin
。我阅读了一些相关的问题,但它太复杂了,我无法理解。
char *readChar(void)
{
int c;
int len = 0;
char* parr = malloc(sizeof(char));
while((c = getchar()) != EOF)
{
++len;
int size = sizeof(char)*len;
parr = (char *) realloc(parr,size);
*(parr+size-1) = (char) c;
printf("Done! Size should be: %dB, but real size is %dB\n",size,sizeof(parr));
}
return parr;
}
输出:
完毕!大小应该是:1B,但实际大小是 8B 完成!大小应该是:2B,但实际大小是 8B 完成!大小应该是:3B,但实际大小是 8B 完成!大小应该是:4B,但实际大小是 8B