這是幾個小時了,我真的很沮喪,爲什麼會發生這種事情,所以我問是否有任何好的靈魂可以解釋這一點給我。兩個不同的輸出使用malloc
int main()
{
FILE* filePointer;
int* tempPointer1;
int* tempPointer2;
filePointer = fopen("numbers.txt","r");
tempPointer1 = (int*) malloc(sizeof(int)*10);
tempPointer2 = tempPointer1;
int j;
for(j=0;j<10;j++)
{
fscanf(filePointer,"%d ",tempPointer1);
printf("%d ", *tempPointer1);
tempPointer1+=sizeof(int);
}
printf("\n");
int i;
for(i=0;i<10;i++)
{
printf("%d ", *tempPointer2);
tempPointer2+=sizeof(int);
}
fclose(filePointer);
return 0;
}
這是即時得到輸出:
1 2 3 4 5 6 7 8 9 10
1 2 3 12337 5 6 7 8 9 10
任何人都可以解釋,爲什麼?
P.S如果我使用靜態int數組輸出是相同的。
[不投射的malloc的結果](http://stackoverflow.com/a/605858/1413133) –