+ -
当前位置:首页 → 问答吧 → 内存越界

内存越界

时间:2011-12-02

来源:互联网

我在VC环境下调用一个库,在库里用malloc分配一块内存,可是一旦字节数超过1024就分配不成功,怀疑是内存已被分配完了。可是检查了之前的代码,该释放的地方都释放了的啊。这是怎么回事呢?

作者: Balana_yan   发布时间: 2011-12-02

getlasterror看看

malloc会失败的

new也同理

作者: yynetsdk   发布时间: 2011-12-02

是一直失败呢还是偶尔失败?一直失败的话应该是内存使用完了,但是这个一般用不完

作者: xiaoguailong3   发布时间: 2011-12-02

有可能是用完了。你再检查代码吧

作者: buyong   发布时间: 2011-12-02

调试一下,并GetLastError()

作者: hushoubo   发布时间: 2011-12-02

你这个malloc操作是在库内调用的?如果是库内调用,是不是库本身就有限制,内存有没有分配完,看下进程占用的内存有多大就知道了,一般不会分配完

作者: wutaozhao   发布时间: 2011-12-02

引用 1 楼 yynetsdk 的回复:
getlasterror看看

malloc会失败的

new也同理


GetLAstErroe值为6,意为无效句柄。可是我没有用到句柄。

作者: Balana_yan   发布时间: 2011-12-02

引用 5 楼 wutaozhao 的回复:
你这个malloc操作是在库内调用的?如果是库内调用,是不是库本身就有限制,内存有没有分配完,看下进程占用的内存有多大就知道了,一般不会分配完


怎样看进程占用多少呢?一般一个进程时分配2G?

作者: Balana_yan   发布时间: 2011-12-02

换机机器运行下,看会不会是你机器本身原因

作者: langyano1   发布时间: 2011-12-02

调试看下嘛

作者: boyhailong   发布时间: 2011-12-02

引用 8 楼 langyano1 的回复:
换机机器运行下,看会不会是你机器本身原因


已经试过了,不是这个原因。

作者: Balana_yan   发布时间: 2011-12-02

每次比现?这是啥库,别人的还是你自己编译的。

作者: kyotrue   发布时间: 2011-12-02