加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c – 在类Texture上调用new时的bad_alloc

发布时间:2020-12-16 06:55:39 所属栏目:百科 来源:网络整理
导读:这是违规行: 纹理*纹理=新纹理(…); 我在这里从bad_alloc收到: void *__CRTDECL operator new(size_t size) _THROW1(_STD bad_alloc) { // try to allocate size bytes void *p; while ((p = malloc(size)) == 0) if (_callnewh(size) == 0) { // report n
这是违规行:

纹理*纹理=新纹理(…);

我在这里从bad_alloc收到:

void *__CRTDECL operator new(size_t size) _THROW1(_STD bad_alloc)
    {       // try to allocate size bytes
    void *p;
    while ((p = malloc(size)) == 0)
            if (_callnewh(size) == 0)
            {       // report no memory
            static const std::bad_alloc nomem;
            _RAISE(nomem);
            }

    return (p);
    }

大小约为28字节

到目前为止,程序已经在32位系统中堆放了大约2 MB(重新启动),在此之前,只有大约20个东西在堆上分配,因此我知道没有堆损坏.

我很困惑…

解决方法

堆腐败并不一定意味着“分配了太多内存”;相反,它通常意味着你搞砸了一些指针.

检查你是否犯了这样的错误,因为你说你没有用尽记忆.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读