new c++ что это. new c++ пример. c++ new delete. delete c++ что это. delete c++ пример. Урок #53

  Рет қаралды 178,612

#SimpleCode

#SimpleCode

7 жыл бұрын

Понравилось видео или оказалось полезным? Подпишись!
Операторы выделения памяти с++.
Работа с динамической памятью.
new c++ что это. new c++ пример. c++ new delete. delete c++ что это. delete c++ пример.
Уроки по программированию
Наша группа ВК smplcode
Подписывайтесь на канал / @simplecodeit

Пікірлер: 205
@spartv1537
@spartv1537 3 жыл бұрын
С++ Делает из человека чистюлю.
@sleepyNovember_project
@sleepyNovember_project 6 ай бұрын
В зависимости от человека может сделать и грязнулю))
@kaisaryerdenbekov1588
@kaisaryerdenbekov1588 6 жыл бұрын
Забыл, вернулся, вспомнил.
@mal1n778
@mal1n778 Жыл бұрын
Тоже самое)))
@user-jp8fr4lz4c
@user-jp8fr4lz4c 2 жыл бұрын
Этими курсами вы сделали невероятный вклад в появление на свет всё большего и большего количества юных, и не очень программистов
@frex.arizona
@frex.arizona Жыл бұрын
Я начинал проходить курс с другом он уже с 14 курса он бросил ,а я до сих пор прохожу курс проходили почти 1 млн а теперь 131 тыс
@user-gd5xn8ss4w
@user-gd5xn8ss4w 6 жыл бұрын
Спасибо большое. Что бы я делал без ваших уроков)
@SimpleCodeIT
@SimpleCodeIT 6 жыл бұрын
Пожалуйста! =)
@CaytoCatugawa
@CaytoCatugawa 4 жыл бұрын
@@SimpleCodeIT , pa.delete - удаляет данные которые находились в выделенной new памяти, но сама память выделенная под указатель pa осталась ? Сам указатель (в данном случае 4 байта ?) тоже надо удалять ?
@hdfroggit3051
@hdfroggit3051 4 жыл бұрын
@@CaytoCatugawa если я не ошибаюсь, память под указатель, выделилась в функции main. После закрытия программы оно удалиться само
@Crazygaz77
@Crazygaz77 2 жыл бұрын
@@SimpleCodeIT Теперь меня мучает вопрос, по поводу окошка "Средства диагностики" Можно ли там посмотреть что происходит с памятью во время отладки? И второй как эти панели нормально настроить? У меня они прыгают как хотят =)
@hollygreen8663
@hollygreen8663 Жыл бұрын
почему delete удаляет данные в хипе без операции разыменования - delete *pa; ?
@user-wm2rr9jh8b
@user-wm2rr9jh8b 3 жыл бұрын
Классный препод. Один из лучших. Объясняет все на практике и все понятно. Респект
@Electromagnetic-Charge
@Electromagnetic-Charge 8 ай бұрын
Сергей спасибо Вам за уроки, это даже хорошо, что С++ не убирает оставшийся мусор... Сам вводишь нужный объём оперативной памяти и сам от всего избавляешься. Может кому-то это и не нравится, а по мне - это даже к лучшему. Чувствуется, что человек - создатель компьютерной сферы и её хозяин...
@user-gz7ib4bt8p
@user-gz7ib4bt8p 6 жыл бұрын
Лучшие уроки, которые я видел! Сделайте урок на тему разницы между new и malloc, delete и free. И еще если можно как правильно настраивать стек и кучу для программы. Спасибо большое за такие классные уроки!
@tmdan91
@tmdan91 5 жыл бұрын
malloc и calloc - это конструкции языка С. new - это конструкции языка С++. По сути они одну и ту же задачу выполняют
@andreyvolkov3117
@andreyvolkov3117 4 жыл бұрын
@@tmdan91 спасибо!
@dml1207
@dml1207 6 жыл бұрын
Спасибо за отличные уроки!
@mihas1106
@mihas1106 4 жыл бұрын
ОГРОМНЕЙШОЕ СПАСИБО👍
@archiechellaut9483
@archiechellaut9483 2 жыл бұрын
Большое спасибо вам за урок и прекрасное пояснение, Сергей!
@math1560
@math1560 4 жыл бұрын
Спасибо Вам большое за такие понятные,и крутые уроки!
@bulba1995
@bulba1995 2 жыл бұрын
Спасибо большое за ваш труд, шикарный контент.
@polmesh2057
@polmesh2057 Жыл бұрын
Благодарю. Прекрасная работа
@Dmitri_17
@Dmitri_17 Жыл бұрын
Спасибо большое за ваш труд!)
@afonlyi
@afonlyi 6 жыл бұрын
Огромное спасибо!!!!!!!!!!!!
@Ermine882
@Ermine882 7 жыл бұрын
Спасибо.
@Evgeny..
@Evgeny.. 3 жыл бұрын
Спасибо за урок!
@Ms001man
@Ms001man 5 жыл бұрын
Спасибо за урок.
@TheWladberlin
@TheWladberlin 4 жыл бұрын
Спасибо. Принял. Помогает.
@user-jw5ol8by3t
@user-jw5ol8by3t Жыл бұрын
Доброго времени суток, Сергей) Сейчас просматриваю Ваш курс (невероятно крутой). Добрался до этого урока. Есть некоторое сомнение в Вашем объяснении касательно кучи. У Вас сказано, что куча лежит в оперативе (вне процесса программы), а доступ к ней осуществляется из процесса (посредством указателей). Здесь немного не так. Куча - это область данных внутри процесса и при динамическом выделении памяти мы занимаем как раз таки эту область. Если не хватает кучи, выделенной ОС на процесс, ОС предоставляет ещё кучи(я так понимаю за счёт расширения процесса). Если ошибаюсь, поправьте пожалуйста. p.s. Большой фанат данного курса=)))
@jojopko_dev
@jojopko_dev 4 жыл бұрын
всё меньше людей прохот данный курс. Начинали с 700т, теперь 47т. Круто)
@indeec9538
@indeec9538 3 жыл бұрын
нам только лучше
@jojopko_dev
@jojopko_dev 3 жыл бұрын
@@indeec9538, интересное мнение) я ушёл с ~60. Решил продолжить книгами
@bocik2854
@bocik2854 3 жыл бұрын
@@jojopko_dev посоветуй киженции)
@ded6691
@ded6691 3 жыл бұрын
@@bocik2854 Согласен
@user-pm5kv1xj3x
@user-pm5kv1xj3x 2 жыл бұрын
@@jojopko_dev какие книги прочел?
@std4042
@std4042 6 жыл бұрын
Спасибо.)
@user-wo1dx1rz4z
@user-wo1dx1rz4z 6 жыл бұрын
Спасибо!
@Firuz26
@Firuz26 7 жыл бұрын
Спасибо
@user-dq5zu1vg2o
@user-dq5zu1vg2o 2 жыл бұрын
Cпасибо!🥰
@SimpleCodeIT
@SimpleCodeIT 7 жыл бұрын
#new #delete #SimpleCode #урокипрограммирования
@user-yu1qi7pl9c
@user-yu1qi7pl9c 6 жыл бұрын
попробуй закинуть этот курс на платформу Stepik. Ты лучше объясняешь чем многие программисты из Яндекс, Computer Science Center и тд
@user-yu1qi7pl9c
@user-yu1qi7pl9c 6 жыл бұрын
Все участники этих курсов мечтают о таком преподавателе
@greatskydrake9531
@greatskydrake9531 3 жыл бұрын
простите, нужно ли использовать delete если я не использовал new, а только объявлял переменные ?
@kadencode5347
@kadencode5347 2 жыл бұрын
@@greatskydrake9531 не нужно
@user-cj4tg8in8c
@user-cj4tg8in8c 8 ай бұрын
скилл рисования растет с каждым уроком( ̄︶ ̄)↗
@user-pn4zs2ot3f
@user-pn4zs2ot3f 6 жыл бұрын
спасибо помогло
@chill4197
@chill4197 2 жыл бұрын
Спасибо, друг
@sankarshanarama6753
@sankarshanarama6753 Жыл бұрын
Серёжа, ты самый крутой!!
@mr.warpunch6007
@mr.warpunch6007 2 жыл бұрын
Годный ролик, качественный контент!
@user-wf8ui9xe6d
@user-wf8ui9xe6d 4 жыл бұрын
Спасибо!!!
@firesteel1313
@firesteel1313 Жыл бұрын
большое спасибо!
@roflstea3394
@roflstea3394 5 жыл бұрын
Благодарочка сэр
@user-xm5zl9up4r
@user-xm5zl9up4r 5 ай бұрын
спасибо
@blackoldont6426
@blackoldont6426 Жыл бұрын
Классно! Сделай видео про volatile.
@alexeymi2618
@alexeymi2618 5 жыл бұрын
Спасчебо :3
@hhhannahmmmontana
@hhhannahmmmontana 5 жыл бұрын
оч годно)
@wasony.126
@wasony.126 4 жыл бұрын
👍👍👍
@cd_rom12
@cd_rom12 3 жыл бұрын
Джедаи говорят тебе спасибо!
@buddha5089
@buddha5089 5 жыл бұрын
Toп спасибо
@Gta-sm6xc
@Gta-sm6xc 3 жыл бұрын
очень классные видео ,как будут деньги обезательно кину на печеньку
@user-ut7tj6bp4t
@user-ut7tj6bp4t 4 жыл бұрын
Удачи в развитии канала и спасибо за лайк)))
@Imgui_seller
@Imgui_seller 2 жыл бұрын
.
@chelovechek7773
@chelovechek7773 Ай бұрын
👍
@user-ye7vc6ug1l
@user-ye7vc6ug1l 5 жыл бұрын
Спсб
@giorgikiladze3230
@giorgikiladze3230 5 жыл бұрын
genialno
@Riderwin
@Riderwin 6 жыл бұрын
гуд
@user-il4ph3fr6h
@user-il4ph3fr6h 3 жыл бұрын
Здраствуй Сергей, ответь если прочитаешь: можно ли выделять динамическую память для двухмерного массива внутри класса
@Xack3r
@Xack3r 4 ай бұрын
Как мне кажется дойдя до сюда вам уже хватит знаний написать какой-то проект чтобы закрепить все приведушие уроки как пример я написал крестики нолики для 2-их каждый ходит по очереди, это заняло 200 строк кода
@aln9391
@aln9391 6 жыл бұрын
Расскажите пожалуйста о борьбе с фрагментацией памяти.
@nikitasobur8011
@nikitasobur8011 8 ай бұрын
Большое спасибо за всю серию уроков в целом и за этот урок в частности! Плейлист все еще по прежнему актуален в 2023! году. Запускал +- что-то похожее в своей Visual Studio Code. Пока что озадачен тем, почему после удаления с помощью оператора delete указателя и последующего вывода адреса, на который он ссылается и значения, которое лежит по этому адресу в консоль выводится тот же адрес и то же самое значение, получаемое при разыменовании указателя, которые были ДО удаления указателя (работаю на ОС Windows 10). Точнее сказать, понятно почему адрес не поменялся, но почему вместо 10 не появился мусор (если что я не забыл скомпилировать заново программку)?
@bobzihno8721
@bobzihno8721 5 ай бұрын
у меня такая же проблема, вы решили свою проблему? если да то поделитесь как
@sleepyNovember_project
@sleepyNovember_project 28 күн бұрын
​@@bobzihno8721возможно оно работает немного не так как мы думаем, то есть: Не сразу удаляется значение по адресу delete просто открывает доступ для записи по этому адресу всем другим прогам и процессам, значение остаётся по этому адресу, и его уже может перезаписать любая другая программа А до delete по этому адресу другие проги не имеют доступ туда, он зарезервирован нами
@bricks4694
@bricks4694 4 жыл бұрын
Во время исполнения программы, когда исполнение доходит до строчки удаления, происходит краш программы
@77Mrconstantin
@77Mrconstantin 2 жыл бұрын
Учу язык Си с нуля. Дошёл до динамического выделения памяти. В моём учебнике автор решил использовать оператор new вместо malloc. Автор написал что так будет удобнее. В статье про оператор new я так же прочитал что он имеет ряд приемуществ по сравнению с malloc. А с помощью ваших роликов я закрепил данный материал. Спасибо .
@Imgui_seller
@Imgui_seller 2 жыл бұрын
Как успехи?:D
@user-bb6zs5js8h
@user-bb6zs5js8h Жыл бұрын
@@Imgui_seller ,а как твои успехи?
@frazismert3071
@frazismert3071 Жыл бұрын
@@user-bb6zs5js8h а как твои?
@user-qx2sq9ds5g
@user-qx2sq9ds5g 9 ай бұрын
ну а твои то как успехи?@@frazismert3071
@Zodarg
@Zodarg 8 ай бұрын
​@@frazismert3071а твои то как?
@user-iq7gx1zn1x
@user-iq7gx1zn1x 3 жыл бұрын
А я-то думал почему компилятор ругается на мою переменную new .
@Bear_Baloo
@Bear_Baloo 2 жыл бұрын
Всё здорово. Повествование на 5 с +. Но пока совершенно не понятно как применить накопленные знания за 50+ уроков.
@user-ko8uz4ye3y
@user-ko8uz4ye3y 3 жыл бұрын
0:38 - Как работает оперативная память при объявлении переменной? 2:55 - Как запросить ячейку в оперативной памяти указателем? 7:23 - Как удалить указатель?
@ilnev3738
@ilnev3738 2 жыл бұрын
Спасибо
@asano3766
@asano3766 2 жыл бұрын
удаляем не указатель, а данные в запрошенной ячейке оперативной памяти, на которую он указывает. Сергей же добавил, что указатель продолжает "видеть" адрес ячейки
@antop6918
@antop6918 2 жыл бұрын
Серега, я готов начинай
@YA-bq1gf
@YA-bq1gf 6 жыл бұрын
а если в отладчике после (шага) ну красные буквы не появились про проходе (делит) , значит не удалилось?
@oxygenoxygeno
@oxygenoxygeno 3 жыл бұрын
Подскажите пожалуйста как очистить полностью динамическую память
@zidox935
@zidox935 7 жыл бұрын
Уроки просто суперские :D Скажи, а будешь ли ты делать такие видео-уроки на winapi, работа с файловой системой? и.т.д =)
@SimpleCodeIT
@SimpleCodeIT 7 жыл бұрын
На счёт winapi пока не уверен, а работа с файлами позже будет.
@zidox935
@zidox935 7 жыл бұрын
Будет полезно разобрать: Директивы #define, #ifdef и #ifndef Сделай видос =)
@crackall1946
@crackall1946 4 жыл бұрын
@@SimpleCodeIT здравствуйте, пожалуйста, сделайте в будущем уроки по Qt или же по windows.h
@SaffronChipMCPE
@SaffronChipMCPE 4 жыл бұрын
@@crackall1946 чувак, если захочет - сделает. Человек тебе бесплатно и максимально понятно объясняет темы, этого уже много. Хватит пользоваться добротой чужой
@mtfunit1301
@mtfunit1301 3 жыл бұрын
@@SaffronChipMCPE какие он темы объясняет? Он просто справочник читает...
@Xsen0n_1
@Xsen0n_1 Жыл бұрын
Интересно а это можно использовать в функции?
@yellowmoonishka1725
@yellowmoonishka1725 Жыл бұрын
Ths
@coder1012
@coder1012 5 жыл бұрын
Здравствуйте дорогой учитель, я всегда смотрю ваши видео уроки по C++, вы всегда все четко и понятно объясняете, и я хотел бы спросить, для чего нужен библиотека time.h и чем он отличается от библиотеки ctime? И еще один вопрос: зачем нужен вывод "printf" в с++? и чем он отличается от cout?
@nailtagiyev6340
@nailtagiyev6340 5 жыл бұрын
это одно и тоже. time.h и ctime это одно и тоже. Просто time.h используют в С, а ctime в С++. С printf и cout также. Printf в С, а cout в С++
@BadDanFeeds
@BadDanFeeds 5 жыл бұрын
Rocer shot во многом прав: Действительно, для использования стандартных библиотек C в C++ не нужно писать ".h" в имени файла (хотя можно), нужно добавлять в начало имени букву 'c'. И больше никаких отличий. Но вот по поводу "printf" и "scanf" в C++ у меня есть замечания. Опять же, тут как в случае с библиотеками: "printf" и "scanf" - это функции языка C, но в C++ их так же можно использовать, только у них есть некоторые отличия от "плюсовых" "cout" и "cin". Отличия как в функционале, так и в синтаксисе. Для простых задач, конечно, проще использовать "cout" и "cin", но вот если нам надо, например, задать количество выводимых цифр в вещественном числе, то "cout" тут не силён. Вот пример, нам нужно ввести вещественное число (допустим, это будет 15.26479), а затем вывести его в формате 0000.00, то есть добавить незначащие нули перед числом, а после запятой вывести две цифры: { double var; cin >> var; //в вводе числа нет ничего необычного, поэтому используем "cin" cout
@user-pl2wu1nt5l
@user-pl2wu1nt5l 4 жыл бұрын
@@BadDanFeeds уже несколько раз здесь читаю ваши комментарии. Годно, очень годно
@BadDanFeeds
@BadDanFeeds 4 жыл бұрын
Спасибо, я стараюсь помогать другим)
@user-pl2wu1nt5l
@user-pl2wu1nt5l 4 жыл бұрын
@@BadDanFeeds это хорошо, что ты помогаешь другим.Тогда обьясни эту запись и по возможности напиши как её можно расписать *( *( p = new double* ) = new double ) = 2;
@cheatack2141
@cheatack2141 3 жыл бұрын
Да блин, самое интересное на следующий урок оставил
@OleksandrHlushchuk
@OleksandrHlushchuk 3 жыл бұрын
У меня 2019 студия, и там после операции delete адрес не остается тот самый, а становится 00008123. Почему так?
@user-im8yr1qo3m
@user-im8yr1qo3m 3 жыл бұрын
Это зависит от настроек SDL. Скорее всего у тебя по пути "ПРОЕКТ -> Свойства -> Свойства конфигурации -> C / C ++ -> Общие -> Проверки SDL " стоит Да (/sdl)
@user-wn2vq3tx1t
@user-wn2vq3tx1t Жыл бұрын
Сергей, здравствуйте! Не правильно понял задание дз но теперь уже страшно интересно: как сделать правильно шаблон и функцию которая меняет местами абсолютно два любых значения (например string и double) . Я пытался сделать template void foo(T1 &a, T2 &b, T3 *c = nullptr) { *c = a; a = b; b = *c; } но не даёт скомпилировать foo(a, b); , пишет что не хватает аргументов P.S.пробовал другие варианты тоже не получается (((
@GenCrypto1
@GenCrypto1 11 ай бұрын
2 одинаковых вида памяти нужно
@Viamsupervadetvadens
@Viamsupervadetvadens 6 жыл бұрын
up
@antoniopripizduchi858
@antoniopripizduchi858 Жыл бұрын
Симпл код: C++ не имеет сборщика мусора и когда-то оперативная память просто закончится и наша программа просто помрёт Я, после того как это услышал: while (true) { new int; }
@user-et3ss5pw7w
@user-et3ss5pw7w 6 ай бұрын
не удаётся запустить программу "адрес" не удаётся найти указанный файл. В релизе удалось разок запустить , но потом тоже самое начало писать. В чем причина, подскажете?
@alexgaran5339
@alexgaran5339 3 жыл бұрын
По сути через неконтролируемый цикл счетчика можно забить память компьютера?
@apxntektop3236
@apxntektop3236 3 жыл бұрын
Да, проверил, можно. Куча ошибок, и вообще жесть происхоидт.
@user-zi4pd8tj8w
@user-zi4pd8tj8w Ай бұрын
Почему у меня после очистки данных указатель меняет адрес?
@user-do1pb5rl3d
@user-do1pb5rl3d 4 ай бұрын
как в visual studio community сделать так, чтобы знак указателя *стояла ближе к названию переменной?? у меня наоборот и не могу найти как это изменить.
@sleepyNovember_project
@sleepyNovember_project 28 күн бұрын
Лучше привыкни к этому, потому что это правильно
@iMarcusin
@iMarcusin 3 жыл бұрын
За собой нужно убирать)
@nikswir
@nikswir 3 жыл бұрын
Ребят, почему у меня на xcode после оператора delete при выводе переменной все равно выводится прошлое значение?
@princessmary5556
@princessmary5556 Жыл бұрын
потому что после оператора delete данное значение никто пока ещё не изменил
@avage04
@avage04 5 жыл бұрын
А если например взять из оперативки 5000 и зайти в ведьмака или типо этого что будет?
@medef8253
@medef8253 5 жыл бұрын
Краш, либо просто не запустится игра
@SaffronChipMCPE
@SaffronChipMCPE 4 жыл бұрын
Ну, наверноес п*сда твоему компу, можешь выкидывать
@mhc180
@mhc180 6 ай бұрын
Кроме фризов и перезагрузки пк, ничего хорошего ты не увидишь
@grutgrut6486
@grutgrut6486 4 ай бұрын
почему delete pa , а не *pa ??? *pa(10) -это же интовая переменная и она дожна удалятся, просто pa это адрес в памяти , значит должен был затерется адрес , а не значение ячейки 10
@drewdzzz
@drewdzzz 6 жыл бұрын
А что делать, если я забуду написать delete, а программу закончу. Как убрать динамическую память?
@SimpleCodeIT
@SimpleCodeIT 6 жыл бұрын
Операционка почистит сама.
@princessmary5556
@princessmary5556 Жыл бұрын
Никак. Большинство типичных ОС автоматически подчищают за процессом. Однако в общем случае никто этого не гарантирует. Вполне возможно, что на какой нибудь экзотической ОС произойдет утечка ресурсов.
@blackarrow7171
@blackarrow7171 3 жыл бұрын
Почему мы используем именно указатель а не обычный инт?
@user-fl6jp7zq2i
@user-fl6jp7zq2i 2 жыл бұрын
Обычный int выделяется внутри области памяти, занятой самой программой. Указатель же может ссылаться на ячейку, лежащую за пределами области памяти, занятой программой (поэтому и называется "динамическая" память, то есть вне области программы).
@user-qu5ch6rl4f
@user-qu5ch6rl4f 2 жыл бұрын
Компилятор знает все наши переменные, и память под них изначально выделена.
@VadimLorelei
@VadimLorelei 2 жыл бұрын
@@user-qu5ch6rl4f компилятор знает не все переменные, например когда нужно выделить массив, длину которого узнаем уже в процессе работы программы
@user-or1hy4xz8u
@user-or1hy4xz8u 2 жыл бұрын
@@user-fl6jp7zq2i , вы спец по С++?
@princessmary5556
@princessmary5556 Жыл бұрын
@@user-or1hy4xz8u Вы разве не поняли, что она чушь написала?
@user-yt9ks2pd8w
@user-yt9ks2pd8w 6 жыл бұрын
я так и не понял, зачем нужен этот new int и delite))) типо для быстродействия проги и экономии памяти, так что-ли?))
@user-lo2dp3lc9n
@user-lo2dp3lc9n 5 жыл бұрын
new int по факту создание динамического массива, delite для удаление данных с памяти - ты пишешь программу используя динамичны массив все закончилась его роль в каком то участке кода и ты переходишь к второму этапу или части кода и от что бы у тебя не было засраной памяти старыми данными ты пишешь delite, и делаешь дальше свои дела если не напишешь у тебя автоматом очистит когда закроешь программу, но это не вариант если ты работаешь в компании по созданию игр, потому что у тебя будет код не на 100-200 строчек а на тысячи по этому и объем памяти у тебя будет уходить на много больше по этому тебе прийдется не забывать писать delite что бы не сломать прогу и за не хватки памяти, как то так
@iii-mk7no
@iii-mk7no 4 жыл бұрын
По сути нужен для того чтобы, выделить память для какойто ресурсоемкой задачи. Либо в том месте программы, где заранее не знаешь сколько памяти надо, а потом по ходу выполнения уже выделить нужный объем. А делит чтобы эту память просто освободить, когда она уже не нужна.
@user-or1hy4xz8u
@user-or1hy4xz8u 2 жыл бұрын
@@user-lo2dp3lc9n только delete а не delite
@s1lentgrave
@s1lentgrave 4 жыл бұрын
4:30 разве разыменование делается звёздочкой *? а амперсанд & для чего?
@hotabmax6431
@hotabmax6431 4 жыл бұрын
Danil Gorshnev В предыдущих видео есть
@s1lentgrave
@s1lentgrave 4 жыл бұрын
@@hotabmax6431 я понял, что перепутал с разадресацией, забыл исправить, сорян
@hotabmax6431
@hotabmax6431 4 жыл бұрын
Это синтаксис языка. Когда объявляешь указатель *pa то указываемый fhuevtyn берётся в &, а если указывается динамическая память то без амперсанда.
@s1lentgrave
@s1lentgrave 4 жыл бұрын
@@hotabmax6431 спасибо)
@user-zu5sh6wr7s
@user-zu5sh6wr7s Жыл бұрын
C++ как мама, не убершь мусор - уберут тебя...
@Kokurorokuko
@Kokurorokuko 4 жыл бұрын
Такой вопрос: в каком случае нам понадобится выделять дополнительную память?
@iii-mk7no
@iii-mk7no 4 жыл бұрын
Все зависит от программы которую пишешь. Ты пишешь чит типо Читэнжин. После отсеевания значений их надо гдето хранить. Ты же не знаешь сколько они займут памяти если хранить статически? Наверное нет. Поэтому ее проще выделить для конкретной задачи. Может и плохой пример, но как то так.
@Kokurorokuko
@Kokurorokuko 4 жыл бұрын
Но когда ты пишешь программу, ты же всегда можешь вернуться в код и выделить статически память.
@iii-mk7no
@iii-mk7no 4 жыл бұрын
@@Kokurorokuko Это так скажем я привел пример для уже готового решения. Или например тебе надо сделать матрицу. А размер вводит пользователь. Соответсвено лучше выделить память динамически, чем писать костыли.
@Kokurorokuko
@Kokurorokuko 4 жыл бұрын
Окей, спасибо
@kadencode5347
@kadencode5347 2 жыл бұрын
@@Kokurorokuko а еще, если обьект занимает много памяти, нужно выделить динамическую во имя избежания переполнения стека
@user-tw2ex8nr8r
@user-tw2ex8nr8r 10 ай бұрын
что самое плохое может случиться если написать следующий код ? int* ptr = new int; long long i = 0; for(;;) { *(ptr + i) = 5; i ++; }
@user-vz5xw2lk1r
@user-vz5xw2lk1r 6 жыл бұрын
9к просмотров, одни программисты развелись....
@user-rl9vb9sx7c
@user-rl9vb9sx7c 4 жыл бұрын
Хах,видел бы что сейчас твориться))
@ubermenschliche1319
@ubermenschliche1319 4 жыл бұрын
Vinch-Game "Мы программист" против подобных комментариев.
@Xenobolus
@Xenobolus 4 жыл бұрын
Одни программисты? За год? Вы видели, сколько за день набирают видео по типу "Парень обосрался на горке"?
@4etvero4ka90
@4etvero4ka90 3 жыл бұрын
int &X = *new int; X = 4; А как же такой пример? Как по мне он лучше.. Просто меня бы раздражало по кд писать *X что бы присвоить значение и так наверно код будет ещё более оптимизированнее с моим примером.. Правда это смотря какой код..
@4etvero4ka90
@4etvero4ka90 3 жыл бұрын
Ага, правда теперь при удалении придётся писать &X..: delete &X;
@user-qu5ch6rl4f
@user-qu5ch6rl4f 2 жыл бұрын
Сказано же, что выделяют обычно под массивы, а наши массивы и являются указателями, где звёздочки не нужны. К тому же ссылку нельзя переназначить для других целей, а указатель можно.
@user-km9mp9pg3f
@user-km9mp9pg3f 2 жыл бұрын
Почему после использования delete я все ещё могу получить доступ к значению???
@princessmary5556
@princessmary5556 Жыл бұрын
Потому что солнышко по прежнему свет. Мир не перевернулся. И память тоже все ещё существует.
@ZnZ
@ZnZ 6 жыл бұрын
Как я понял размер адреса это 4 байт, то есть адрес FFFFFFFF это придел (4 гб оперативки) А если у нас оперативки например 8гб, то какой адрес будет если все адреса до FFFFFFFF будут заняты?
@chinpokomon9387
@chinpokomon9387 6 жыл бұрын
4 байт это размер для данной переменной в int
@sabirsafarov8142
@sabirsafarov8142 4 жыл бұрын
@@chinpokomon9387 указатель тоже весит 4байта
@princessmary5556
@princessmary5556 Жыл бұрын
@@sabirsafarov8142 Нет никаких "тоже" Стандарт не гарантирует ни размер int, ни размер указателя. На разных платформах они могут быть разными.
@vitaliizadorozhnyi8101
@vitaliizadorozhnyi8101 5 жыл бұрын
"Память ест". XD
@bogdns
@bogdns 3 жыл бұрын
Почему я должен дважды указывать тип данных int *pa = new int?
@user-qu5ch6rl4f
@user-qu5ch6rl4f 2 жыл бұрын
Системе нужно знать, сколько памяти запрашивается. Мы и говорим ей "дай память под переменную инт" т.е. 4 байта
@bogdns
@bogdns 2 жыл бұрын
Сергей, а если я под переменную int захочу выделить память 4 байта float?
@user-qu5ch6rl4f
@user-qu5ch6rl4f 2 жыл бұрын
@@bogdns Скорее всего компилятор будет ругаться о несовпадении типов данных.
@user-qu5ch6rl4f
@user-qu5ch6rl4f 2 жыл бұрын
@@bogdns системе то все равно, что мы там храним, ей главное размер знать, а компилятору важно - он же следит, чтобы мы не путались в собственных переменных.
@user-uv4zh7xn2c
@user-uv4zh7xn2c Жыл бұрын
Потому что слова Тарелька и Вилька пишутся без мягкого знака а Кон с мягким знаком.
@Miiazzma
@Miiazzma 2 жыл бұрын
Помогите плиз( Решил попробовать эту вещь а именно: int *pa = new int; *pa=100; Cout
@user-or1hy4xz8u
@user-or1hy4xz8u 2 жыл бұрын
Адель, ты звездочку забыл добавить: Delete *pa;
@user-cb6lf8cs2u
@user-cb6lf8cs2u 2 жыл бұрын
Та же проблема. Как решил?
@user-cb6lf8cs2u
@user-cb6lf8cs2u 2 жыл бұрын
я убрал строчку "setlocale(LC_ALL, "RUS");" и всё сработало, в чём связь?)))
@Miiazzma
@Miiazzma Жыл бұрын
@@user-cb6lf8cs2u я пишу на телефоне, хах... Поэтому мне не нужно писать селтлокал, а так проблема не решилась, извиняюсь, что такое долгое кд на ответ, перегорел на пол года, сейчас снова вспоминаю все. Вот оказался тут и смотрю мой комент)
@bmx9231
@bmx9231 Жыл бұрын
@@Miiazzma с С++ выгорание это норма хаха
@lolipoppapipop4458
@lolipoppapipop4458 3 жыл бұрын
А зачем в этом уроке надо было подключать библиотеку: string на 2 стр
@mathewbal3990
@mathewbal3990 3 жыл бұрын
просто так
@user-fl6jp7zq2i
@user-fl6jp7zq2i 2 жыл бұрын
В данном уроке библиотека string не нужна, видимо, осталась с предыдущих уроков. Тут только iostream нужен.
@vladimirdiadichev6140
@vladimirdiadichev6140 7 жыл бұрын
Спасибо
@gagikarakelyan6014
@gagikarakelyan6014 4 жыл бұрын
Спасибо!
@user-kb6qd8rg4g
@user-kb6qd8rg4g 4 жыл бұрын
спасибо
@lexcarpenter69
@lexcarpenter69 3 жыл бұрын
Спасибо!
Sprinting with More and More Money
00:29
MrBeast
Рет қаралды 190 МЛН
3 wheeler new bike fitting
00:19
Ruhul Shorts
Рет қаралды 48 МЛН
Трубка ПГУ производство.
12:46
AUTODETALnet
Рет қаралды 521
Sprinting with More and More Money
00:29
MrBeast
Рет қаралды 190 МЛН