#include <stdio.h>
int main()
{
int* n;
*n = 20; // causes the crash
printf("%d\n", *n);
return 0;
}
但出於某種原因,如果我先設置INT * N =然後我就可以用*更改值N = 20 有沒有這個原因?設置一個值,指針會導致程序崩潰
int i = 19;
int* n;
*n = i;
*n = 20;
編輯:謝謝大家幫助我從你的答案中學到了很多東西。
它*訪問一個空指針會導致程序崩潰*。 –
你有一個指向無處的指針並存儲它指向的值。問:你在哪裏存儲價值? – Olaf
注意,第二個例子是一樣異乎尋常的第一個例子壞,並調用未定義的行爲,就像第 - 您使用的是未初始化的指針,當你這樣做,可以發生任何事情。不能保證當你做錯事情時程序會崩潰,但這是常見的反應。另一個常見的反應是它似乎有效,但它所做的不是你想要的。 –