가능한 중복 : 내 실수이고
Realloc is not resizing array of pointersrealloc을 변경하지 않는 크기
사람이 말해 줄래? 이 함수는 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입니다.