DAVID J. Malan: Tātad izrādās, ka kopēšana virkni ne tuvu nav tik vienkārši, kā kopējot primitīvi, piemēram, int vai apgrozāmos līdzekļus. Galu galā, zem pārsega string ir secība rakstzīmes. Tāpēc kopēšana virkni, tāpēc ir iesaistīt kopēšana ka visu secību rakstzīmes. Pieņemsim savukārt mūsu uzmanību atpakaļ, ka Pēdējā īstenošanu un izplēst tas line, string t vienāds s, kas acīmredzami nebija pietiekams. Pieņemsim aizvietot to ar līniju, kas izskatās, nevis, kā šis. Stīgu t izpaužas malloc stīgu garumu s plus 1 reizes izmērs char. Tagad tur ir citāts mazliet iet par šo koda rindu. Pirmkārt, malloc, īstermiņa atmiņa sadalījumu, un funkcija dara tikai to. Dots vesels skaitlis, tas atgriežas pie jums ar adrese rieciens atmiņas ka daudzi baiti. Tikmēr virknes garums s plus 1 ir domāts, lai norādītu, ka mēs vēlamies, kā daudzi baiti kā jau tā atradās, tostarp tās null terminatora slīpsvītru 0 beigās virknes. Tajā pašā laikā, es ne vienmēr atcerēties cik liels simbols ir pat lai gan lielākajā daļā sistēmas, tas ir vienkārši 1 baitu, tāpēc es aicinu lielumu char uz izdomāt dinamiski, cik liels individuāls raksturs ir. Pēc tam, kad reizina kopā, es saņemt atpakaļ Kopējais baitu skaits, kas man ir nepieciešams. Bet ko tad, ja malloc neizdodas atgriezties atmiņu mums vajag? Es gribētu vislabāk pārbaudīt, ka šādi. Ja t vienāds null, tad es esmu pirmo reizi gatavojas uz bezmaksas s, atmiņas atpakaļ ar get stīgu, un tad es esmu gatavojas atgriezties 1, neizsaka kļūda. Bet, ja viss ir labi, es esmu gatavojas turpināt izmantot četrus cilpu un atkārtot šādi. Par int man 0, n vienāds virknes garums s. Es esmu gatavojas darīt to tik ilgi, kamēr man ir ir mazāks par vai vienāds ar n, lai es atkārtot, līdz ar to ieskaitot null terminējošais raksturs s. Un katrā atkārtojumā, es esmu dodas uz pieauguma i. Tikmēr iekšpusē šīs cilpas, kopēt s ir i-tā raksturs uz t i-th vietu, pietiek darīt t kronšteins i izpaužas s kronšteinu i. Man vislabāk pievienot vēl vienu papildu līnija manu kodu. Jo īpaši tāpēc, ka es esmu tagad, izmantojot malloc, lūdzot atmiņu, tā ir mana atbildība, lai atbrīvotu šo atmiņu kad es esmu darīts ar to, tāpat kā mēs Būtu atbrīvojot atmiņu, kas ir dota mums, ko get virkni. Tāpēc pašās beigās šo programmu, es esmu gatavojas pievienot vienu papildu līniju bezmaksas t pirms atgriešanās 0, kas norāda panākumus. Pieņemsim tagad glābt, apkopo un palaist šo jauno programmu. Padarīt kopiju 1 punkts slash eksemplāru 1. Un es saku kaut ko līdzīgu sveiki visās mazos. Un par laimi, šoreiz mans oriģināls paliek nemainīgs. sveiki visās mazos. Bet kopija ir patiešām kapitalizēti.