2013-10-20 56 views
4

我想打印出指向它的指針的內容。這是我的代碼:打印指針指向的值(C編程)

int main(){ 
    int* pt = NULL; 
    *pt = 100; 
    printf("%d\n",*pt); 
    return 0; 
} 

這給了我一個分段錯誤。爲什麼?

+0

當你指向它必須存在的東西。試試'malloc'然後它會存在! –

回答

11

這些行:

int* pt = NULL; 
*pt = 100; 

被提領一NULL指針(即您嘗試儲值100到內存地址NULL),這將導致未定義behavor。請嘗試:

int i = 0; 
int *p = &i; 
*p = 100; 
5

因爲您正在嘗試寫入地址NULL。

嘗試:

int main(){ 
    int val = 0; 
    int* pt = &val; 
    *pt = 100; 
    printf("%d\n",*pt); 
    return 0; 
}