>> 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.
>> 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.