Шрифт:
Представленные здесь шаги являются стереотипными. Порядок следующий:
1. Объявить указатель соответствующего типа для выделенной памяти.
2. Вычислить размер выделяемой памяти в байтах. Для этого нужно умножить число нужных объектов на размер каждого из них. Последний получается с помощью оператора С
При выделении массивов для строк символов или других данных типа
3. Выделить память с помощью
Обратите внимание, что на C++ присвоение знамения указателя одного типа указателю другого типа требует приведения типов, какой бы ни был контекст. Для управления динамической памятью программы C++ должны использовать
4. Проверить возвращенное значение. Никогда не предполагайте, что выделение памяти было успешным. Если выделение памяти завершилось неудачей,
Если вы проверите возвращенное значение, вы можете по крайней мере выдать диагностическое сообщение и корректно завершить программу. Или можете попытаться использовать какой-нибудь другой способ восстановления.
Выделив блок памяти и установив в
Компилятор создает корректный код для индексирования через указатель при получении доступа к членам структуры
ЗАМЕЧАНИЕ. Блок памяти, возвращенный
Другой возможностью является использование
Джефф Колье (Geoff Collyer) рекомендует следующую методику для выделения памяти:
Этот подход гарантирует, что
3.2.1.3. Освобождение памяти:
Когда вы завершили использование памяти, «верните ее обратно», используя функцию
После вызова f
Доступ к освобожденной памяти
Если она не была освобождена, переменная