0
我對C語言較新。讓我們開始使用下面的測試代碼。C語言如何初始化結構指針
struct node {
int data;
struct node *next;
};
int main() {
struct node *n;
struct node *n2;
struct node *n3;
struct node *n4;
struct node *n5;
printf("%p\n", n);
printf("%p\n", n2);
printf("%p\n", n3);
printf("%p\n", n4);
printf("%p\n", n5);
return 0;
}
下面的輸出顯示,
0x7fff57c42888
0x0
0x0
0x0
0x0
我無法理解該變量n的指針地址不爲空。而且,具有相同*節點類型的其他變量是0X0。 誰能解釋它的原因?謝謝。
的代碼調用**未定義行爲**。 –
函數的局部變量**不是**在'c'中被初始化。你必須自己做適當的初始化。順便說一句 - 在打印一個指針值時,你應該轉換爲'(void *)',就像'printf(「%p \ n」,(void *)n5);' – 4386427
@nm:不會嘗試使用任何指針爲了訪問內存。爲什麼未定義的行爲? –