这是几个小时了,我真的很沮丧,为什么会发生这种事情,所以我问是否有任何好的灵魂可以解释这一点给我。两个不同的输出使用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) –