>> David J. Malan: Taigi paaiškėja, kad Kopijuojant eilutę yra toli gražu ne taip
paprasta, kaip kopijavimo primityvus, kaip int ar plūdės.
Galų gale, po kapotu eilutė yra sekos simbolių.
Taigi kopijuoti eilutę, todėl turi įtraukti kopijavimo kad visą seką
simbolių.
>> Leiskite savo ruožtu mūsų dėmesį į tai paskutinis įgyvendinimas ir išplėšti tai
linija, styginių t lygu s, kurios aiškiai nepakako.
Tegul jį pakeisti eilutę, atrodo, vietoj to, kaip šis.
Styginių t gauna malloc stygų ilgį s ir 1 kartų iš char dydis.
>> Dabar yra citata šiek tiek vyksta dėl šio kodo eilutę.
Pirma, malloc, trumpas atmintis paskirstymą ir
funkcija veikia tik tai.
Atsižvelgiant į tai, sveikasis skaičius, jis grįžta į jus ir adresas iš atminties riekė
kad daugelis baitai.
Tuo tarpu eilutės ilgis s plius 1 yra skirtas nurodyti, kad mes norime, kaip
daug baitų pat s, jau užima, įskaitant null terminatorius,
Backslash 0 prie eilutės pabaigos.
>> Tuo tarpu, aš nebūtinai prisiminti kaip didelis char yra, net
nors daugumoje sistemų tai tiesiog 1 baitų, todėl aš skambinti dydį char į
išsiaiškinti, dinamiškai, kaip didelis individualių savybių yra.
Kai padauginta kartu, aš grįšiu bendras baitų skaičius, kad man reikia.
>> Bet kas, jei malloc nepavyksta grįžti atmintį turime?
Aš geriausia patikrinti, kad taip.
Jei t lygu nuliui, tada aš pirmą kartą vyksta nemokamų s, atmintis grįžo GET
eilutę, ir tada aš ruošiuosi grįžti 1, reikšti klaidą.
>> Bet jei viskas yra gerai, aš ruošiuosi pradėti naudoti keturis linijos ir pakartoti
taip.
Dėl int gaunu 0, n lygu string ilgis s.
Aš ruošiuosi tai padaryti tol, kol i mažesnis arba lygus n, kad aš
kartoti iki per imtinai null pabaigos simbolis s.
>> Ir kiekvienos iteracijos, aš ketina prieaugio i.
Tuo tarpu viduje šios linijos, kopijuoti s "i-osios simbolis" T "i-osios
vieta, pakanka padaryti k laikiklis i gauna us laikiklis i.
>> Leiskite dabar įrašyti, kaupti ir paleisti šią naują programą.
Padaryti kopiją 1 taškas velniop kopiją 1.
Ir aš pasakyti kažką panašaus Apie visose mažosiomis raidėmis.
Ir laimei, šį kartą mano originalas lieka nepakitusi.
Apie visose mažosiomis raidėmis.
Bet kopija yra, iš tikrųjų, kapitalizuojamos.