11. CS50 на русском: Лекция #11 [Гарвард, Основы программирования, осень 2015 год]

Доп. материалы и задачи к лекции —
https://javarush.com/s/level_5
Весь курс CS50 — https://javarush.com/s/course_cs50

Гарвард CS50, 11 лекция: перестаем бояться указателей и работаем с памятью

Работа с памятью и указателями, пожалуй, — один из самых сложных моментов CS50. Даже опытные программисты часто ошибаются и заваливают систему из-за утечек памяти, чего уж тут говорить о новичках. Но нам повезло: CS50 — отличный курс, поэтому нам нечего бояться. В 11 лекции мы кое-что изучим, а кое-что повторим вот о чем:

• Почему не стоит ждать ничего хорошего от разыменовывания «мусорных» значений или недействующих указателей.
• scanf(“%i”, &x) — что значит & в этой записи
• char* и string — что между ними общего?
• Как правильно выделять память, чтобы не было ошибки сегментации
• Изучаем работу с памятью на примере функций библиотеки CS50 и… постепенно отказываемся от неё, как от ходунков.
• Valgrind – мощный инструмент для поиска утечек памяти, начинаем с ним работать.
• Связные списки Linkedlist в Си: как с ними работать, чем они лучше массивов, а чем — хуже.
• Что общего у стека и стопки подносов в столовой?