首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当我声明不使用的向量时,泄漏16字节内存

当我声明不使用的向量时,泄漏16字节内存
EN

Stack Overflow用户
提问于 2015-08-20 17:38:11
回答 1查看 412关注 0票数 0

因此,在我的DirectX演示中,我希望创建一个std::线程的向量,以存储我稍后在程序中创建的线程。然而,在创建上述向量时,我意识到我总是泄漏16字节的内存。

我决定将其更改为整数向量,以确保不是线程类造成问题;果然,内存泄漏仍然存在。当我注释掉向量的声明(我从未在其余代码中使用过)时,我不再泄漏内存。注意,这不是指针的向量,也不是指针本身。

有人能解释我为什么要泄密吗?

代码语言:javascript
复制
class DEMO_APP
{   
HINSTANCE                       application;
WNDPROC                         appWndProc;
HWND                            window;

// Interface
ID3D11Device*                   device;
ID3D11DeviceContext*            deviceContext;
IDXGISwapChain*                 swapChain;
ID3D11RenderTargetView*         renderTargetView;
ID3D11DepthStencilView*         depthStencilView;
ID3D11DepthStencilState*        DSLessEqual;
ID3D11BlendState*               blendState;

// Threads
std::vector<int>                loadingThreads; // <- Why I can't sleep at night
//std::vector<ID3D11DeviceContext*> deferredContexts;
ID3D11DeviceContext*            deferredContext;

侦测到内存泄漏!在0x0000000C620C1930处转储对象-> {212} normal块,长度为16字节。资料:<> 98 D3 C8 F4 F6 7F 000000000000000000000000Objectdump完成。

当我初始化项目时也会发生这种情况,而不是像大多数泄漏发生时那样在关闭期间发生。设置_CrtSetBreakAlloc(212);也不会导致中断,因此出现了这种情况。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-08-20 19:33:38

修复了这个问题;在我的一个调试过程中,我使DEMO_APP实例成为全局的。因此,它的析构函数没有在main的末尾被调用。关闭函数仍在被调用,因此除了向量,没有其他内存泄漏。谢谢大家!

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32124790

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档