#include "stdafx.h"
class Swiat
{
int x, y;
char **mapa;
public:
Swiat(int x1, int y1);
void AlokujMape(int x, int y);
void WyczyscMape();
};
Swiat::Swiat(int x1 = 20, int y1 = 20) :x(x1), y(y1)
{
AlokujMape(x1, y1);
}
void Swiat::AlokujMape(int x, int y)
{
mapa = new char *[y];
for (int i = 0; i<y; i++)
mapa[i] = new char[x];
WyczyscMape();
}
void Swiat::WyczyscMape()
{
for (int i = 0; i < y; i++)
for (int j = 0; j < x; j++)
mapa[i][j] = ' ';
}
int main()
{
Swiat *s= new Swiat(10, 12);
return 0;
}
Czy dobrze alokuje i zwalniam pamieć?
Ten program kompiluje się poprawnie, ale w moim "prawdziwym" programie po wykonaniu kilku operacji program sie buguje i w destruktorze jest problem ze zwolnieniem pamieci.
Dokładnie jest to błąd:
"program.exe has triggered a breakpoint."