1. 程式人生 > >關於Release下沒有問題,Debug下出現Segment Fault

關於Release下沒有問題,Debug下出現Segment Fault

前言:

  在專案開發中出現Release下跑程式沒有問題,Debug下出現Segment Fault。

  程式碼如下:

void fun(int lines){
    int* pA;
   if(pA==nullptr){   pA=new int[lines];
   } memset(pA,0,sizeof(int)*lines); //Segment Fault }

原因:

  Debug下區域性變數中指標沒有初始化,而編譯器給了pA一個隨機值,導致在if判斷的時候跳出語句塊,沒有成功new記憶體,而在後面進行memset的時候就出現了段錯誤。

  至於為什麼Release下可以,這個回頭有時間我再去網上找找。

解決方案:

 區域性變數中的指標在定義處就賦nullptr