社区
C++ 语言
帖子详情
程序运行一段时间一段时间后分配不到内存
mingpengbiao
2009-07-11 06:02:31
程序运行一段时间一段时间后有两个地方分配不到内存,但是程序并没有死掉,其他部分正常,请各位大侠不吝赐教。
...全文
80
25
打赏
收藏
程序运行一段时间一段时间后分配不到内存
程序运行一段时间一段时间后有两个地方分配不到内存,但是程序并没有死掉,其他部分正常,请各位大侠不吝赐教。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
25 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
hazrael
2009-07-17
打赏
举报
回复
没有代码,不好分析问题在哪
xixuer_20070803
2009-07-17
打赏
举报
回复
可以调试下分配的过程,是分配失败,还是当前内存不足以分配你申请的,找出原因再找解决办法
cmkyec
2009-07-17
打赏
举报
回复
学习~
gaomingok
2009-07-17
打赏
举报
回复
我的程序也出现过,DEBUG下弹出"内存不足"提示框,内存泄漏了
T技术沙龙
2009-07-17
打赏
举报
回复
[Quote=引用 4 楼 Fleeboy 的回复:]
两种可能性:
1. 内存确实不够;
2. 内存泄漏导致情况1发生。这种情况需要下载一个内存泄漏检测工具,检测一下。
分配不到内存的情况确实不经常发生。
[/Quote]
第二种情况推荐使用黄金内存。非常适合程序员
lee673
2009-07-17
打赏
举报
回复
内存泄露 或是 分配失败 我觉得都有可能。。。
amossavez
2009-07-17
打赏
举报
回复
我觉得最有可能的是分配失败!!
别逗我乐
2009-07-17
打赏
举报
回复
设想一下一个程序运行几天后,所需内存直线上升的话,它本身肯定是有问题的,
多大的内存也会消耗掉的!
别逗我乐
2009-07-17
打赏
举报
回复
应该是内存泄露,你的程序,睡着时间的延长,所需的内存会变大?我觉得他应该是一个
较稳定的数据,
内存不够了,是你的程序浪费了内存!
就是内存泄露!
Mynameiswuyihao
2009-07-17
打赏
举报
回复
内存泄露吧,不足应该不会吧。
lambert_s
2009-07-16
打赏
举报
回复
[Quote=引用 6 楼 haierpro 的回复:]
有两个地方分配不到内存,其他部分正常,不知道其他部分是否有动态内存分配,如果有,说明很大可能不是内存不足,而是这两处申请内存的大小有问题,数值超大。调试跟踪一下就知道了,如果不是分配的大小超大,那应该就是内存泄漏导致内存不足了。
[/Quote]
我也觉得可能是这样。。。
美丽海洋
2009-07-16
打赏
举报
回复
楼主想下面这个情况就会有问题
int i;
TCHAR× ch = (TCHAR×)molloc(i);
猫已经找不回了
2009-07-16
打赏
举报
回复
贴代码看看。
分配不到内存,返回值是什么?
pysjp
2009-07-16
打赏
举报
回复
要看楼主每次分配的内存有多大?是在什么地方分配的(堆上还是虚拟内存?),每次使用完毕后是否释放?是连续申请一块大内存,还是多次申请小内存?是否有内存碎片?等等,所以建议楼主把问题描述清楚一些。
huqinglu123
2009-07-16
打赏
举报
回复
分配的内存太大了
nwao7890
2009-07-16
打赏
举报
回复
楼上几位说的对,你把你申请的大小打出来,一次次看,看是不是分配了那么多,到什么时间申请不到了,着重查相关代码。
我怎么觉得是内存泄露啊。
thinkboy234
2009-07-16
打赏
举报
回复
学习~~~~~
haierpro
2009-07-16
打赏
举报
回复
在申请内存失败的情况下,把申请的大小打印出来看一下是否正常。
mingpengbiao
2009-07-12
打赏
举报
回复
其他地方也有动态分配内存的情况,这两处一处分配64K,一处分配大约2M。程序使用的是.net 2003编译的。
haierpro
2009-07-11
打赏
举报
回复
有两个地方分配不到内存,其他部分正常,不知道其他部分是否有动态内存分配,如果有,说明很大可能不是内存不足,而是这两处申请内存的大小有问题,数值超大。调试跟踪一下就知道了,如果不是分配的大小超大,那应该就是内存泄漏导致内存不足了。
加载更多回复(5)
微信小程序系统教程C#版[3/3阶段]_微信小程序电商系统
微信小程序系统教程[初级阶段],微信小程序0基础学起,讲解微信小程序开发的基础知识。 微信小程序系统教程共有“微信小程序系统教程[初级阶段]”、“微信小程序系统教程[中级阶段]——核心技术”、“微信小程序...
程序运行
时对应的
内存
分布(BSS段、数据段、代码段、堆、栈)关系
程序运行
时的
内存
分区主要分为BSS段、数据段、代码段、堆、栈。 BSS段:Block Started by Symbol,一般是指存放程序中未初始化的全局变量的一块
内存
区域。BSS段属于静态
内存
分配
。 数据段:data segment,一般是指用来存放程序中已初始化的全局变量的一块
内存
区域。数据段属于静态
内存
分配
。 代码段:code segment/text segment,通常是指用来存放程序执行代码的一块
内存
区域。这部分区域的大小在
程序运行
前就已经确定,并且
内存
区域通常属于只读,某些架构也允许代码
C语言中
内存
分配
在任何程序设计环境及语言中,
内存
管理都十分重要。在目前的计算机系统或嵌入式系统中,
内存
资源仍然是有限的。因此在程序设计中,有效地管理
内存
资源是程序员首先考虑的问题。 第1节主要介绍
内存
管理基本概念,重点介绍C程序中
内存
的
分配
,以及C语言编译后的可执行程序的存储结构和运行结构,同时还介绍了堆空间和栈空间的用途及区别。 第2节主要介绍C语言中
内存
分配
及释放函数、函数的功能,以及如何调用这些函数申请
C/C++——程序的
内存
分配
**C/C++程序
内存
分配
**一、预备知识—程序的
内存
分配
一个由c/C++编译的程序占用的
内存
分为以下几个部分 1、栈区(stack):由编译器自动
分配
释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。 2、堆区(heap): 一般由程序员
分配
释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,
分配
方式倒是类似于链表,呵呵。 3、全局区(
程序执行时的
内存
分配
一、在程序执行期间,变量存储空间有三种: 1、静态存储区。
内存
在程序编译的时候就已经
分配
好了,这块
内存
在程序执行期间都存在, 存储全局变量和静态变量。 2、栈存储区。
内存
是在程序执行期间才
分配
的,函数内局部变量及函数参数的存储单元,当 函数执行结束时这些存储单元自动被释放。栈
内存
分配
运算内置于处理器的指令集中,效率 高但容量小。 3、堆存储区。在程序执行时由程序员用malloc或new申请的
内存
,程序员自己负责何时用 free或delete释放
分配
的
内存
。频繁的
分配
和释放不同大小的堆
内存
将会产生堆内碎...
C++ 语言
64,685
社区成员
250,491
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章