【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