170 похожих чатов

Привет! подскажите как сделать что бы не удалялся объект в

памяти, который был создан в функции, после его завершения? спасибо!

24 ответов

46 просмотров

После кого завершения?

new и возвращать указатель на него?

Black head- Автор вопроса
Black head
Функции

А когда этот объект должен удаляться тогда?

Выделять объект динамически ?

'Егор 'Зорин
Выделять объект динамически ?

Ну там ещё порядка 7 вариантов есть...

Можно ещё глобально вне функций создать

Пометить объект как static?

Вам нужен паттерн фабрика

Ilya Zviagin
Не факт

Ну да, не факт(

Black head- Автор вопроса
Ilya Zviagin
А когда этот объект должен удаляться тогда?

Если я правильно понимаю, созданный в функции объект, после завершения функции удаляется. Я в header файле объявил указатель. И из функции отдаю указатель на объект, который создал. Когда пытаюсь обратиться к этому объекту - получаю segmentation fault. Полагаю из за того что память освобождена после выполнения функции.

В общем тебе надо бы учебник или cppreference почитать на счёт классов памяти в С++

Black head
Если я правильно понимаю, созданный в функции объе...

Лучше пришли код... Есть подозрения, что ты неправ

Black head
Если я правильно понимаю, созданный в функции объе...

Объявил указатель, но объект, чей адресс в указателе судя по ошибке создан на стеке, а нужно в куче

Black head
Если я правильно понимаю, созданный в функции объе...

Ты его наверное не инициализировал и обращаешься к пустой памяти

Ilya Zviagin
Ну не обязательно

То есть предплагаешь там кривое создание объекта в куче? Как модно говорить, злонамеренное 😺

Oleksij Kyslytsja
То есть предплагаешь там кривое создание объекта в...

Я думаю там вообще нет создания а просто обращение к указателю

Oleksij Kyslytsja
То есть предплагаешь там кривое создание объекта в...

Я предлагаю посмотреть код, выяснить в чем проблема, и тогда её решать

'Егор 'Зорин
Я думаю там вообще нет создания а просто обращение...

Ну то что указатель глобальный, а не возвращается Да все может быть, конечно. ИМХО MyClass* ptr = MyClass() <- тут объект в стеке и пофиг как указатель вернуть, будег сегфолт MyClass* ptr = new MyClass() <- тут объект в куче и сохранится после выхода из функции. Rfrbt tot dfhbfyns rjczrf vjuen ,snm&

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Гайс, вопрос для разносторонее развитых: читаю стрим с юарта, нада выделять с него фреймы с определенной структурой, если ли чо готовое, или долбаться с ринг буффером? нада у...
Vitaly
9
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
длина пакета фиксированная, или меняется?
Okhsunrog
7
Карта сайта