struct Test {
std::array<int, (size_t)1.1e7> big;
Test() {
big_a.fill(0);
}
};
код падает, потому что возникает переполнение стека, как исправить это и сразу инцииализировать массив (и заполнить его нулями) на куче. при создании экземпляра структуры?
auto t = std::make_unique<Test>();
а то есть фишка именно в инициализации экземпляра самой структуры
у тебя при создании объекта конструктор отработает не зависимо от того, на стеке объект или на куче
если я захочу использовать эту структуру в другой структуре, в конструкторе этой новой структуры так и писать std::make_unique, или просто = Test(); а уже новая структура будет std::make_unique
make_unique создает std::unique_ptr<Test>
Не создавай на куче... Хотя на куче то как раз и правильно было бы, ты видимо перепутал кучу со стеком.
Нет, фишка что ты перепутал всё, тут динамический объект создаётся
Это зависит от обстоятельств
Можно и так, и так
Обсуждают сегодня