David J. MALAN: Így kiderül, hogy a másolás karakterlánc közel sem olyan egyszerű másolás a primitív, mint egy int vagy float. Végül is, a motorháztető alatt egy sor egy sorozat karakter. Tehát másolása egy string, ezért meg kell magában másolás az egész sorozata karaktereket. Nézzük viszont a figyelmet vissza a utolsó végrehajtási és dobja ki ezt a vonal, string t egyenlő s, ami nyilvánvalóan nem volt elegendő. Nézzük cserélje ki a sort, amely úgy néz ki, hanem, mint ez. Karakterlánc t kap malloc string hossza s plusz 1-szer akkora, mint egy char. Most van idézet egy kicsit lesz az ebben a sorban a kódot. Először is, malloc, rövid memória elosztását, valamint a funkció pontosan ezt teszi. Mivel egy egész számot, visszatér, hogy ha a címét egy darab memória hogy hány bájt. Eközben a húr hossza s plusz 1 célja, hogy azt jelzi, hogy szeretnénk, mint hány bájt, mint s már foglal, beleértve a null terminátor, a backslash 0 a végén a húr. Közben én nem feltétlenül emlékszik milyen nagy karakter van még bár a legtöbb rendszeren ez csak 1 byte, ezért hívom mérete char a kitalálni, dinamikusan, milyen nagy egyéni jellege van. Egyszer szorozva együtt kapok vissza bájtok számát, amire szükségem van. De mi van, ha malloc nem vissza a memória van szükségünk? Én a legjobb ellenőrizze, hogy az alábbiak szerint. Ha t értéke null, akkor én először megyek a szabad s, a memória által visszaadott get húr, aztán megyek vissza 1, jelezve a hibát. De ha minden rendben van, megyek, hogy folytassa egy négy hurkot, majd annak variációi a következők szerint. Az int kapok 0, n értéke a húr hossza s. Fogom csinálni, amíg én is kevesebb vagy egyenlő, mint az n, így én ismételget egészen beleértve a null lezáró karakter s. És minden egyes iterációban vagyok fog növekmény i. Közben belül erre a ciklusra, másolás s i-edik karaktert t i-edik helyet, elegendő, hogy nem t konzol i kap s konzol i. Én a legjobban hozzá egy további sort a kódot. Különösen azért, mert én most már malloc, kérve a memória, ez az én felelőssége, hogy szabadítson fel, hogy a memória amikor végeztem vele, mint mi kell, memória felszabadítása, ez adott nekünk A string. Így a legvégén a program, én vagyok majd adjunk hozzá egy további sort szabad t visszatérés előtt 0 jelzi sikert. Nézzük most menteni, fordítási és futtatni az új program. Legyen másolatot 1 pont slash példány 1. És mondok valamit, mint helló minden kisbetűvel. És szerencsére, ez alkalommal a eredeti változatlan marad. helló minden kisbetűvel. De a másolat, sőt, aktivált.