| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Общие вопросы > Статические переменные |
| Автор: Doc_d0s 21.2.2005, 21:43 | ||
Вот кусок кода функции ввода текста из файла:
Внимание вопрос: Когда функция закончит свою работу память, которую я выделил и поставил в начало указатель будет в моей власти? |
| Автор: JackYF 21.2.2005, 23:59 |
| Да. Только и освобождать память придется тебе тоже самому |
| Автор: srd 22.2.2005, 06:18 |
| Осталось только догадаться, зачем ты сделал указатель статическим. Здесь это совершенно бесполезно. |
| Автор: Doc_d0s 22.2.2005, 19:09 | ||
Так Надо |
| Автор: Hroft 25.2.2005, 10:34 |
| Это для повышения производительности, наверное. Чтобы при каждом запуске функции не выделялась память под указатель |
| Автор: bel_nikita 25.2.2005, 19:42 |
| Если память выделяется в функции, то лучше в той же функции и освобождать. Или передавать указатель в функцию. А то потом геммор будет |
| Автор: Fantasist 25.2.2005, 19:45 | ||
Ну да, а то, что при каждом вызове функции выделяется куча динамической памяти (которая к тому же и не освобождается) это ничего? Создание переменной на стеке практически ничего не стоит, так что производительность за счет них пытаться повысить практически бесполезно. |
| Автор: Doc_d0s 25.2.2005, 20:25 |
| Люди объясните все таки, блок памяти после завершения работы ф-ии остается за указателем, или переходит во владение системы ? |
| Автор: Fantasist 25.2.2005, 20:31 | ||
Брр... Какие-то ты не понятные термины используешь. Блок памяти никогда не остается за указателем - это просто блок памяти, указатель на него может указываеть (а может и не указывать а может указывать и на середину блока). С точки зрения програмииста, в первом прибледежении, блок памяти может быть выделенным для его программы или не выделенным. Все блоки памяти которые были выделенны твоей программе с помощью вызова new должны быть освобожденны тобой вызовом delete. Иначе блок памяти никогда не будет возвращен мэнеджеру памяти. |
| Автор: Doc_d0s 25.2.2005, 21:59 |
| Fantasist : Пасиьа ты открыл мне глаза, з.ы. А в маине я всё же освобождаю память |