DAVID J. MALAN: Niin käy ilmi, että kopiointi merkkijono ei ole läheskään niin vain kopioida primitiivinen, kuten int tai float. Onhan alla huppu merkkijono on sekvenssi merkkiä. Joten kopiointi merkkijono, on sen vuoksi liittyy kopiointi että koko sekvenssi merkkiä. Katsotaanpa kääntää huomion takaisin, että viime täytäntöönpanon ja repimään tämän line, nuora t on s, joka selvästikään ollut riittävä. Katsotaanpa korvata sen linjan, että näyttää sen sijaan, kuten tämä. String t saa malloc merkkijonon pituuden s plus 1 kertaa koko char. Nyt on lainaus vähän menee on tämän linjan koodia. Ensinnäkin malloc, lyhyt muisti jakaminen, ja toiminto tekee juuri sen. Annetaan kokonaisluku, se palaa teille osoite kimpale muisti että monet tavua. Samaan aikaan merkkijonon pituus s plus 1 on tarkoitus osoittaa, että haluamme kuin monta tavua kuin s on jo nyt, mukaan lukien sen null terminaattori, kenoviivan 0 lopussa merkkijono. Samaan aikaan, en välttämättä muista, kuinka iso merkki on, vaikka vaikka useimmissa järjestelmissä se on yksinkertaisesti 1 tavu, joten soitan koko char selvittää dynaamisesti kuinka suuri yksilöllisyyttä. Kun kerrotaan yhdessä, palaan tavujen kokonaismäärä että tarvitsen. Mutta entä jos malloc ei palauttaa muistiin tarvitsemme? Olisin parasta tarkistaa, että seuraavat. Jos t on null, niin olen ensimmäisenä menossa vapaaseen s, muisti palautetaan get merkkijono, ja sitten aion palata 1, merkitsevän virhe. Mutta jos kaikki on hyvin, aion jatkaa käyttää neljän silmukan ja kerrata seuraavasti. Int saan 0, n on merkkijonon pituus s. Aion tehdä tätä niin kauan kuin i on pienempi tai yhtä suuri kuin n, jotta voin kerrata läpi ja myös null päättyvät merkki s. Ja jokaisen iteraation, olen menossa kasvattaa i. Samaan aikaan sisällä tämän silmukan, kopioida s: n i: nnen merkin T: n i: nnen sijainti, riittää tekemään t kiinnike i saa s kiinnike i. Olin paras lisätä yhden linja minun koodi. Erityisesti koska olen nyt käyttäen malloc, pyytävät muistia, se on minun velvollisuus vapauttaa että muisti kun olen tehnyt sen kanssa, aivan kuten me Olisi muistin vapauttaminen, joka on antanut meille get merkkijono. Joten aivan lopussa tämän ohjelman, olen menossa lisätä yhden rivin vapauttaa t ennen paluutaan 0 osoittaa onnistumisen. Katsotaanpa nyt tallentaa, kääntää ja suorittaa tämän uuden ohjelman. Tehdä kopio 1 dot slash 1 kappale. Ja sanon jotain Hei kaikki pieniä. Ja onneksi tällä kertaa minun alkuperäinen pysyy ennallaan. Hei kaikki pieniä. Mutta kopio on todellakin aktivoitu.