Step 4 (S-7029)

From Stepik Wiki
Jump to: navigation, search

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

Step 4 (S-7029) 1.png

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


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


[00:35 - 00:50] во 2 тот указатель который возвращает из молок он указывает не на самое начало области памяти немножко правее начал в самом начале этой области хранятся


[00:50 - 01:06] а служебной да например хранится размер этой области поэтому например функция free которые используются для освобождения памяти не передавайте только указать ему не придется размер


[01:06 - 01:24] функция калуг похожа на функции malloc но используется для определения массиве если функционал выделяет массив из такого количества элементов размера


[01:24 - 01:40] при этом все данные инициализируются 0 в этом значительно отличается функции malloc подфункции колобок молога не интересуют можно посчитать сколько байт выделится и колок то есть


[01:40 - 01:59] раз это массив из n элементов размера size to вытереть вот столько but точнее немножко больше округление до 16 во 2 выдели все еще место под служебные данные который станет размерам


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


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


[02:34 - 02:49] того чтобы придать 3 как я уже сказал используется для освобождения памяти то есть если вы будете в некоторых сегментах вы использовали его и больше нам не нужен то его можно освободить соответственно количество используемой памяти


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


[03:07 - 03:27] указатель который надо увеличить и в том случае если получилось увеличить его на месте она возвращает его если не получилось 2 на соответственно делает копию все копировать туда потом освобождать то показатели которые передали и возвращать нам ну вот в любом случае 1 из этих


[03:27 - 03:36] показатель как разгонять до тоже можно передать функцию при освобождении понять