В основном у меня есть класс А., который создает массив при создании.
class A
{
public:
A (float height, float width, BYTE* data)
{
setsize(height,width);
mydata = CreateNewBuffer(sizes);
setdata(data);
}
~A()
{
}
void setsize(float height, float width)
{
sizes.cx = width;
sizes.cy = height;
}
BYTE* CreateNewBuffer (SIZE sImage)
{
return new BYTE [sImage.cx * sImage.cy];
}
void setdata(BYTE* data)
{
memcpy(threatdata,data,sImage.cx * sImage.cy);
}
}
Я создаю указатель на этот класс в большем классе:
A* mypointer;
, который я инициализирую в3-й класс после прохождения через функцию:
3rdClass::instance()->myfunction(mypointer)
и внутри функции myfunction () я установил bool, указывающий, что класс был построен
mypointer = new A(height,width,data);
wasconstructed = true;
Теперь в следующий раз, когда я приду кПередав указатель на функцию myfunction()
, я проверяю, был ли класс уже создан, если это так, я хочу удалить его, чтобы он создал новый без потери памяти.
Что является правильнымспособ сделать это:
Я пробовал базовые вещи, как,
if (3rdClass::instance()->checkifconstructed()){
delete mypointer; //(or even delete [] mypointer but then i get heap corruption)
mypointer = NULL;
}
Но это не похоже на работу.