내가 포함한 FileContent 변수를이 코드에 문제가있어이 ... 내가 FileReader를 재 할당에 의한 변경 내 주에서 잘 작동 바란다 변경,하지만 작동하지 않습니다 ..포인터 참조
void fileReader(char *fileName, char *fileContent){
FILE *inputFile = fopen(fileName, "r");
int fileLength = 0;
int endFlag = fgetc(inputFile);
while(endFlag != EOF){
fileContent = (char *) realloc (fileContent, (fileLength + 1) * sizeof(char));
fileContent[fileLength] = endFlag;
endFlag = fgetc(inputFile);
fileLength++;
}
}
int main(int argc, char const *argv[]){
char *fileName = (char *) malloc (sizeof(char));
char *taskStack = (char *) malloc (sizeof(char));
char *fileContent = NULL;
inputReader(fileName, taskStack);
fileReader(fileName, fileContent);
return 0;
}
의도하는 것은 무엇이며 예상되는 결과는 무엇입니까? – mohit
'p = realloc (p, ...)'하지 말아야한다. 'realloc'이 실패하면'p'에 대한 참조를 잃어버린 채 메모리를 누설하게됩니다. 물론, 당신은'realloc'이 성공했는지 확인하지 않고 있습니다 ... – jamesdlin
** [Do * not * friggin '은'malloc()'!!!의 반환 값을 캐스팅합니다. (http://stackoverflow.com/ 질문/605845/do-i-cast-the-malloc/605858 # 605858) ** –