兩者均顯示23
。但是兩者有什麼區別?這兩個代碼片段有什麼區別?
代碼-1
main()
{
int *ar[10];
**(ar+0) = 23;
printf("%d", **(ar+0));
return 0;
}
代碼2
main()
{
int *ar[10];
*(ar+0) = (int*) malloc(sizeof(int));
**(ar+0) = 23;
printf("%d", **(ar+0));
return 0;
}
不錯的作業問題;) – blue
在第一個代碼中**(ar + 0)= 23;'調用[未定義行爲](http://en.wikipedia.org/wiki/Undefined_behavior) –
你怎麼看?當你運行它們時會發生什麼?你爲什麼認爲其中之一可能會導致你的電腦崩潰並燒燬? – Lundin