Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
YourLastSong
1 / 1 / 0
Регистрация: 12.12.2010
Сообщений: 112
#1

free и метки - C++

29.12.2010, 21:48. Просмотров 475. Ответов 3
Метки нет (Все метки)

Здравствуйте, господа.

Никак не могу найти ответы на след. вопросы:

1). Для того, чтобы освободить выделенную ранее память, необходимо использовать, например, функцию free. Однако в таком случае я постоянно вижу сначала free (a), после чего a = NULL. Для чего это делается?

2). Многие говорят, что метки использовать надо как можно меньше. Как их тогда заменять в случае, например, если нам надо заново запустить функцию, в которой мы сейчас находимся?

Заранее благодарю за возможные ответы.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.12.2010, 21:48
Здравствуйте! Я подобрал для вас темы с ответами на вопрос free и метки (C++):

Метки - C++
Есть такой вопрос, как курсор к коде переставить в то место куда мне надо (в паскале Label) в с++ есть что то похожое?? Пример: если...

Метки - C++
Есть ли команда в С++ наподобие команды в паскале label 1; 1:, т.е. метки. Если можно пример. Спасибо всем большое!

Метки не любят else? - C++
Как избавиться от ошибки на 53-ей строчке? #include <iostream> #include <fstream> using namespace std; const int n=21; ...

Можно ли в C++ ставить метки-break? - C++
в с++ нельзя ставить метки-break?

Кнопки, метки и окна редактирования - C++
Пожалуйста помогите))) или хотя бы объясните))) Написать программу, которая вычисляет (вместе с рамкой) Дана: длина ребра куба a. ...

Как по условию выйти из метки case - C++
Подскажите такое дело Например есть автомат MODE= MODE_2; for(;;) { switch MODE { case MODE_1: func1; ...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
lemegeton
2923 / 1352 / 135
Регистрация: 29.11.2010
Сообщений: 2,725
29.12.2010, 23:07 #2
Когда освобождается память, выделенная под указатель, указатель продолжает содержать адрес уже освобожденной памяти. Переменной-указателю назначают NULL, чтобы дальше в программе проверить на наличие выделенной памяти под указатель.

Метки нужно использовать как можно реже. Чаще всего они используются в системном низкоуровневом программировании. Там это более-менее оправдано. В ядре линукса есть пару меток.
Приведите пример такой осмысленной функции, которую надо начать с начала.
accept
4821 / 3241 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
30.12.2010, 04:28 #3
Цитата Сообщение от YourLastSong
Как их тогда заменять в случае
заменять на цикл с ясным условием выхода
Nameless One
Эксперт С++
5771 / 3420 / 255
Регистрация: 08.02.2010
Сообщений: 7,447
30.12.2010, 04:47 #4
Цитата Сообщение от lemegeton Посмотреть сообщение
В ядре линукса есть пару меток.
В реализации GNU стандартной библиотеки С они тоже есть
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.12.2010, 04:47
Привет! Вот еще темы с ответами:

Метки и вывод наименьшего угла треугольника - C++
Доброго времени суток! Есть задание: Треугольник задается координатами своих вершин. Среди некоторого количества треугольников указать...

free - C++
Выделил память под массив(строку), размером 5 элементов. char *str; str = (char*)calloc(5,sizeof(char)); if (str == NULL) { ...

с free в delete - C++
Как эту функцию можно переписать с помощью delete? void A(int **p,int r){ int **pr; for(pr = p; pr < pr + r; tr++) ...

Компилятор C-Free - C++
Начинаю изучать язык программирования C++. Какой вы можете дать отзыв о вышеупомянутом компиляторе? Стоит ли его использовать? Если нет, то...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
30.12.2010, 04:47
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru