>> DAVID J. Malan: Do rezultas ke kopiado ŝnuro ne estas preskaŭ tiel
simpla kopiado primitiva, kiel int aŭ kaleŝego.
Post ĉio, sub la kapuĉo ŝnureto estas vico gravuloj.
Do kopiado ĉenon, do, devas engaĝi kopiado ke tuta sinsekvo de
karakteroj.
>> Ni turnu nian atenton reen al tiu lasta efektivigo kaj disfendos tiun
linio, ŝnuro t egalas s, kiu klare ne estis sufiĉaj.
Ni anstataŭigi ĝin per linio, kiu aspektas, male, kiel ĉi tio.
String t gets malloc de korda longeco de s plus 1 fojojn la grando de tipo char.
>> Nun tie estas citaĵo iomete irante sur ĉi tiu linio de kodo.
Unue, malloc, mallongigo de la memoro atribuo, kaj la
funkcio faras ĝuste tion.
Donita entjero, ĝi revenas al vi la adreso de eron de memoro de
ke multajn bitojn.
Dume, la kordo longo de s plus 1 estas intencita indiki ke ni volas kiel
multaj bitokoj kiel s jam okupas, inkluzive ĝia nula finilo, la
backslash 0 je la fino de ŝnuro.
>> Dume, mi ne nepre memori kiom granda estas char estas, eĉ
kvankam en plej multaj sistemoj ĝi estas simple 1 bajto, do mi nomas grandecon de char al
elkompreni dinamike kiom granda individua karaktero estas.
Iam multiplikitaj kune, mi reiros al la totala nombro de bitokoj, ke mi bezonas.
>> Sed kion se malloc malsukcesas redoni la memoro ni bezonas?
Mi deziras bonan kontroli por ke kiel sekvas.
Se t egalas null, tiam mi unue iri por liberaj s, la memoro revenis por get
kordo, kaj tiam mi iros al revenu 1, por signifi eraro.
>> Sed se ĉiuj estas bone, mi tuj pluiri uzi kvar loop kaj persisti
kiel sekvas.
Por int i get 0, n egaluloj la arĉa longo de s.
Mi tuj faros ĉi tiom longe kiom mi estas malpli ol aŭ egala al n tiel ke mi
persisti supren tra inkluzivas la nula finanta karaktero en s.
>> Kaj je ĉiu ripeto, mi estas tuj pliigo i.
Dume, ene de ĉi maŝo, kopii s la i-a karaktero en T i-a
situo, tio sufiĉas al fari t krampo i gets s krampo i.
>> Ni nun savu, kompili, kaj kuri tiu nova programo.
Faru kopion 1 dot oblikvo kopion 1.
Kaj mi diras ion kiel saluton en ĉiuj minuskle.
Kaj dankeme, ĉifoje mia originalo restas neŝanĝita.
saluton en ĉiuj minuskle.
Sed la kopio estas, ja, majuskle.