我在这个代码与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