【C++】数组定义引发Stack overflow错误(运行时是报段错误)

2023-05-16

        C++(实际是C的语法)定义数组时出错,代码如下:

float t1[9830400];

        调试时触发Stack overflow错误(可执行文件运行时,是报段错误):

Unhandled exception at 0x00007FF71A102F68 in ***.exe: 0xC00000FD: Stack overflow (parameters: 0x0000000000000001, 0x000000F0C5A03000).

        这是由于函数内申请的变量,数组,是在栈(stack)中申请的一段连续的空间。栈的默认大小为2M或1M,开的比较小(但全局变量,全局数组,静态数组(static)则是开在全局区(静态区)(static)。大小为2G,所以能够开的很大)。所以静态分配的空间不能太大。遇到要申请大的空间时,就需要动态申请或使用不连续内存。

        可以使用malloc、new申请空间,或者使用array或vector替代数组。是开在堆(heap)的一段不连续的空间。

        例如,使用malloc申请空间:

float *t1 = (float*)malloc(sizeof(float) * 9830400);

参考:(12条消息) C/C++数组的大小最大能有多大?_c++数组最大容量_JoannaJuanCV的博客-CSDN博客

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【C++】数组定义引发Stack overflow错误(运行时是报段错误) 的相关文章

  • memcpy 溢出边界利用? (破坏堆栈)

    我试图弄清楚这是否会以某种方式溢出 void print address char p arp hw int i hw length size p OFFSET1 189 4 193 memcpy hw addr packet OFFSET
  • stack,foreach,顺序错误?

    当使用Java的for每个语法 Stack不对输出元素使用 LIFO 排序 考虑以下代码 import java util Queue import java util Stack import java util LinkedList p
  • 函数内声明的 const 数组是否存储在堆栈中?

    如果这是在函数中声明的 它会在堆栈上声明吗 它是 const 让我想知道 void someFunction const unsigned int actions 8 e1 e2 etc 是的 它们在堆栈上 您可以通过查看此代码片段来了解这
  • 使用堆栈反转数组

    我正在尝试使用堆栈反转数组 但是 我收到错误arr i stack top 在 Eclipse 中解决它的建议是将其更改为arr i stack pop 或添加演员阵容 还有其他方法吗 或者我犯了一个错误 我看到教程和问题询问如何使用堆栈反
  • 左结合性仅适用于 Postfix 表达式吗?

    在计算后缀表达式时 关联性是否总是从左到右 如果是 为什么 如果没有 为什么 None
  • 在 C# 中处理整数溢出的最佳方法?

    处理整数溢出是一项常见任务 但在 C 中处理它的最佳方法是什么 是否有一些语法糖可以使其比其他语言更简单 或者这真的是最好的方法吗 int x foo int test x common if test common x Console W
  • 如何在 MATLAB/Octave 中获得真正的整数溢出?

    我正在为 MATLAB Octave 中的一些 VHDL 代码开发验证工具 因此 我需要生成 真实 溢出的数据类型 intmax int32 1 ans 2147483648 稍后 如果我可以定义变量的位宽度 将会很有帮助 但现在这并不那么
  • html 堆栈顺序

    考虑以下代码
  • IE10 行高错误与显示:内联块;和溢出:隐藏;

    我最近在 IE10 中遇到了一个特殊问题 sigh 看来如果你使用 display inline block 与溢出 隐藏一起使用 IE10 会弄乱你的行高 我尝试使用 Vertical align middle 修复它但这仅几乎解决了 I
  • Widcomm蓝牙:如何打开虚拟COM

    我正在尝试使用 Broadcomm 的 Widcomm 蓝牙堆栈 它应该可以工作 但有一件事我仍然无法理解 当我需要通信时 如何自动打开虚拟 COM 我正在尝试使用 SPP 串行端口配置文件 但 SDK 的文档并不是那么详尽 拜托 我就是不
  • jQuery datepicker 导致页面溢出

    我正在使用 jQuery ui 1 8 中的 datepicker 控件 from date是文本输入 我附上一个非常简单的日期选择器 from date datepicker 这会导致页面溢出 垂直滚动条 我试图避免这种情况 一旦我单击起
  • 动态 Java 整数/长溢出检查与性能

    这是一个相当理论化的问题 因此虽然该语言是 Java 特有的 但任何通用的解决方案都足够了 假设我想编写一个简单的阶乘函数 long factorial int n handle special cases like negatives e
  • ValueType 堆栈空间耗尽

    我的理解是 Net中的每个新线程都会分配1MB 堆栈空间 https stackoverflow com questions 4088448 the net stack vs windows stack 进一步我的理解是 值类型存储在堆栈上
  • armv8 NEON if 条件

    我想了解armv8 NEON内联汇编代码中的if条件 在armv7中 这可以通过检查溢出位来实现 如下所示 VMRS r4 FPSCR BIC r4 r4 1 lt lt 27 VMSR FPSCR r4 vtst 16 d30 d30 d
  • c++ Vector,每当它在堆栈上扩展/重新分配时会发生什么?

    我是 C 新手 我在我的项目中使用向量类 我发现它非常有用 因为我可以拥有一个在必要时自动重新分配的数组 即 如果我想推回一个项目并且向量已达到其最大容量 它会重新分配自身 向操作系统请求更多内存空间 所以访问向量的元素非常快 它不像列表
  • 修改栈上的返回地址

    我研究了缓冲区溢出漏洞的基础知识 并尝试了解堆栈是如何工作的 为此 我想编写一个简单的程序 将返回地址的地址更改为某个值 有人可以帮助我计算基指针的大小以获得第一个参数的偏移量吗 void foo void char ret char pt
  • Overflow:hidden 隐藏边框但不隐藏溢出的元素

    我正在研究带有过渡的标题 但有些东西不起作用 我将 ul 设为 120px li 设为 60px 我给 li hover 一个translateY 60px 这样当您将鼠标悬停在 li 上时它就会弹出 我想隐藏溢出的内容 直到您将鼠标悬停在
  • 使用javascript对堆栈元素进行排序

    我试图理解使用递归对堆栈元素进行排序http www geeksforgeeks org sort a stack using recursion http www geeksforgeeks org sort a stack using
  • css - 溢出允许水平滚动

    我正在尝试这一页 http www4 wittenberg edu admission dev undergrad 我正在尝试让溢出允许水平滚动 我尝试将主体设置为隐藏 并将 真实主体 类设置为自动 这似乎不起作用 你需要用一个包裹你的长内
  • C - '=' 标记之前的预期表达式...在没有 '=' 的行上

    我疯狂地试图找出这个与现实 我的代码没有明显联系的错误消息 我一直在这里搜索并得出一个结论 你会讨厌 typedef 隐藏的指针 抱歉 这超出了我的控制范围 教授以这种方式提供了代码 我正在编辑问题中指定的代码 我弹出完整节点以避免每个推送

随机推荐