>> DAVID J. Malan: Tako se izkaže, da kopiranje niz še zdaleč ni tako
enostavno, kot kopiranje primitivno, kot int ali float.
Konec koncev, pod pokrovom niz je zaporedje znakov.
Torej kopiranje niz, zato mora gre za kopiranje, da celotno zaporedje
znake.
>> Obrnimo našo pozornost nazaj, da zadnja izvajanje in iztrgati to
vrstica, niz t enaka s, ki očitno ni bilo dovolj.
Dajmo ga nadomestiti z linijo, ki Izgleda, namesto da bi, kot je ta.
String t dobi malloc dolžine niza s in 1-krat velikosti char.
>> Zdaj je citat malo dogaja v tej vrstici kode.
Prvič, malloc, okrajšava za spomin dodeljevanje in
Funkcija ne samo to.
Glede na število, se vrne v vas, v naslov kos spomin
da je veliko bajti.
Medtem, dolžina niz s plus 1 je mišljeno, da pokaže, da želimo kot
veliko zlogov, kot je že zasedeno vključno z njegovim null terminator,
nagibnica 0 na koncu niza.
>> Medtem, mi ni nujno, da se spomniš kako velik je znak, čeprav
čeprav je na večini sistemov je preprosto 1 bajt, tako da bom poklical velikosti char na
ugotovimo, dinamično, kako velik individualne narave je.
Ko pomnoženo skupaj, pridem nazaj skupno število bajtov, ki sem jih.
>> Toda kaj, če malloc ne vrnil spomin, ki jo potrebujemo?
Jaz bi najbolje preveriti, da je, kot sledi.
Če je t enak nič, potem pa sem jih prej do brezplačnih s, spomin, ki ga dobil vrnjeno
niz, nato pa bom vrne 1, da se označi napake.
>> Ampak, če je vse v redu, bom nadaljevati uporabiti štiri zanke in Ponovil
takole.
Za notr dobim 0, n enak Dolžina niz s.
Jaz bom to storil tako dolgo, kot sem je manj kot ali enako n, tako da sem
ponovitev skozi vključno null zaključni znak v s.
>> In na vsaki ponovitvi, sem bo prirastek i.
Medtem, znotraj te zanke, kopirati i je i-ti znak v T i-th
mesto, je dovolj, da storijo t Nosilec i dobi ov nosilec i.
>> Pojdimo zdaj rešiti, sestaviti in zagon tega novega programa.
Naredite kopijo 1 pika slash izvod 1.
In jaz bom rekel nekaj takega kot Pozdravljeni v vseh malimi črkami.
In na srečo, tokrat moj Prvotni ostaja nespremenjen.
Pozdravljeni v vseh malimi črkami.
Ampak kopija je dejansko veliko začetnico.