警告 C6262:函数使用了堆栈中的 个字节: 超过了 /analyze:stacksize。请考虑将某些数据移到堆中

在解决该问题之前,需要明确哪些c++代码是堆区,哪些c++代码属于栈区,
首先,在C++程序中内存分为5个区:堆、栈、自由存储区、全局/静态存储区和常量存储区。

**栈:**是由编译器在需要时自动分配,不需要时自动清除的变量存储区。通常存放局部变量、函数参数等。
栈是一块连续的内存区域,大小是操作系统预定好的,windows下栈大小是默认固定的(但VC中可设置)。

:是由new分配的内存块,注意的是需要全程由程序猿手动操作,手动分配,手动释放,全都是人为意识,主管控制!!一个new[]与一个delete[]对应。如果没有释放掉,资源将由操作系统在程序结束后自动回收。
堆区的内存空间是不连续的,其大小受限于计算机系统中有效的虚拟内存(32bit 系统理论上是4G),所以堆的空间比较灵活,比较大。

自由存储区:是由malloc等分配的内存块,和堆十分相似,用free来释放。一般c中采用malloc函数,在c++里都直接使用new 和delete了。堆和自由存储区其实是同一块区域,new底层实现代码中调用了malloc,new可以看成是malloc智能化的高级版本
**全局/静态存储区:**全局变量和静态变量被分配到同一块内存中。
常量存储区:这是一块特殊存储区,里边存放常量,不允许修改。const int a =1;

此警告指出在函数内检测到了超出预设阈值的堆栈使用率。
默认情况下,当堆栈大小超过 16K 字节时会生成此警告。

修改方法
第一:**将一些数据移至堆,既然栈不够,那就不用栈,用其他。**其实就是使用malloc或是new在堆里开辟动态内存来代替堆栈内使用静态内存的目的。但是稍有不慎会有内存泄漏的问题。

第二:增加堆栈大小。

个人在程序编写过程总遇到的问题是一些二维数组使用太多,哎···········其实以前vs2015的时候好像也没提示过,不知道是预设还是啥,反正2015重装后卸载了,也没回去验证下。 对于二维数组的或者三维数组的,我们当然可以先使用malloc或者new,一般是new 来动态开辟内存,但是我不喜欢指针,也不喜欢new,

好在C++提供STL容器,我们完全可以把所有的一维二维三维数组直接转换成vector向量进行操作,个人感觉看起来顺眼,而且使用和赋值都比较方便,和普通数组没什么差距,vector通过resize进行内存的分配。

VS2019写C++的警告C6262(请考虑将某些数据移到堆中)相关推荐

  1. 写一段代码提高内存占用_记录一次生产环境中Redis内存增长异常排查全流程!...

    点击上方 IT牧场 ,选择 置顶或者星标 技术干货每日送达 最近 DBA 反馈线上的一个 Redis 资源已经超过了预先设计时的容量,并且已经进行了两次扩容,内存增长还在持续中,希望业务方排查一下容量 ...

  2. discuz中写一个表单,数据存入到数据库中,再从数据库读出来显示在列表中

    2019独角兽企业重金招聘Python工程师标准>>> 要做到如下的一个效果: 创建的文件有: ./funds.php ./template/PHPChina/funds/funds ...

  3. 题8.6:写一函数,求一个字符串的长度。在main函数中输入字符串,并输出其长度。

    题目 本题是谭浩强<C程序设计课后习题>题8.6. 题目: 写一函数,求一个字符串的长度.在main函数中输入字符串,并输出其长度. 以下是本篇文章正文内容,欢迎朋友们进行指正,一起探讨, ...

  4. 第一次写爬虫程序爬取豆瓣5W条电影数据

    第一次写爬虫程序爬取豆瓣5W条电影数据 最近工作比较不是很忙,想到之前使用httpclient和jsoup爬取过一次豆瓣电影TOP250,但总觉得数据量太小,不过瘾.于是趁着最近不是很忙的机会,重新写 ...

  5. 已知带头结点的动态单链表L中的结点是按整数值递增排列的,试写一算法将值x为的结点插入到表L中,使L仍然有序。

    创建链表,main函数中通过while循环找出该插入的位置,插入.应注意L头节点位置的变化,利用一个ptr来记录L的头节点. /*已知带头结点的动态单链表L中的结点是按整数值递增排列的,试写一算法将值 ...

  6. 【C 语言】文件操作 ( 配置文件读写 | 写出或更新配置文件 | 追加键值对数据 | 更新键值对数据 )

    文章目录 一.追加键值对数据 二.更新键值对数据 三.完整代码示例 一.追加键值对数据 在上一篇博客 [C 语言]文件操作 ( 配置文件读写 | 写出或更新配置文件 | 逐行遍历文件文本数据 | 获取 ...

  7. 【C 语言】文件操作 ( 配置文件读写 | 写出或更新配置文件 | 逐行遍历文件文本数据 | 获取文件中的文本行 | 查询文本行数据 | 追加文件数据 | 使用占位符方式拼接字符串 )

    文章目录 一.逐行遍历文件文本数据 1.获取文件中的文本行 2.查询文本行数据 3.追加文件数据 4.使用占位符方式拼接字符串 二.完整代码示例 一.逐行遍历文件文本数据 1.获取文件中的文本行 调用 ...

  8. 请编写一个程序,用于统计字符串中每个字母的出现次数(字母忽略大小写),统计出结果后,请按照{'a':3,'b':2}的格式输出。

    请编写一个程序,用于统计字符串中每个字母的出现次数(字母忽略大小写),统计出结果后,请按照{'a':3,'b':2}的格式输出. ras = [] mystr = input("请输入一个全 ...

  9. java 三种错误类型 区别_请列举至少三种在java语言中发生“严重错误”的情况...

    [简答题]自已编写一个自定义非整数异常类,来处理一个异常 [填空题]捕获异常时,可以把catch捕获的异常对象( ),使上层try-catch结构继续处理该异常事件;也可以把异常对象转换为其它异常对象 ...

  10. python向excel写数据_Python向excel中写入数据的方法

    最近做了一项工作需要把处理的数据写入到Excel表格中进行保存,所以在此就简单介绍使用Python如何把数据保存到excel表格中. 数据导入之前需要安装 xlwt依赖包,安装的方法就很简单,直接 p ...

最新文章

  1. 关于学习Python的一点学习总结(41->相关的BIF操作)
  2. Python 之 Pandas (二)选择数据
  3. html中如何实现选择存储路径的功能_HTML是Web前端的基础知识,刚入门的你真的学对了吗?...
  4. oracle学习笔记5:pl/sql流程控制语句
  5. PHP无刷新上传面向对象写法iframe
  6. fedora 15中使用evolution获取exchange邮件
  7. VC的MFC中重绘函数的使用总结(整理)
  8. 使用curl登陆上网账号
  9. Linux的实际操作:用户管理(用户添加useradd -d和设置用户密码passwd)
  10. java中implements是什么意思_java中extends与implements区别
  11. objective-C 数据类型转换
  12. 浏览器javascript 下载m3u8视频合成mp4
  13. 致 Python 初学者
  14. 1.命令行窗口(小黑屏)、CMD窗口、终端、shell、DOS窗口
  15. MAC协议微信自动生成带备注固定收款码免挂机监控协议回调
  16. PHP生成缩略图、加水印
  17. 蓝桥杯每日一练——小明跳房子 python
  18. HTML CSS 学习笔记
  19. java jpress,使用JPress快速搭建系统
  20. android usb wifi驱动下载,android 平台USB wifi驱动移植及使用

热门文章

  1. 记录一下落地网关soul(shenyu)过程中的一些实践
  2. 电脑取消撤销快捷键是什么_撤销快捷键ctrl加什么
  3. 个人不良资产如何处置?个人不良资产有妙招
  4. win10修改dns服务器命令,win10怎么修改DNS服务器?win10修改DNS服务器的方法
  5. webrtc中GCC拥塞控制模块之码率控制器AimdRateControl
  6. Matplotlib库介绍
  7. 响铃:号牌上又领先了一步,小鹏汽车正在极速狂奔
  8. 移动WEB开发布局中的-box-sizing:border-box
  9. c语言用数组发送大写字母怎么读,【C语言】(数组)C语言字符串中的小写字母转换为大写字母...
  10. 求出字符串中大写字母,小写字母和数字的个数