Время жизни переменных, не понимаю одного момента |
Здравствуйте, гость ( Вход | Регистрация )
Время жизни переменных, не понимаю одного момента |
Litkevich Yuriy |
2.2.2008, 16:24
Сообщение
#1
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
Переменные созданные внутри функций живут пока мы невышли из фукции, так вроде.
Видел такую вещь:
т.е. функция возвращает указатель на масив, который в ней же создан. Но покинув функцию масив прекратит существование и указатель будет показывать в кучу проги, например, может показывать в неосмысленное место. Я правильно понимаю, т.е. это косячек програмиста, или как-то это иначе работает применительно просто к C++? |
|
|
Tonal |
5.2.2008, 8:37
Сообщение
#2
|
Активный участник Группа: Участник Сообщений: 452 Регистрация: 6.12.2007 Из: Новосибирск Пользователь №: 34 Спасибо сказали: 69 раз(а) Репутация: 17 |
Если это действительно ошибка - кидай исключение.
Если - одно из возможных значений - можно обойтись возвратом пустого вектора. Насчёт копирования - вменяемые компиляторы С++ применяют оптимизацию возвращаемого значения, так что в итоге, скомпилированный код будет очень похож на код с передачей ссылки. Хотя если не очень доверяешь компилятору - можно и руками пооптимизировать, но мне кажеться, что делать это надо только когда понятно что именно. Да, по тому, что написал автор, видно что размерчик ему известен, стал быть его сразу нужно вектору и выставить. Сообщение отредактировал Tonal - 5.2.2008, 8:37 |
|
|
Текстовая версия | Сейчас: 18.1.2025, 11:50 |