>> David J. Malan: Tako ispada da je kopiranje niz nije gotovo kao
jednostavan kao kopiranje primitivni, poput int ili float.
Uostalom, ispod haube string je niz znakova.
Dakle kopiranje niz, dakle, mora uključuje kopiranje taj cijeli niz
likovi.
>> Okrenimo našu pozornost na to Posljednji provedba i potegnuti to
linija, string t jednaka S, koji očito nije bilo dovoljno.
Idemo ga zamijeniti s linije koja izgleda, umjesto da, kao što je ovaj.
String t dobiva malloc duljine niza S plus 1 puta veličine znakom.
>> Sada postoji citat malo ide na u ovom linija koda.
Prvo, malloc, kratko za memoriju raspodjela te
funkcija ne samo to.
S obzirom na broj, vraća se na vas adresa komad spomen
da mnogi bajtova.
U međuvremenu, duljine od s. plus 1 je značilo da ukazuju na to da želimo što
mnogi bajtova što je već zauzima, uključujući njegovu null terminator,
backslash 0 na kraju niza.
>> U međuvremenu, mi nužno ne sjećam koliko je velika char je, čak i
iako je na većini sustava je jednostavno 1 Bajt, pa ću nazvati veličinu crnila na
shvatiti dinamički koliko je velika Pojedinac je lik.
Nakon množi zajedno, ja se vratim Ukupan broj bajtova koji mi treba.
>> No, što ako malloc ne vratiti sjećanje mi je potrebno?
Ja bih najbolje provjeriti na sljedeći način.
Ako je t jednako nula, tada sam prvi put idem slobodnih s, memorija vraća get
string, a zatim ću povratak 1, da označi pogrešku.
>> Ali, ako je sve u redu, ja ću nastaviti koristiti četiri petlju i ponoviti
kako slijedi.
Za int ja dobiti 0, n = duljine od s..
Ja ću to učiniti dok sam se manji od ili jednak N, tako da sam
ponoviti kroz te uključujući null završni lik u sekundi.
>> I na svakoj iteraciji, ja sam ide ja prirast.
U međuvremenu, unutar ove petlje, kopirati s je i-ti lik u T I-og
mjesto, dovoljno je napraviti t Nosač i dobiva e nosač sam.
>> Idemo sada spasiti, sastaviti i pokrenuti ovaj novi program.
Napravite kopija 1 točka kose crte primjerak jedne.
I ja ću reći nešto poput: Pozdrav u svim malim slovima.
I srećom, ovaj put my Izvorni ostaje nepromijenjena.
Pozdrav u svim malim slovima.
No, primjerak je, doista, kapitaliziraju.