我在這個代碼與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'cast''malloc()'!!!]的返回值(http://stackoverflow.com/問題/ 605845/do-i-cast-the-result-of-malloc/605858#605858)** – 2013-08-02 06:31:58