有人可以解釋爲什麼此代碼的作品,即使我分配內存只用於2陣列的數組?爲什麼數組大於分配給它的內存?
int main(void){
st=(int *)malloc(sizeof(int)*2);
int j;
for(j=0; j<5; j++){
st[j]=j*10000;
}
}
雖然下面的代碼將無法正常工作......
int main(void){
st=(int *)malloc(sizeof(int)*2);
int j;
for(j=0; j<6; j++){
st[j]=j*10000;
}
for(j=0; j<6; j++)
printf("st[%d]=%d\n",j,st[j]);
}
據我所知,我不應該能夠把一些在ST [J]對於j> 1。
非常感謝!
永遠不會投放'malloc'的結果。 – devnull
@devnull關於這個問題存在重大爭議。 –
@devnull說了什麼,即[請不要在C](http://stackoverflow.com/a/605858/28169)中投射'malloc()'的返回值。 – unwind