主函数main 使用堆叠的字节,请考虑将一些数据移动到堆
本帖最后由 Ziron 于 2022-7-12 10:38 编辑如题
运行程序没问题,但出了警告,说我 main函数使用堆叠的“26408”字节,请考虑将一些数据移动到堆。请问大佬们,这怎么解决
头文件里面写了很多结构体
然后创建了90个结构体数组 这个是灌溉系统吗 是说你在main函数里用的堆栈内存太多了,容易把堆栈空间用光,可以考虑用动态内存分配malloc free或 new delete,把数据分配到堆中,堆和栈是程序的两个内存空间。
如果你的程序和函数调用不是很多,这个警告忽略也可以,自己心里有数就行了 函数里面申请的局部变量是在栈区的,一般情况栈比堆小很多,编译器怕你栈溢出,所以给了这个警告,一般情况没事,可以用new或者放到全局变量里 豪猪12138 发表于 2022-7-11 22:19
函数里面申请的局部变量是在栈区的,一般情况栈比堆小很多,编译器怕你栈溢出,所以给了这个警告,一般情况 ...
可是我觉得我 栈上放的东西不多啊 方法内的局部变量是放在虚拟机栈里面的,栈的内存一般不是很大,而且不会进行垃圾回收,所以一般不会房太多的局部变量,可以试着使用new放入堆中,如果该字符串使用较频繁,可以放入到元空间的常量池,元空间使用的是操作系统内存,一般不会溢出 Ziron 发表于 2022-7-12 09:45
可是我觉得我 栈上放的东西不多啊
你觉得不管用,得编译器觉得少才是少,再说不是只是个警告,说明还没有到溢出的地步
页:
[1]