Segfault при использовании указателей c++

Столкнулся вот с такой проблемой. Есть map с glm::ivec2 в качестве ключа и указателем на объект в качестве значения

class World{
   public:
   ...

   std::unordered_map<glm::ivec2, Chunk*> chunks;

   void load_chunk(glm::ivec2 coords);
};

И метод, который его заполняет

void World::load_chunk(glm::ivec2 coords){
    auto found = chunks.find(coords);
    if (found == chunks.end()) {

        chunks.insert({coords, new Chunk()});
        chunks[coords]->x = coords.x;
        chunks[coords]->z = coords.y;
        chunks[coords]->generate();

        chunks[coords]->print_blocks(); // тут все ок

    }
}

Проблема в том, что при попытке обратиться к объекту Chunk, по указателю из этого мапа вне класса World получаю segmentation fault

engine.cpp

World world;
world.load_chunk(ivec2(0,0));
world.chunks[ivec2(0,0)]->print_blocks(); // segmentation fault 

Вроде память выделил, внутри метода World::load_chunk() указатель ведет себя корректно, но вне его вызывает segfault, как будто объекты удаляются. Что я делаю неправильно?


Ответы (0 шт):