程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> Linux下運行C++程序出現"段錯誤(核心已轉儲)"的原因,linux轉儲

Linux下運行C++程序出現"段錯誤(核心已轉儲)"的原因,linux轉儲

編輯:C++入門知識

Linux下運行C++程序出現"段錯誤(核心已轉儲)"的原因,linux轉儲


   今天寫程序出現了“段錯誤(核心已轉儲)"的問題,查了一下資料,加上自己的實踐,總結了以下幾個方面的原因。

  1.內存訪問出錯

    這類問題的典型代表就是數組越界。

  2.非法內存訪問

   出現這類問題主要是程序試圖訪問內核段內存而產生的錯誤。

  3.棧溢出

    Linux默認給一個進程分配的棧空間大小為8M。c++申請變量時,new操作申請的變量在堆中,其他變量一般在存儲在棧中。

    因此如果你數組開的過大變會出現這種問題。

    首先我們先看一下系統默認分配的資源:

    

  1 ulimit -a

   

   可以看到默認分配的棧大小為8M。

   如果真的需要更大的棧空間,可以用指令ulimit -s XXXX來申請更大的棧空間。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved