Девід Дж. Малан: Ось і виходить, що копіювання рядка, не так просто, як копіювання примітивний, як Int або поплавком. Зрештою, під капотом рядком є символів послідовності. Так копіювання рядка, тому, повинен залучати копіювання, що всю послідовність символів. Давайте звернемо увагу на тому, що в минулому впровадження і вирвати цей лінія, рядок т дорівнює с, що явно не була достатньою. Давайте замінимо його з лінією, яка виглядає, а не, як це. Рядок т отримує Танос довжини рядки з S Plus 1 раз розміром з гольца. Тепер є цитата трохи збирається в цьому рядку коду. По-перше, Танос, короткі для пам'яті виділення і Функція робить саме це. Дано ціле число, то повертається до вас у адреса шматок пам'яті що багато байт. Тим часом, довжина рядки з 1 плюс покликана підкреслити, що ми хочемо, як кількість байт з уже займає, в тому числі його нульове закінчення, зворотний слеш 0 в кінці рядка. Тим часом, я не обов'язково пам'ятати наскільки великий символ є, навіть хоча в більшості систем це просто 1 байт, так що я буду називати розмір гольца в з'ясувати, динамічно, наскільки велика індивідуальний характер. Після помножене разом, я повернуся Загальне число байтів, що мені потрібно. Але що, якщо Танос не в змозі повернути пам'ять ми повинні? Я б краще перевірити, що в наступному. Якщо т дорівнює нулю, то я спочатку збирався звільнити з, пам'ять, що повертається Get рядок, а потім я збираюся повертає 1, щоб показати помилку. Але якщо все добре, я збираюся продовжити використовувати чотири петлі і ітерації таким чином. Для внутр я отримую 0, п рівних довжина рядка с. Я збираюся зробити це до тих пір, як я це менше або дорівнює п так, щоб я ітерації через включно нуль завершальний знак в с. І на кожній ітерації, я збирається збільшити I. Тим часом, всередині цієї петлі, копіювання и I-ий символ в г-го T, розташування, достатньо, щоб зробити т Кронштейн я отримує и кронштейн я. Я б краще додати один додатковий лінія для мого коду. Зокрема, тому, що я в даний час використовують Танос, просячи пам'яті, це моя відповідальність, щоб звільнити цю пам'ять коли я закінчу з цим, як ми слід звільнення пам'яті це дано нам взяти мотузку. Так в самому кінці цієї програми, я збирається додати ще одну лінію звільнити т, перш ніж повернутися 0 у випадку успіху. Давайте тепер зберегти, скомпілювати і запустити цю нову програму. Зробити копію 1 точка слеш копію 1. І я скажу щось на зразок привіт в нижньому регістрі. І на щастя, на цей раз мій Оригінальний залишається незмінною. привіт в нижньому регістрі. Але копія, дійсно, капіталізуються.