1
我有一個過程readTokens(),它接受一個文件和一個數組,並標記文件並將其放入數組中,但當我訪問該數組時,它充滿了最後的元素。爲什麼?這裏是我的readTokens()方法:數組充滿文件中的最後一個元素
void
readTokens(char *fileName, char** a[])
{
FILE *fp;
char *token;
int count = 0;
fp = fopen(fileName, "r");
if (fp == 0)
{
fprintf(stderr,"file %s could not be opened for reading\n", fileName);
exit(1);
}
token = readLine(fp);
while(!feof(fp))
{
a[count] = token;
++count;
free(token);
token = readLine(fp);
}
fclose(fp);
}
你爲什麼打free()? free()只能在你分配的內存中調用。 – nem035 2014-09-10 16:05:38
很確定這是C,但你應該標記語言。 – crashmstr 2014-09-10 16:06:51
對不起,這是c。我不應該釋放令牌嗎? – 2014-09-10 16:08:02