Что такое null pointer. null c++ что это. nullptr c++ что это. nullptr c++11. Урок #54

preview_player
Показать описание
Понравилось видео или оказалось полезным? Подпишись!

Что такое null. null c++ что это. nullptr c++ что это. c++ nullptr vs null. nullptr c++11. #54

Перегрузка функций c++ пример.Что такое перегрузка функций. Как перегрузить функцию. Урок #40

Уроки по программированию
Рекомендации по теме
Комментарии
Автор

Уважаемые программисты! Перед тем как закрывать дверь (присваивать указателю nullptr) не забывайте смывать (использовать delete), во избежание переполнения стока (стека).)

jiitxdx
Автор

За 13 минут нужной информации больше, чем за 3 часа пары в универе. Вы великолепны!!! Спасибо

sof_blade
Автор

Спасибо за уроки! Продолжайте в том же духе

srbug
Автор

#NULL #nullptr #SimpleCode #урокипрограммирования

SimpleCodeIT
Автор

Просто лучшие видео по C++. Все кратко ясно и понятно

dertyazik
Автор

Боже, как же интересна работа с памятью, особенно, когда ты более-менее понимаешь суть. После такого хочется копаться во всём этом и продолжать учиться!

trojangosling
Автор

Кто сейчас учится кодить на плюсах 20-ой версии, хочу сказать.
Я понял, что компилятор, после оператора delete, сам затирает и значение и адрес(видимо фактически сам делает то, что показано в видео).
То есть, если посмотреть через отладчик, то после вызова оператора delete, указатель не будет иметь ни значения, ни адреса в памяти, таким образом шанс ошибиться стал намного меньше.
По крайней мере я так понял, сам эту штуку проверив, если я не прав или что-то не так написал, прошу поправить меня! :)

bleeding
Автор

Спасибо Вам большое Сергей за такой донос информации.Мне нравится наглядность, глубина информации.Абстрактные примеры дают понять суть...
Этот пакет видео уроков еще больше меня вдохновил изучать программирование!

znnnmcp
Автор

Спасибо за урок, уважаемый Сергей. Вновь приступил к занятиям.

pavelios
Автор

Сергей, Спасибо Вам большое! Отличные уроки!

Max_Stupa
Автор

Большое спасибо вам за урок и прекрасное пояснение, Сергей!

archiechellaut
Автор

Автору большой респект т. к. он здесь подготовил целую армию плюсовых ru-программеров, чего никому еще не удавалось на рус..

sgimancs
Автор

спасибо! теперь я понял. очень доступное объяснение отличия NULL от nullptr на примере перегруженной функции

MrBin_
Автор

7:52 вот тут немного непонятно:
мы ведь знаем адрес на который указывает указатель, но по тому адресу нет данных(т.к как их очистили delete)
и ошибка вылетела из-за того что повторно используется delete на ненулевой адрес (в отладчике проверял)

tala
Автор

Я специально вызвал утечку памяти циклом и у меня вся оперативка забилать прога не вылетела и у меня залагал пк 👌

nello
Автор

такое малое количество лайков, за такие шикарные уроки...обидно

oneorigin
Автор

Всем привет! в 2017 версии после delete, - удаляется не только значение, но и адрес

osvab
Автор

Уважаемый Сергей ты можешь сделать рубрику где вы будете отправлять исходники с ошибками а мы будем их
исправлять

pavelefin
Автор

После урока пошел читать статьи о nullptr, т.к остались некоторые вопросы. Какого было мое удивление, когда я увидел, что большинство авторов статей просто берут текст данного видео, даже не меняя код.

lda
Автор

Вернулся к этому ролику с ролика по односвязным спискам (на данный момент #133)
Без этого ролика застопорился тот. Добавил к каждой строке комментарий, вроде стало понятнее:


int *pa = new int;
*pa = 10;
cout << *pa << endl;
delete pa;
pa = nullptr;


int *pa = new int;
1) результатом будет выделение ячейки с каким то адресов, например 0х00ef73у8, и с каким то мусорными числом по этому адресу типа -842150451

*pa = 10;
2) по выделенному адресу 0х00ef73у8, (т.е. pa= 0х00ef73у8), вместо мусора записать 10



cout << *pa << endl;
3) учесть, что здесь *pa - это на тоже самое, что вначале!!! это "разыименование"!!! которое позволяет получить данные из памяти по указанному адресу ра, т.е. из ра=0х00ef73у8

delete pa;
4) стираем данные, записанные по адресу 0х00ef73у8, в нашем случае это число 10. В результате pa продолжает указывать на память с адресом 0х00ef73у8 и ее все еще можно использовать, но там снова мусор

pa = nullptr;
5) переадресовывает ра с адреса 0х00ef73у8 на адрес тем самым освобождает ячейку память 0х00ef73у8, а ра=

Так мне стало намного понятнее, с голоса не сразу дошло.

Salavatk