Я разрабатываю 2d-платформер. Все было хорошо, пока мне не удалось решить проблему. Карта уровней хранится в динамическом многомерном массиве (char ** map). Работает нормально, пока не захочу переопределить
Вот часть кода:
Map& Map::operator=(const Map& rhs)
{
if(width!=0||height!=0)
{
for(int i=0;i<width;i++)
delete[] map[i];
delete[] map;
} //deleting previously created array
height=rhs.height;
width=rhs.width; //receiving other map's size
map=new char* [width];
walkmap=new unsigned char* [width];
objmap=new char* [width];
for(int i=0;i<width;i++)
{
*(map+i)=new char[height];
} //creating new array
for(int h=0;h<height;h++)
for(int w=0;w<width;w++)
{
map[w][h]=rhs.map[w][h];
} //receiving new values
//...
}
Все отлично работает в первый раз, но когда мне нужно переопределить массив во второй раз, моя программа падает в той части, когда массив получает новые значения от другого. Может быть, я что-то упустил, но не могу найти Я искал эту проблему, но не нашел, что я делаю неправильно. Помогите мне, пожалуйста.