【C#異常處理】堆棧溢出


棧溢出:死循環、遞歸調用,C# 的堆棧大小對於 32 位進程只有 1 MB,對於 64 位進程只有 4 MB如下:

Main(args);
static void Main(string[] args)
{

    Main(args);
}
/*
輸出:
    Stack overflow.
Repeat 24090 times:
--------------------------------
   at Program.<<Main>$>g__Main|0_0(System.String[])
--------------------------------
   at Program.<Main>$(System.String[])
*/

堆溢出:數組是在堆中分配的

 int[] vs = new int[1024*1024*1024*1024];//

編譯器提示:

嚴重性    代碼    說明    項目    文件    行    禁止顯示狀態
錯誤    CS0220    在 checked 模式下,運算在編譯時溢出    ConsoleApp10    C:\Users\HP\source\repos\ConsoleApp10\ConsoleApp10\Program.cs    1    活動


內存泄漏 內存溢出、內存損壞

內存泄漏:申請了一塊內存,但不需要時一直不去刪除,導致這塊內存一直被占用

內存溢出:程序在申請內存時,沒有足夠的內存空間供其使用,拋出OutOfMemoryException

內存損壞:訪問被釋放的內存


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM