Step 5 (S-7031)

From Stepik Wiki
Jump to: navigation, search

Step on Stepik: https://stepik.org/lesson/542/step/5

Step 5 (S-7031) 1.png

[00:00 - 00:19] давайте обсудим как работает выделение памяти например для того чтобы указать размер который занимает какой нибудь мы будем использовать оператор советов и то приказ приказ который от типа или по выражению насчет количества будет которая занимает конкретных значений


[00:19 - 00:38] 1 строчки примера мы используем функцию молох для определения динамического массива размера тысяч винтов даже посчитать размер памяти которой нам потребуется для хранения это просто умножим количество элементов на размер


[00:38 - 00:53] 1 элемента в данном случае для указания размеров значение типа int мы будем использовать функционал возвращает указатель типовой звездочка для того чтобы


Step 5 (S-7031) 2.png

[00:53 - 01:10] привести этот указатель к указателю на эту кнопку воспользуемся оператором привидение после того как этот код выполнится мы можем использовать указатель как массив представить некоторые значения каким 1000


[01:10 - 01:25] а в 3 строчке мы видим использование отбирать функционал для изменения размера массива показателям указывал на массив размера тысяч


Step 5 (S-7031) 3.png

[01:25 - 01:44] при помощи функции можно увеличить размер массива до 2000 элементов размера собственно для этого мы передадим туда указательным и новый размер точно также вычисли его как количество элементов на размерах


Step 5 (S-7031) 4.png

Step 5 (S-7031) 5.png

[01:44 - 02:00] соответственно функционал пытаются увеличить размер области не двигаю то есть в том случае если сразу же после области на которую указывает указатель находится


[02:00 - 02:18] пустое место тогда можно расширить эту если не получится то есть после м занята тогда распорядок создаст новую область для хранения 2000 футов и 1 1000 скопировать


Step 5 (S-7031) 6.png

[02:18 - 02:35] и с массивами соответственно то область которую занимал магазин потом освободил точно также мы используем оператор приведения для того чтобы привести зачем отношении функционал указательный


Step 5 (S-7031) 7.png

[02:35 - 02:50] 4 строчки мы используем функцию free для освобождения памяти на который указывает то что нам не нужно приводить м к его звездочки потому что это


Step 5 (S-7031) 8.png

[02:50 - 03:08] преобразование происходит автоматически 2 важно отметить что после вызова free time указателю то есть по указателям уже нельзя обращаться то так как он указывает на то вы ставите который не пробежит наш программе множество бородина


[03:08 - 03:22] соответственно если вы пытались обратиться то это будет как он тоже следующей строчке используется оператор колодка специально для выделения


Step 5 (S-7031) 9.png

[03:22 - 03:40] памяти под массивы которые кроме того что выдирает в предыдущих 2 выделения памяти функции malloc и налог который выделялся на блондин с резервной поэтому там могли быть произвольные значения


Step 5 (S-7031) 10.png

[03:40 - 03:57] для китов а после вызова функции колоть нам гарантировать что вы принесли за рулем соответственно конце колоны выделить массив из 3000 элементов размера и и всех зовет 0


Step 5 (S-7031) 11.png

[03:57 - 04:15] на предпоследней строчке мы видим опять освобождения массива n ну и как признак хорошего кода после этого еще переменные для того чтобы показать что


Step 5 (S-7031) 12.png

[04:15 - 04:27] указателем не указывает на какую то область памяти чтобы можно было это проверить например при помощи холода


Step 5 (S-7031) 13.png