background top icon
background center wave icon
background filled rhombus icon
background two lines icon
background stroke rhombus icon

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

input logo icon
"videoThumbnail Что такое null pointer. null c++ что это. nullptr c++ что это. nullptr c++11. Урок #54
Похожие ролики из нашего каталога
|

Похожие ролики из нашего каталога

Передача параметров в функцию по значению. Параметры функции. Передача аргументов в функцию. #34
11:04

Передача параметров в функцию по значению. Параметры функции. Передача аргументов в функцию. #34

Канал: #SimpleCode
Ключевое слово break. Оператор break. Описание. Пример. Синтаксис. Урок #18.
7:43

Ключевое слово break. Оператор break. Описание. Пример. Синтаксис. Урок #18.

Канал: #SimpleCode
КАК РАБОТАТЬ С МАССИВАМИ В C# НА САМОМ ДЕЛЕ | C# ОТ НОВИЧКА К ПРОФЕССИОНАЛУ | # 27
22:50

КАК РАБОТАТЬ С МАССИВАМИ В C# НА САМОМ ДЕЛЕ | C# ОТ НОВИЧКА К ПРОФЕССИОНАЛУ | # 27

Канал: #SimpleCode
ИНДЕКСЫ И ДИАПАЗОНЫ В C#8 | C# ОТ НОВИЧКА К ПРОФЕССИОНАЛУ | УРОК # 28
21:40

ИНДЕКСЫ И ДИАПАЗОНЫ В C#8 | C# ОТ НОВИЧКА К ПРОФЕССИОНАЛУ | УРОК # 28

Канал: #SimpleCode
Найти минимальный элемент массива. Поиск минимального элемента в массиве. C++ для начинающих. ДЗ#8.
9:00

Найти минимальный элемент массива. Поиск минимального элемента в массиве. C++ для начинающих. ДЗ#8.

Канал: #SimpleCode
ВЫВОД ДВУМЕРНОГО МАССИВА СИ ШАРП | C# ОТ НОВИЧКА К ПРОФЕССИОНАЛУ | УРОК # 31
14:52

ВЫВОД ДВУМЕРНОГО МАССИВА СИ ШАРП | C# ОТ НОВИЧКА К ПРОФЕССИОНАЛУ | УРОК # 31

Канал: #SimpleCode
C++ закрывается консоль. Что делать?  Задержка экрана консоли. Урок #21.
2:15

C++ закрывается консоль. Что делать? Задержка экрана консоли. Урок #21.

Канал: #SimpleCode
C# статические поля класса | как работает ключевое слово static | C# ОТ НОВИЧКА К ПРОФЕССИОНАЛУ # 63
11:44

C# статические поля класса | как работает ключевое слово static | C# ОТ НОВИЧКА К ПРОФЕССИОНАЛУ # 63

Канал: #SimpleCode
КАК НАРИСОВАТЬ ТРЕУГОЛЬНИК В КОНСОЛИ C# | C# ДОМАШНИЕ ЗАДАНИЯ | #5
23:24

КАК НАРИСОВАТЬ ТРЕУГОЛЬНИК В КОНСОЛИ C# | C# ДОМАШНИЕ ЗАДАНИЯ | #5

Канал: #SimpleCode
ASCII графика из любой картинки на C# пишем программу | ASCII генератор | С# практика | C# ПЛЮШКИ
30:47

ASCII графика из любой картинки на C# пишем программу | ASCII генератор | С# практика | C# ПЛЮШКИ

Канал: #SimpleCode
Теги видео
|

Теги видео

как научится программировать с нуля
как научится программировать
для начинающих
для новичков
для чайников
на си
научиться программированию
курсы программирования
задачи
бесплатно
уроки
visual studio
языки программирования
программист обучение
c уроки
азы программирования
Что такое nul
null c++ что это
nullptr c++ что это
c++ nullptr vs null
nullptr c++11
null pointer c++
указатель на null
указатель nullptr
нулевой указатель c++
Субтитры
|

Субтитры

subtitles menu arrow
  • enАнглийский
Скачать
00:00:02
с вами продолжаем изучать
00:00:03
программирование на примере языка си
00:00:05
плюс плюс в прошлом уроке мы с вами
00:00:07
начали разбираться как конкретно работа
00:00:09
с динамической памятью
00:00:11
научились выделять места в оперативной
00:00:13
памяти под наши данные с помощью
00:00:16
оператора new
00:00:18
а также убирать за собой и чистите
00:00:20
данные с помощью оператора дэвид сегодня
00:00:24
мы поговорим с вами о том что такое нал
00:00:27
инал пойнтер в принципе то практически
00:00:30
одинаковые вещи и для чего эти вещи
00:00:33
нужны вообще насколько вы наверно
00:00:36
помните прошлый урок у нас закончился на
00:00:39
том что после очистки место которое мы
00:00:46
выделяли под данные в оперативной памяти
00:00:50
в динамической ее части то есть в куче
00:00:53
сами данные исчезают то есть после
00:00:56
выполнения операторы оператора дэвид
00:00:59
сами данной нас уничтожается и система
00:01:01
может выделять эту память которую мы уже
00:01:04
не используем для каких-то других своих
00:01:07
нужд но у нас остается проблема у нас в нашем
00:01:12
указатели в данном случае по
00:01:15
все еще сохранен адрес на тот участок
00:01:18
памяти где у нас лежали данные и в
00:01:21
принципе нам никто не запрещает туда
00:01:23
обращаться и мы можем получить данные
00:01:26
которые там лежат
00:01:27
или туда что-нибудь записать и либо
00:01:31
что-нибудь сломать и кому-то другому
00:01:33
либо же получить какие-то некорректные
00:01:36
данные если у нас какая-то ошибка логики
00:01:38
и начать с ними работать вот примеры мы
00:01:41
можем по этому указателю сейчас получить
00:01:43
вот такое вот число и если у нас
00:01:45
какие-то там расчеты и вдруг нам попадет
00:01:49
мне за того что нам нужно какое-то
00:01:51
случайное число мы можем даже не узнать
00:01:54
что у нас что-то пошло не так так вот
00:01:56
неплохо было бы как-то определиться и
00:01:59
как-то отметить наш указатель таким
00:02:04
образом чтобы мы сами понимали что он
00:02:06
уже больше никуда не указывает вот для
00:02:09
этого и используется нал и
00:02:12
pointer обратите внимание также что если
00:02:15
у нас сейчас вызывается оператор отделит
00:02:19
на нашем указатели и мы очищаем память
00:02:24
которая по нему находится на которую он
00:02:26
указывает то собственно данные наши
00:02:30
теряются
00:02:31
если мы опять обратимся выведем на
00:02:33
консоли эти данные но то в принципе у
00:02:36
нас это может получиться и спокойно
00:02:39
получается мы получаем вот тот мусор
00:02:41
который сейчас находится по адресу в
00:02:44
памяти куда указывать наш указатель
00:02:46
после того как мы его почистили
00:02:48
но если мы вдруг случайно возьмем и
00:02:51
опять вызовем оператор дэвид то все
00:02:54
закончится очень плохо мы получаем вот
00:02:57
такую вот ошибку которая нам говорит о
00:02:59
том что у нас возникла проблема при
00:03:03
работе с кучей то есть с динамической
00:03:07
памяти
00:03:08
собственно для того чтобы избежать такой
00:03:10
проблемы мы можем использовать такую
00:03:15
вещь как наук но для начала давайте
00:03:17
немножечко
00:03:19
отклонился в сторону и это будет сторона
00:03:23
других языков программирования таких
00:03:25
языках программирования как java или той
00:03:29
же сишарп нам изначально является скажем
00:03:35
так отдельным типам данных и всегда ним
00:03:40
и являлся поэтому там не было некоторых
00:03:44
моментов которые я сейчас вам расскажу о
00:03:48
си плюсах все плюсах же есть на ул и на
00:03:54
у pointer так вот на лп winter это более
00:03:58
новое можно так сказать разработка
00:04:01
которая введена в язык си плюс плюс с 11
00:04:05
его стандартам и она уже работает
00:04:07
примерно так же само как java и сишарп
00:04:10
она является отдельным типам данных с
00:04:14
которыми с которым компилятор ничего
00:04:17
спутать ним
00:04:18
может она уже по сути это все равно что
00:04:21
вот такая вот вот такая вот просто
00:04:24
запись то есть 0 если мы сделаем вот так
00:04:31
то это значит что наш указатель по
00:04:35
теперь не будет хранить какой-то адрес в
00:04:38
памяти будет так называемым нулевым
00:04:42
указателем то есть указывать на 0 либо
00:04:45
же мы можем написать
00:04:47
вот так эта запись будет равнозначно
00:04:52
тому что мы чтобы мы писали просто 0 на
00:04:55
самом деле это макрос если мы наведем на
00:04:57
него мышку поставим на него курсор и
00:04:59
нажмем f12 то мы увидим такую вот запись
00:05:03
define нал и 0 на самом деле это просто
00:05:08
означает что все слова
00:05:11
вот такие на у компилятор будет заменять
00:05:14
на ноль поэтому что мы напишем на что
00:05:18
напишем ноль это практически одно и тоже
00:05:21
ну-ка макроса мой возможно немножечко
00:05:23
позже еще вернемся но думаю вот такой
00:05:26
вот таких базовых знаний чтобы понять
00:05:29
что такое простейший 0 или 0 вам хватит
00:05:34
ну так вот
00:05:35
случае с указателями такая вот штука
00:05:40
говорит компилятору
00:05:43
даже можно сказать не компилятору а
00:05:46
нашему указателю который вот сейчас
00:05:48
до момента выполнения 17 строки кода
00:05:51
указывать на какой-то адрес оперативной
00:05:54
памяти где мы уже на 15 строчки кода
00:05:56
почистили память и говорит этому
00:06:01
указателю чтобы он этот адрес забыл
00:06:04
чтобы мы случайно туда не обратились вот
00:06:08
после того как мы сюда присвоили нас
00:06:10
здесь одни нули
00:06:11
ну то есть нулевой указатель если мы
00:06:14
сделаем вот так нолик теперь выполним и
00:06:19
получим то же самое ну потому что по
00:06:21
сути это есть одно и тоже
00:06:24
так вот если после такой вот операции мы
00:06:28
попробуем сделать снова дэвид то у нас
00:06:34
все пройдет без проблем потому что
00:06:37
оператор дэвид посмотрит что у нас
00:06:38
указатель указывает на нал и не будет
00:06:40
пытаться там ничего чистить поэтому мы
00:06:43
не получим такую вот ошибку и также мы
00:06:46
четко сможем проверять наш указатель на
00:06:49
нал точно то содержит ли он в себе
00:06:53
какой-то адрес или нет вот к примеру
00:06:57
если мы сейчас попробуем обратиться
00:06:59
через stealth нашим указатель это он нам
00:07:04
выведет наш адрес ну вот одни нули на мы
00:07:07
можем четко сделать вот такую проверку и
00:07:13
впо не равно нулю и либо надо в нашем
00:07:21
случае тогда мы будем выводить допустим на
00:07:24
экран
00:07:25
адрес нашего указателя в данном случае
00:07:31
наш адрес не вывелся потому что
00:07:34
собственного наш указатель указывает на
00:07:36
нал раз наш указатель указывает на налто
00:07:39
значит он в принципе ничего не может
00:07:41
хранить таким образом мы избавляемся от
00:07:45
того чтобы получить случайно или
00:07:47
записать случайно
00:07:49
какие-то не те данные если же мы вот эту
00:07:53
запись уберем то мы не можем знать куда
00:07:56
указывает этот указатель мы не можем
00:07:58
перебрать вообще всевозможные адреса и
00:08:00
не можешь знать что там лежит поэтому мы
00:08:04
получим вывод нашего адреса а ну еще и
00:08:07
ошибку которая осталась у меня за кадром
00:08:11
потому что ее не всегда видно когда я
00:08:13
записываю на бандикам и так хорошо мы с
00:08:16
вами разобрались с тем что вот такой вот
00:08:19
обычный нал это просто 0
00:08:23
зачем нам тогда отдельный тип данных на
00:08:26
у пойнта то есть в принципе мы можем использовать
00:08:29
вместо вот такого нала нал winter
00:08:33
работать оно будет в данном случае для
00:08:36
нас так же самым давайте посмотрим в
00:08:39
отладчике что у нас здесь произойдет
00:08:41
итак вот мы имеем в нашем указатели
00:08:43
какой-то адрес данный можешь затерли на
00:08:46
15 строчки кода и на 17 строчки кода мы
00:08:49
сейчас присвоим туда нал пойнтер это уже
00:08:53
не просто макрос не просто нолик не
00:08:55
просто in the вый нолик обратите
00:08:57
внимание не целочисленный тип int а
00:08:59
отдельный тип данных мы его сюда
00:09:03
присваиваем и вроде как бы результат тот
00:09:06
же сам на самом деле для компилятора
00:09:09
разница есть
00:09:11
компилятор никогда не перепутает вот
00:09:15
такой вот указатель знал по интером с
00:09:19
целочисленным типом данных к примеру
00:09:21
если у вас будет какая-то функция
00:09:25
она будет перегружена для типа int и для
00:09:29
указателя и вы захотите передать в вашу функцию
00:09:36
вот такую вот штуку указатель куда
00:09:40
запишите 0 int-овое 0 а ваша функция
00:09:44
принимает либо указатель на им либо
00:09:46
прост целочисленный тип int то в таком
00:09:49
случае у компилятора могут быть проблемы
00:09:51
какую функцию вызвать
00:09:53
какую реализацию и что дальше с этим
00:09:56
делать получается какая-то
00:09:57
неоднозначность если вы сейчас ничего не
00:09:59
поняли о перегрузке тогда советую вам
00:10:02
посмотреть мой урок о перегрузке функции
00:10:04
чтобы понять что сейчас сказал ссылку на
00:10:07
этот урок я оставлю внизу в описании под
00:10:09
этим видео вот так вот в одиннадцатом
00:10:13
стандарте си плюс плюс ввели
00:10:18
вот такую вот вещь какнал pointer это
00:10:21
теперь отдельный тип данных и компилятор его
00:10:25
никогда не перепутать антон поэтому
00:10:29
советую вам всегда использовать его
00:10:31
когда вы будете работать с указателя
00:10:34
но также если вы встретите где-то старый
00:10:39
кот то вам может встретиться и вот такая
00:10:41
вот запись дата присвоения указатели 0 и
00:10:44
вот такая вот запись вы должны в курсе
00:10:51
быть что это значит но и какие с этим
00:10:55
могут быть проблемы хотя скажу вам что
00:10:57
на самом деле такие проблемы возникают
00:10:59
довольно редко но все равно дабы
00:11:01
исключить их вообще лучше использовать
00:11:04
на у pointer также хочу предостеречь вас
00:11:06
еще от одного неосторожного телодвижения
00:11:11
скажем такой от одной из ошибок если вам
00:11:15
нужно будет очистить
00:11:17
динамическую память под в которой
00:11:20
выделено место под ваши данные
00:11:22
то вам обязательно сначала нужно вызвать
00:11:26
дэвид ну а затем если вам нужно затереть
00:11:30
адрес присваивать нашим указателю на у
00:11:36
пойнтер если вы сделаете наоборот то есть
00:11:41
сначала присвоить и указатель in all
00:11:43
winter
00:11:44
а затем вызовите дэвид то такое ваше
00:11:47
действие приведет к утечке памяти и
00:11:50
смотрите почему так произойдет
00:11:52
представьте что вот это наша программа
00:11:54
вот это наш указатель а вот данные в
00:11:57
оперативной памяти на которые указывают
00:12:00
указатель если вы вызываете сначала
00:12:03
белит то сначала убиваются эти данные а
00:12:06
потом когда вы присылаете нам то
00:12:09
затирается указатель то есть указатель
00:12:11
указывает на моль и теряется и адрес
00:12:14
который хранил указатель то есть тот
00:12:17
адрес где у вас были даны
00:12:18
но если вы сначала присвоить и сюда на
00:12:22
vape enter ну или простонал тогда вы
00:12:25
просто задираете адрес но данные никуда
00:12:29
не деваются не так и висят оперативной
00:12:31
память получается после того как вы сюда
00:12:33
прислали нам по интерна передайте мне
00:12:35
ударили данные вы уже не каким образом к
00:12:38
им не даст учитесь и они там так и
00:12:42
останутся висеть до тех пор пока вообще
00:12:43
выполняется вашу программу только затем
00:12:46
когда уже ваша программа или упадет если
00:12:50
много таких у тещи к будет либо просто
00:12:51
завершится операционная система сама
00:12:56
почистит давать поэтому сначала
00:12:59
обязательно нужно почистить
00:13:01
места в оперативной памяти удалить
00:13:03
данные из динамической памяти а потом
00:13:05
присылать нам pointer но ни в коем
00:13:07
случае не наоборот
00:13:08
ну и собственно на этом у меня пока все
00:13:10
если вам понравилось это видео оно было
00:13:13
вам полезно и интересно то не забудьте
00:13:15
поставить под ним лайк .
00:13:17
если вы поделитесь этим видео со своими
00:13:19
друзьями которые также хотят изучать
00:13:21
программирование
00:13:22
ну конечно же подписывайтесь на канал
00:13:24
чтобы не пропустить следующий урок всем
00:13:26
спасибо за внимание пока

Описание:

Понравилось видео или оказалось полезным? Подпишись! Что такое null. null c++ что это. nullptr c++ что это. c++ nullptr vs null. nullptr c++11. #54 Перегрузка функций c++ пример.Что такое перегрузка функций. Как перегрузить функцию. Урок #40 https://www.youtube.com/watch?v=A-j5xN-pOCU&index=49&list=PLQOaTSbfxUtCrKs0nicOg2npJQYSPGO9r&t=25s Уроки по программированию Наша группа ВК https://vk.com/smplcode Подписывайтесь на канал https://www.youtube.com/channel/UCtLKO1Cb2GVNrbU7Fi0pM0w

Готовим варианты загрузки

popular icon
Популярные
hd icon
HD видео
audio icon
Только звук
total icon
Все форматы
* — Если видео проигрывается в новой вкладке, перейдите в неё, а затем кликните по видео правой кнопкой мыши и выберите пункт "Сохранить видео как..."
** — Ссылка предназначенная для онлайн воспроизведения в специализированных плеерах

Вопросы о скачивании видео

mobile menu iconКак можно скачать видео "Что такое null pointer. null c++ что это. nullptr c++ что это. nullptr c++11. Урок #54"?mobile menu icon

  • Сайт http://unidownloader.com/ — лучший способ скачать видео или отдельно аудиодорожку, если хочется обойтись без установки программ и расширений. Расширение UDL Helper — удобная кнопка, которая органично встраивается на сайты YouTube, Instagram и OK.ru для быстрого скачивания контента.

  • Программа UDL Client (для Windows) — самое мощное решение, поддерживающее более 900 сайтов, социальных сетей и видеохостингов, а также любое качество видео, которое доступно в источнике.

  • UDL Lite — представляет собой удобный доступ к сайту с мобильного устройства. С его помощью вы можете легко скачивать видео прямо на смартфон.

mobile menu iconКакой формат видео "Что такое null pointer. null c++ что это. nullptr c++ что это. nullptr c++11. Урок #54" выбрать?mobile menu icon

  • Наилучшее качество имеют форматы FullHD (1080p), 2K (1440p), 4K (2160p) и 8K (4320p). Чем больше разрешение вашего экрана, тем выше должно быть качество видео. Однако следует учесть и другие факторы: скорость скачивания, количество свободного места, а также производительность устройства при воспроизведении.

mobile menu iconПочему компьютер зависает при загрузке видео "Что такое null pointer. null c++ что это. nullptr c++ что это. nullptr c++11. Урок #54"?mobile menu icon

  • Полностью зависать браузер/компьютер не должен! Если это произошло, просьба сообщить об этом, указав ссылку на видео. Иногда видео нельзя скачать напрямую в подходящем формате, поэтому мы добавили возможность конвертации файла в нужный формат. В отдельных случаях этот процесс может активно использовать ресурсы компьютера.

mobile menu iconКак скачать видео "Что такое null pointer. null c++ что это. nullptr c++ что это. nullptr c++11. Урок #54" на телефон?mobile menu icon

  • Вы можете скачать видео на свой смартфон с помощью сайта или pwa-приложения UDL Lite. Также есть возможность отправить ссылку на скачивание через QR-код с помощью расширения UDL Helper.

mobile menu iconКак скачать аудиодорожку (музыку) в MP3 "Что такое null pointer. null c++ что это. nullptr c++ что это. nullptr c++11. Урок #54"?mobile menu icon

  • Самый удобный способ — воспользоваться программой UDL Client, которая поддерживает конвертацию видео в формат MP3. В некоторых случаях MP3 можно скачать и через расширение UDL Helper.

mobile menu iconКак сохранить кадр из видео "Что такое null pointer. null c++ что это. nullptr c++ что это. nullptr c++11. Урок #54"?mobile menu icon

  • Эта функция доступна в расширении UDL Helper. Убедитесь, что в настройках отмечен пункт «Отображать кнопку сохранения скриншота из видео». В правом нижнем углу плеера левее иконки «Настройки» должна появиться иконка камеры, по нажатию на которую текущий кадр из видео будет сохранён на ваш компьютер в формате JPEG.

mobile menu iconСколько это всё стоит?mobile menu icon

  • Нисколько. Наши сервисы абсолютно бесплатны для всех пользователей. Здесь нет PRO подписок, нет ограничений на количество или максимальную длину скачиваемого видео.