C++中由数组大小引起的栈溢出

  在写C++程序中最怕的一问题应是,程序在debug下可以正确无误的运行而在release模式下却发生内存访问的错误。最近就遇到了一个因数组引起的栈溢出问题,费了好长时间才发现。

      用VS2005写程序,默认的栈大小是1M。我们在程序中的变量及静态数组都是储存在栈中的。一旦变量和静态数组的规模超过了栈的大小,就会发生栈溢出错误。如运行如下一段代码是无法成功的:

#pragma once

#include <iostream>

using namespace std;

int main()
{
    int a[1024*256];

    cerr<<"It works"<<endl;
    return 0;
}

静态数组a的大小为:1024*256*4字节 > 1M字节,因此程序无法正常运行。在项目->属性->链接->系统中增大栈大小后,可以正常运行上面这个程序。

原创文章,转载请注明: 转载自点滴成河

原文链接: https://www.cnblogs.com/north_dragon/archive/2011/07/02/2096363.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍

    C++中由数组大小引起的栈溢出

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/27981

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年2月8日 上午5:33
下一篇 2023年2月8日 上午5:34

相关推荐