Я не могу сказать, есть ли что-то действительно очевидное, что я упускаю, но я пишу небольшую игру, и у меня возникли утечки памяти при использовании DrMemory.Я не мог понять, что именно было не так, поэтому я написал более простой файл, который имитировал то, что моя игра делала с памятью.
class A{
public:
A() { a = new int[10]; };
~A() { delete[] a; };
private:
int* a;
};
int main()
{
A a;
return 0;
}
DrMemory все еще говорит мне, что у меня утечка памяти в двабайты, и я действительно не могу понять, что будет причиной этого.Это сообщение об ошибке, сгенерированное
Error #1: LEAK 2 direct bytes 0x00da0c98-0x00da0c9a + 0 indirect bytes
# 0 replace_malloc [d:\drmemory_package\common\alloc_replace.c:2576]
# 1 msvcrt.dll!_strdup
# 2 .text [../../../src/gcc-6.3.0/libgcc/config/i386/cygwin.S:184]
# 3 __mingw_glob [../../../src/gcc-6.3.0/libgcc/config/i386/cygwin.S:184]
# 4 _setargv
# 5 .text
# 6 mainCRTStartup
# 7 ntdll.dll!RtlInitializeExceptionChain +0x62 (0x77849802 <ntdll.dll+0x39802>)
# 8 ntdll.dll!RtlInitializeExceptionChain +0x35 (0x778497d5 <ntdll.dll+0x397d5>)
Как это исправить?А может кто-нибудь объяснить, что пытается сказать ошибка, помимо того факта, что произошла утечка памяти?Спасибо!