Указатели для начинающих (Pointers) - Частые вопросы и ответы
ОГЛАВЛЕНИЕ
Частые вопросы и ответы
В: Почему появляется ошибка "symbol undefined" при использовании new и delete?
О: Это, скорее всего, вызвано тем, что исходный файл считывается компилятором как простой C-файл. Команды new и delete являются новой возможностью C++. Чтобы ошибка исчезла вам просто необходимо изменить расширение файла на *.cpp.
В: В чем различия между new и malloc?
О: new - это ключевое слово, которое существует только в C++ и теперь является стандартом для распределения памяти. Вам не рекоммендуется использовать malloc в пределах приложений C C++ если у вас для этого нет особых причин. Поскольку malloc не был разработан для объектно-ориентированных функций C++, использование данной команды для распределения памяти классов предотвратит вызов конструктора классов в качестве одной из возможных проблем. В данной статье команды malloc и free не обсуждались по причине того, что они могут вызвать проблемы и являются устаревшими, а также мы рекомендуем не прибегать к их использованию.
В: Можно ли использовать free и delete вместе?
О: Вы должны освобождать память эквивалентно тому методу, который был использован для распределения. К примеру, использование free к памяти, распределенной malloc, а delete - только к той, которая была распределена оператором new.