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, как будто объекты удаляются. Что я делаю неправильно?