【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

内存损坏:访问被释放的内存

posted @ 2022-02-19 19:13  小林野夫  阅读(1444)  评论(0编辑  收藏  举报
原文链接:https://www.cnblogs.com/cdaniu/