棧溢出:死循環、遞歸調用,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
內存損壞:訪問被釋放的內存