1. 程式人生 > >Program received signal SIGSEGV, Segmentation fault

Program received signal SIGSEGV, Segmentation fault

c語言的小問題,糾結了我一會,歸總還是自己這塊不是太明白。

首先我們先看:

 int a;//這個是申明瞭一個int型別的數,實際開闢了一個記憶體空間給a,a由一個,地址值。接下來你操作a就不會有問題。
  int *a;//這樣只是申明瞭一個指標變數,指標變數必須要指向地址,才能操作,否則就會報如題的錯誤。

      //所以就會出現下面兩種操作地址方法
      int b;
      a = &b;//通過已經申明的變數的地址賦給指標變數
      a = (int *)malloc(sizeof(int));//為指標變數動態申請地址

以上可以說是比較容易忽略,上面程式碼簡單,你可能還能看出來,如果幾百行程式碼,你還能想到?

參考內容