【发布时间】:2015-10-26 17:08:41
【问题描述】:
我的程序正在泄漏。在低级代码中,我使用Julius 提供的所有工具来释放内存。但我想确定这是我的问题,而不是代码。那么这段代码自然会泄露吗? (循环中的多个识别,使用相同的指针)。
SREngineJulius *julius_pointer;
int iter = 10; //some number
for(int i = 0; i <= iter; i++){
julius_pointer= new SREngineJulius();
julius_pointer->InitSREngine(jconf);
julius_pointer->Callbacks();
julius_pointer->DynamicAddCommands(palavras2,"|",0);
buffering = julius_pointer->Audio_Buffering(audio_buffer, maxlen, 0,1);
result = julius_pointer->NotifyCallbackLoop("nao_interessa_nada");
julius_pointer->~SREngineJulius();
delete julius_pointer;
}
【问题讨论】:
-
你到底为什么要手动调用析构函数?
-
不要调用析构函数,
delete会为你做这件事 -
如果你只是在每次迭代中创建然后删除对象,你似乎根本不需要动态内存!
-
@Angew 调用将释放内存的例程。 Julius Core 中的例程。我应该在析构函数之外使用这个例程吗?
-
@carduh 从不手动调用析构函数。当您使用
delete时会调用它。如果您手动调用它,您只是要求出现双重释放或损坏错误。
标签: c++ memory-leaks