【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 @   小林野夫  阅读(1461)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
原文链接:https://www.cnblogs.com/cdaniu/
点击右上角即可分享
微信分享提示