Я использую следующий фрагмент кода в Visual Studio для хранения параметра конструктора char * и удаления его в деконструкции моего класса.
#include "pch.h"
#include <iostream>
class A
{
public:
A(const char *fn) {
myChar = _strdup(fn);
}
~A() {
delete[] myChar;
}
char *myChar;
};
int main()
{
A myA("lala");
myA.~A();
_CrtDumpMemoryLeaks(); //leak detector
}
Если я не использую delete [] myChar Я создаю утечку памяти. Если я использую его, я получаю эту неизвестную ошибку при отладке.
Какой правильный способ сделать это?
После изменения delete[]
на free
: