>> DAVID J. Malan: Felly, mae'n ymddangos bod Nid yw copïo llinyn bron mor
syml fel copïo yn cyntefig, fel int neu fflôt.
Wedi'r cyfan, o dan y cwfl llinyn yn gymeriadau dilyniant.
Felly, copïo llinyn, felly, yn gorfod yn golygu copïo y dilyniant cyfan o
cymeriadau.
>> Gadewch i ni droi ein sylw yn ôl at y gweithredu diwethaf ac RIP i maes hon
llinell, t llinyn hafal, sy'n amlwg, nid oedd yn ddigonol.
Gadewch i ni ddisodli gyda llinell sy'n edrych, yn lle hynny, fel hyn.
Llinynnol t yn cael malloc hyd cyfres o s ac 1 gwaith maint golosg.
>> Nawr mae dyfyniad ychydig yn mynd ymlaen yn y llinell hon o god.
Yn gyntaf, malloc, byr ar gyfer cof dyrannu, ac mae'r
swyddogaeth yn gwneud hynny.
O ystyried cyfanrif, mae'n dychwelyd i chi cyfeiriad darn o cof am
bod llawer o bytes.
Yn y cyfamser, mae hyd cyfres o s ac 1 i fod i ddangos ein bod yn am i gymaint
llawer o bytes fel s eisoes yn meddiannu, gan gynnwys ei terminator null, y
slaes 0 ar ddiwedd y llinyn.
>> Yn y cyfamser, nid wyf o reidrwydd yn cofio pa mor fawr golosg yw, hyd yn oed
er bod ar y rhan fwyaf o systemau, mae'n syml 1 byte, felly byddaf yn galw maint y torgoch i
chyfrif i maes ddeinamig pa mor fawr cymeriad unigol.
Unwaith lluosi â'i gilydd, yr wyf yn mynd yn ôl y cyfanswm nifer y bytes sydd ei angen arnaf.
>> Ond beth os malloc yn methu â dychwelyd y cof ei angen arnom?
Byddwn yn gwirio orau ar gyfer hynny fel a ganlyn.
Os t hafal null, yna rwyf i'n mynd yn gyntaf i am ddim, y cof a ddychwelwyd gan get
llinyn, ac wedyn dw i'n mynd i dychwelyd 1, i ddynodi gwall.
>> Ond os yw popeth yn iawn, dwi'n mynd i symud ymlaen i ddefnyddio pedwar dolen ac ailadrodd
fel a ganlyn.
Ar gyfer int fi gael 0, n gyfartal hyd cyfres o s.
Rydw i'n mynd i wneud hyn ar yr amod fel fi yn llai na neu'n hafal i n er mwyn i mi
ailadrodd i fyny trwy'r ac yn cynnwys y cymeriad terfynu null mewn s.
>> Ac ar bob fersiwn, rwy'n mynd i gynyddiad i.
Yn y cyfamser, tu mewn dolen hwn, copi s yn i-fed gymeriad i mewn i t yn i-fed
lleoliad, mae'n suffices i wneud t braced i cael s braced i.
>> Gadewch i ni yn awr yn arbed, crynhoi, a redeg y rhaglen newydd.
Gwneud copi copi 1 dot slaes 1.
A byddaf yn dweud rhywbeth fel helo ym mhob llythrennau bach.
, A diolch byth, y tro hwn mae fy gwreiddiol yn parhau i fod yr un fath.
helo ym mhob llythrennau bach.
Ond mae'r copi, yn wir, eu cyfalafu.