>> [CERDDORIAETH THEMA]
>> SIARADWR 1: Helo, bawb.
Croeso'n ôl i'r adran.
Diwrnod Lovely out-- a dyna pam, rwy'n yn sicr, nid oes dim ond pedwar o chi fan hyn
ac nid yw ein pecyn arferol.
Rwyf wedi bod yn sâl y penwythnos hwn.
Felly, nid oes gennyf Starburst ar eich guys.
Ac efallai y byddaf yn dechrau peswch ofnadwy trwy gydol hyn.
Felly, dim ond yn amyneddgar gyda mi.
Rydw i'n mynd i roi cynnig ar 'n sylweddol a chael drwy hyn yn gyntaf,
fodd bynnag, cyn i mi gael trawiad pesychu.
Ond dim ond fod yn hawdd ar mi a Ychydig bit-- dyna i gyd wyf yn gofyn.
>> Felly mae ein hagenda ar gyfer today-- unig reminder-- eich cwis yn yr wythnos nesaf.
Dywedais wrthych yr wythnos diwethaf, felly mae'n Ni fyddai yn eich dal oddi ar wyliadwrus.
Felly, dw i'n eich atgoffa eto.
Eich cwis yr wythnos nesaf.
I'r perwyl hwnnw, yr wythnos nesaf Bydd yr adran yn llawer mwy
o- n annhymerus 'brofi a gwaith mewn rhai adolygiad.
Felly os allech chi guys fy helpu allan drwy anfon i mi
pethau eich bod yn gyfforddus gyda, eich bod yn poeni am,
pynciau yr hoffech i mi i dalu, byddwn hynny'n wych.
Felly, gallaf geisio eu gweithio i mewn i'n adran yr wythnos nesaf
neu anfonwch deunydd ychwanegol neu prep i chi efallai nad ydych yn ei gael mewn mannau eraill.
>> Yeah!
Mae mwy o bobl yn dod!
Roeddwn i'n meddwl, wnes i fod yn wael ddiwethaf wythnos, nad oes unrhyw un eisiau i ddod yn ôl?
Gen i ofn.
Felly y tri pheth arall ein bod ni'n mynd i fynd dros
yn ailgyfeirio, ffeil I / O, ac Yna, awgrymiadau a chof deinamig.
Rwy'n siŵr eich bod i gyd super gyffrous am pointers-- hoff bwnc pawb,
mor syml i'w ddeall.
Rwy'n siŵr eich bod guys i gyd got hynny, dde?
>> Pethau fel cyntaf yn gyntaf, redirection-- mae hyn yn y bôn yn unig yn ffordd
i reoli mewnbwn sut yr ydych yn pethau i mewn i'ch rhaglen,
sut yr ydych pethau allbwn gan eich rhaglen.
Y brif ffordd yr ydych yn guys wedi bod yn rhyngweithio ag ef
yn unig trwy allan safonol gyda eich sgrîn print yma.
Ond mae yna ffyrdd o pipe-- fel y gwelwn yma
yn un o'n math words-- o bibell y wybodaeth
neu ddata hynny i mewn i ffeil o ffeil.
Dim ond gwahanol ffyrdd o cael pethau i mewn i'ch rhaglen
ac allan o'ch rhaglen, yn hytrach na dim ond eu hargraffu i'r sgrin hon
neu mewnbynnu pethau o'r llinell orchymyn.
>> Felly un cyntaf oes fawr fwy na caret.
Felly output-- 'i jyst yn argraffu'r cynnyrch i ffeil yn lle eich sgrin.
Felly, os ydych wedi cael rhywbeth a argraffwyd "Helo, byd!" i'r sgrin,
os byddwch yn ei roi yn lle hynny i output.text, bod
creu ffeil o'r enw hwn output.text.
A phan fyddwch yn agor, mae'n annhymerus yn dweud "Helo, byd!" i mewn 'na.
Gall hyn fod yn ddefnyddiol super os oes gennych tunnell o wallau
mewn gwirionedd, fel y gwelwn yn y un.
Os byddwch yn gwneud dau caret, mae'n annhymerus argraffwch y negeseuon gwall.
>> Felly, os ydych yn cael problem gyda o gasglu, mae ganddi lawer o wallau
ac rydych yn cael ein llethu gan geisio i sgrolio drwy'r yn eich llinell orchymyn
drwy bob nhw, gallwch dim ond eu argraffu i ffeil,
agor y ffeil er mwyn i chi Gall sgrolio drwyddynt yn haws.
Fi 'n weithredol a ddefnyddir fod yn lot pan oeddwn yn debugging
fy 181 psets gyfer dysgu peiriant.
Felly, gall fod yn super ddefnyddiol yn nes ymlaen.
Mae hefyd yn ddefnyddiol os oes gennych raglen hynny efallai yn creu llyfrgell
neu cynhyrchu rhywfaint set o llinynnau, ac rydych
angen iddynt fod yn gallu gweld bod mae wedi eu cynhyrchu yn iawn.
Mae hyn yn y ffordd o wneud hynny.
>> Felly, os ydych yn eu argraffu i ffeil, rydych Gellir eu harchwilio yn haws, dde?
Versus geisio sgrolio drwy eich llinell orchymyn.
Ac yna un peth i'w nodi yw bod gyda dim ond y mwyaf
na caret, os ydych yn ysgrifennu i ffeil sydd eisoes exists--
felly fel pe baem yn rhedeg hyn yn y cyntaf amser, rydym yn ei roi i output.text,
ac yna cawsom ail raglen bod hargraffu hyn fel rhaglen ddwy
a gwnaeth fwy nag i output.text, bydd yn trosysgrifo that-- felly
ysgrifennu dros beth oedd erioed yn y ffeil i ddechrau.
>> Felly, os ydych am i atodi i ffeil, fel y gwelwn yma,
'ch jyst yn gwneud dau yn fwy nag arwyddion.
A bydd yn atodi iddo.
Ni fydd yn ysgrifennu drosti.
Felly, os oes angen i redeg lluosog rhaglenni a math o chadw
golwg ar yr hyn pob un ohonynt yn dychwelyd i chi mewn ffeil,
mae hynny'n ffordd o wneud hynny.
Os nad ydych yn poeni beth sydd yn eich ffeil ac mae'n caniatáu i gael ei drosysgrifo,
gallwch ddefnyddio mwy nag un.
A yw hynny'n gwneud synnwyr i bawb?
>> GYNULLEIDFA: Fel dot slaes helo mwy nag allbwn dot testun, fel ddwywaith,
bydd yn jyst yn unig yn dangos ar allbwn dot destun ail adeg--
>> SIARADWR 1: Iawn.
Felly, byddai y bôn yn unig yn gyfan gwbl ysgrifennu dros beth oedd yno i ddechrau.
Os yw hyn yn ffeil yma, mae'r output.text eisoes
yn bodoli, yn y bôn beth bynnag yr ydych yn galw hynny eto gyda mwy sengl
nag y gallwch feddwl am y peth fel ei hoffi disodli y ffeil.
Fel pan fyddwch yn arbed Word dogfen a ydych yn arbed fel,
ac eich bod yn cadw yr un enw, a yn gyfan gwbl overwrites iddo--
mae hyn yn yr un math o beth.
Dylai unrhyw un gennych unrhyw gwestiynau ar jyst outputting i ffeil?
Awesome.
>> Felly mae'n amlwg, os ydych yn gwrthdroi'r arrow cyfeiriad, gall ei wneud mewnbwn.
Felly, pan fyddwch guys oedd fel Cesar neu Visioneer
a oedd gennych i gyfrannu rhywbeth, oedd gennych ymresymiad llinell orchymyn
sydd mewn gwirionedd yn mewnbwn iddo.
Mae hon yn ffordd arall i wneud hynny.
Felly, yn lle aros ar gyfer gorchymyn 'n barod,
fel pan fyddwch yn gofyn am eich neges yn Cesar neu Visioneer,
os oedd gennych ffeil testun bod gan eich neges,
fe allech chi jyst deipio i mewn i hynny.
>> Felly, os yw hyn yn debyg dot slaes Caesar 3 yn llai na thestun mewnbwn saeth, a oedd yn
yw eich neges, bod Byddai rhedeg jyst ddirwya.
Pan fydd eich rhaglen Cesar mewn gwirionedd gofyn am fewnbwn gan y defnyddiwr,
byddai'n barod oherwydd rydych wedi ei deipio yn y ffeil hon.
Dyna dim ond ffordd arall.
Dim ond gefn y output-- dim ond mewnbwn ar gyfer eich data.
>> Ac yna yr un olaf ei bibell.
Felly mae 'n bert oera hwn yn un o.
Oherwydd ei fod yn caniatáu i chi cymryd y allbwn o un
rhaglen ac yn ei roi fel mewnbwn i raglen arall.
Nid wyf yn gwybod os oes unrhyw un ohonoch chwarae gyda'r DECIPHer
a allai fod CS50 gael roddwyd i chi, ond byddai
caniatáu i chi gymryd rhywfaint o sampl ffeilio, teipiwch i mewn i'ch amgryptio,
ac yna oddi yno teipiwch hynny yn eich dadgriptio
i wneud yn siŵr ei fod yn troi allan yr un fath.
Felly mae'n fath o fel dolen tair-ffordd.
Ewch amdani.
>> GYNULLEIDFA: Os bydd rhaglen Mae mewnbynnau lluosog,
a oes ffordd i ddweud iddo pa fewnbwn i ddefnyddio'r ffeil testun neu mae'r allbwn ar gyfer?
>> SIARADWR 1: Mae ganddo mewnbynnau lluosog.
Beth bynnag ffeilio'ch input-- pan fydd 'i' yn gofyn am fewnbwn y tro cyntaf, 'i'
yn mynd i gymryd yn ganiataol, yr wyf yn meddwl, 'i' mynd i'r bibell yn y ffeil gyfan.
Felly, os oes gennych mewnbynnau lluosog, rydych yn yn mynd i gael eu pibellau mewn ffeiliau lluosog.
Felly, os ydych yn gofyn am negeseuon dair gwaith yn eich cod,
ydych yn mynd i gael ei roi mewn tair ffeil gwahanol.
Ac mae'n mynd crazy.
Ac ni ddylai rhaid i chi poeni am hynny ar hyn o bryd.
Ond dyna yw'r syniad.
>> Felly yeah, pibell yn allbwn yn unig o un rhaglen yn defnyddio mewnbwn i'r llall.
Mae pawb yn dda yno?
Cool.
OK.
Mae'n debyg na fydd yn rhaid i i wneud gormod ag ef.
Ond dylech ddeall ffyrdd y gallwch ddefnyddio hwn.
Ac mae rhai achosion sy'n efallai y byddwch eisiau ei ddefnyddio.
>> Felly ffeil I / O-- wyf yn gwybod beth rydych chi'n saying-- maen nhw wedi arfer darllen o
ac ysgrifennu at ein sgrîn yno, sydd yn safonol mewn ac yn safonol allan.
A dyna beth yr ydych guys wedi bod wneud ers dechrau'r dosbarth yma.
Ond gallwch hefyd ddarllen ac ysgrifennu ffeiliau, sef pob ffeil I / O-- felly ffeil mewnbwn,
allbwn yw'r cyfan mae'n ei gynrychioli.
Felly, mae hyn yn y bôn yn golygu bod gallwch storio eich data yn awr.
>> Pan fyddwch yn jyst hargraffu i'r sgrin, mae'n mynd, dde y bôn?
Cyn gynted ag y byddwch yn gwneud "Helo byd "a rhedeg" Helo byd "
mae'n printiau "Helo byd" at y sgrin.
Ond ni allwch chi wir yn ei wneud unrhyw beth ag ef oddi yno.
Os ydych yn storio mewn testun file, yna yn sydyn
mae gennych y data hwn mwyafswm y cewch chi i drin neu ei roi i mewn i ffeil,
neu ei roi mewn rhaglen ddiweddarach.
Un o'r rhesymau pam rydym yn gwneud hyn yn unig
fel ffordd i storio data ar gyfer defnydd nes ymlaen.
>> Mae gen i un neu ddau o gamau yma dim ond cerdded drwy safonol
I / O. Mewn cam un, yr ydych Mae angen i greu geirda
at y ffeil gyda phob capiau FFEIL ffeil seren.
Felly mae hynny'n creu pwyntydd i ffeil.
Felly, yna rydych am ei agor.
A ydych yn dweud, yn llythrennol, dim ond ffeil hafal fopen.
Ac mae hyn yn mynd i ddychwelyd pwyntydd at y ffeil yr ydych newydd agor.
Gwelais un neu ddau o chi guys mewn oriau swyddfa.
>> Ond un o'r pethau yw awgrymiadau remember--
Gall fod rhywfaint o gyfeiriad neu null, dde?
Os ydym byth yn cael achos lle Gall rhywbeth ddychwelyd null,
beth sydd yn rhaid i ni ei wneud cyn i ni byth yn ei ddefnyddio?
Mae angen i ni wirio a yw 'i' null ai peidio, dde?
Oherwydd y bydd rhai ohonoch wedi cael y mater lle beth bynnag gwrthrych
yn cael ei dychwelyd mewn breakout yn null.
Rydych yn ceisio berfformio rhywfaint o swyddogaeth arno.
Ac mae eich safle cyfrifiadur ffawtiau.
Hawl?
Rwy'n siwr un neu ddau ohonoch efallai eu bod wedi y mater hwnnw.
>> Felly, gyda fopen, fopen naill ai'n dychwelyd pwyntydd i'r ffeil,
neu os oes rhywbeth yn mynd o'i le, mae'n mynd i ddychwelyd null.
Felly, bob amser angen i chi wirio nad yw wedi dychwelyd null
cyn i chi geisio gwneud unrhyw beth arall.
Mae hwn yn debyg i batrwm safonol eich bod yn mynd i angen yma.
Os oes byth siawns y Gallai rhywbeth ddychwelyd null,
gwirio i wneud yn siŵr ei fod Nid yw cyn i chi fynd ymlaen.
Fel arall, rydych yn mynd i gael namau safle hyfryd.
Ac nid oes neb yn hoffi i ddelio â hynny.
>> Felly, wrth i ni weld yma, y ​​ddadl gyntaf yn unig y llwybr i'r ffeil.
Os na fydd y ffeil yn bodoli, mae'n mynd i greu'r ffeil.
A 'i' jyst yn mynd i fod yn wag.
Ac yna yr ail ddadl yw'r modd a 'ch angen.
A ydym am ddarllen o'r ffeil hon?
Ydych chi eisiau ysgrifennu ohono?
Ydych chi eisiau atodi?
Felly, mewn gwirionedd yn hyn yr wyf newydd said-- os nad yw'r ffeil yn bodoli
ac yr ydych yn ceisio ei ddarllen o iddo, mae'n mynd i daflu gwall.
Os yw'r ffeil name-- hoffi os Nid file.text yn bodoli eto
a ydych am ysgrifennu iddo, bydd yn creu
ffeil gwag o'r enw file.text i chi.
Ac os ydych chi am i atodi, dylech wneud yr un peth.
A yw hynny'n gwneud synnwyr?
Os ydych yn ceisio i ddarllen o ffeil nad yw'n bodoli eto,
bydd yn taflu gwall.
Fel arall, bydd yn creu y ffeil i chi wneud yr hyn rydych am iddo.
Cool.
Nawr gallwn ddarllen o'r ffeil.
Ac mae hyn yn unig fath o fynd drwy'r gwahanol swyddogaethau
sydd gennym ar gyfer ffeil I / O. Bydd hyn yn angenrheidiol yn y pset yr wythnos hon,
os cofiaf yn iawn.
Ie, yn gwbl bydd yn angenrheidiol mewn pset yr wythnos hon.
Felly fgetc yn dychwelyd y cymeriad nesaf.
fgets jyst yn dychwelyd llinell o destun.
Bydd yn dychwelyd unrhyw beth hyd at llinell newydd, a bydd yn torri.
Felly fread darllen penodol nifer y bytes a lleoedd yn eu
i mewn arae, a oedd yn yn rhywbeth yr ydych efallai
am ei wneud ag ad-size-- Gallai fod yn ddefnyddiol.
>> Faint o bobl sydd wedi darllen y fanyleb pset, gyda llaw?
OK.
[Anghlywadwy]
>> SIARADWR 1: OK.
Mae pob hawl.
Yn bendant ddarllen that-- ei fod yn pset hwyl.
Byddwch yn cael i adennill cof dileu card-- wir yn gyffrous pan fydd yn gweithio.
Ond yn sicr, yn dechrau darllen hynny.
Dewch i siarad â mi os ydych yn gennych gwestiynau am y peth.
>> OK, fel yr oeddwn yn dweud, fread darllen nifer penodol o bytes.
Dyna ryw nifer mympwyol eich bod yn mynd i osod.
Ac yna fseek unig symudiadau i swydd benodol.
Felly, efallai nad ydych yn poeni am y 10 bytes nesaf.
'Ch jyst am hepgor ymlaen.
Dydych chi ddim yn poeni am hynny.
Byddwch am ddarllen dechrau am 11 beit.
fseek yn caniatáu i chi wneud hynny.
Felly, mae'n eich galluogi i fod yn ddetholus am yr hyn yr ydych yn darllen.
Gan fod fgetc, fgets, a fread darllen o le penodol yn y ffeil.
>> Un ffordd o feddwl am hyn yw os yw hyn yw ein ffeil, pan fyddwch yn agor iddo yn gyntaf,
mae gennych y sefyllfa hon yn y ffeil sy'n dechrau ar y dechrau.
Pryd bynnag y byddwch yn ffonio fgetc, fgetf, neu fread,
mae'n mynd i ddechrau o'r sefyllfa hon marciwr.
Gadewch i ni ddweud eich bod am ddarllen darn hwn o gof dros yma.
Nid ydych yn gallu ffonio.
Mae'n rhaid i chi chwilio am dros yma ac yna darllenwch oddi yno
neu ddarllen, yn cael, neu getc, yn dibynnu ar yr hyn yr ydych ei eisiau.
Felly ceisio dim ond yn caniatáu i chi sgip dogn o gof.
A dyna yw'r unig ffordd y gallwch hepgor pethau
heb eu darllen i mewn i'ch byffer.
A yw hynny'n gwneud synnwyr i bawb?
>> Yn amlwg, mae 'na llawer o Yma-- cyfochrog
ailgyfeirio ein cynnyrch, neu fewnbwn, eich bod wedi darllen ac yn ysgrifennu.
Felly fputc jyst ysgrifennu cymeriad i mewn i'r ffeil.
fputs yn ysgrifennu llinell.
Fprintf argraffu allbwn fformatio.
Felly os oes gennych tabs, neu le, neu whatnot.
Ac yna fwrite ysgrifennu rhai amrywiaeth o bytes i ffeil.
Felly mae hwn yn yr un ffordd fwrite ac fread yn cyfateb
fgets opposites--, fputs, a Yna llawer fputc a fgetc--
pethau o gwallgof, yn gyflym.
>> Dim ond yn fath o gadw handy-- hwn bydd gennych wahanol adegau
lle efallai eich bod jyst eisiau un cymeriad ar y tro.
Efallai eich bod am linell cyfan.
Gyda'ch pset-- geiriadur sydd mewn dau psets,
Credaf, rydym yn rhoi i chi yn ei gyfanrwydd geiriadur mewn fformat testun
sydd bob gair gwahanu gan y llinell.
Felly, os ydych yn awyddus i ddarllen mewn un gair ar y tro,
hyn y gallech ei defnyddio os ydych yn darllen ac maen nhw i gyd gwahanu ar linellau newydd,
a 'ch jyst eisiau un gair ar y tro?
>> GYNULLEIDFA: Fgets
>> SIARADWR 1: Iawn.
Fgets-- oherwydd bod hynny yn dychwelyd beth bynnag sydd ar un llinell.
Ac os bob gair yw ei llinell ei hun, gallwn ddefnyddio fgets.
Cool.
A yw hynny'n gwneud synnwyr, mae pawb?
Cool?
Yeah, rydym yn mynd i gael i y rhan hwyl gyda awgrymiadau
yn fuan iawn, lle rydych yn mynd i wneud ychydig o mathemateg.
A bydd yn cael ei wych.
>> Diwethaf step-- cau eich ffeil.
Gyda chymaint o bethau yma, un o'n patrymau
yw os gellir ei ddychwelyd null, gwirio am null.
Os byddwch yn agor rhywbeth, byddech yn cau yn well.
Iawn, felly nid ydych chi'n ei wneud nes eich bod ei wneud oni bai eich bod wedi cau ei.
Math o fel nad yw'n drosodd nes bod y wraig braster yn canu.
Dyna fel cau eich ffeil.
Fel y mae'n dweud yma, dim ond i ailadrodd, bob amser
agor eich ffeil cyn eich bod yn darllen neu ysgrifennu ato.
A bob amser yn cau os ydych wedi agor ei.
Mae pob hawl?
Cool.
>> Felly dyma enghraifft.
Felly tiny-- Nid wyf yn gwybod os ydych yn Gall guys weld bod yn dda iawn.
Os mai dim ond gallem gynyddu y disgleirdeb rhywsut.
Gadewch i mi mewn gwirionedd yn gwneud hyn os gallaf.
OK, ni allwch chi guys 'n sylweddol gweld hynny o gwbl, gallwch chi?
OK, rydym yn mynd i wneud hyn, ac yna.
[Anghlywadwy]
>> Rwy'n cymryd yn ganiataol mae hyn yn llawer gwell i'w weld.
A all unrhyw un weld lle mae fy Aeth llygoden yw'r cwestiwn?
Ah, yna mae'n yw-- beth trafferth!
>> OK.
Yn y bôn, dylech guys cael y math o syniad o'r hyn y mae hyn yn ei wneud.
Dyw hi ddim yn berffaith.
Ond byddai'n well gen i egluro na gwario mwy o amser yn ceisio fformat yn iawn.
Yn y bôn, fel y gwelwch yma, rydym yn dechrau gyda agor ffeiliau.
Ac mae gennym rai file cronfa ddata yr ydym yn
agor sy'n dweud ei fod yn ein myfyrwyr.
Ac rydym yn mynd i ysgrifennu ato.
Felly, wrth gwrs, yn dychwelyd null.
Felly, mae'n rhaid i ni wirio am null.
Ac yna, os nad yw'n null, rydym yn mynd drwyddo.
Ac fel y gwelwch, rydym yn dolennu trwy fan hyn.
Mae myfyrwyr.
Mae myfyrwyr yn hash a ddiffinnir fel tri.
A beth rydym yn ei wneud yw ein bod yn argraffu ar y ffeil, dde?
Felly, beth ydym yn argraffu allan i'n ffeil?
>> GYNULLEIDFA: Y sgoriau sydd yn y casgliad?
>> SIARADWR 1: Yeah.
Mae'r sgorau sydd yn y array-- yn union.
Felly rydym yn agor y ffeil gronfa ddata, a oedd yn
Rwy'n cymryd yn ganiataol yn rhyw fath o gronfa ddata graddau.
Ac rydym yn unig yn argraffu allan y ugeiniau o bob myfyriwr hwnnw ffeil.
Cool?
Da.
Awesome.
OK.
Gadewch i ni fynd yn ôl i'r canlynol--
>> GYNULLEIDFA: Mae gennyf gwestiwn cyflym.
A yw'r printf nid yn y am ddolen?
Dyna dim ond yn y pe ddolen?
SIARADWR 1: Na, 'i' yn y am ddolen.
Ni allaf weld fy llygoden yn dda iawn i fyny yma.
Felly, dw i'n cael trafferth i fformat sy'n briodol.
Dylai hyn braced gael ei mynd.
Dylai fod yn i lawr yma.
Mae hyn yn beth sydd yn eich am ddolen.
Yno.
Nawr mae'n eithaf.
Felly dyna sut y dylai be-- eithrio am y braced diwethaf fy mod yn gwrthod.
OK.
A yw hynny'n gwneud synnwyr i bawb?
OK.
Rydym yn mynd i symud ymlaen at y peth nesaf then--
sydd, mewn gwirionedd, rydych yn mynd y bydd angen i weld y cod.
Felly, Im 'jyst yn mynd i copïo bod dros ar hyn o bryd.
OK.
Felly, dw i'n mynd i ddangos i chi guys cod hwn.
Ac yr wyf am i chi geisio ffigur yr hyn mae'n fod i'w wneud.
>> Felly, o ystyried that-- gymryd munud neu ddau.
Ceisiwch a chyfrif i maes beth sy'n digwydd yma.
>> Unrhyw syniadau?
>> Rydym yn gwybod fod gennym o leiaf ddau dadleuon yn y llinell orchymyn, dde?
Rwy'n cymryd yn ganiataol un ohonynt yn mynd i fod bod [Anghlywadwy] o'n rhaglen yw
ac yna rywbeth arall.
Oherwydd os [Anghlywadwy] yn llai na dau, rydym yn gweiddi arnynt.
Hawl?
Ac oddi wrth y defnydd, mae'n edrych yn debyg mae'n mynd i fod yn rhyw fath o ffeil.
Yr ydym i gyd yn cytuno â hynny?
Felly nawr, beth yw'r ddolen yn ei wneud?
Beth sy'n ei fod yn mynd drwy?
>> GYNULLEIDFA: Mae pob un o'r ffeiliau.
SIARADWR 1: Yn union.
Mae'n mynd drwy'r holl ffeiliau a rydym wedi mewnbwn yno.
Felly, ar gyfer pob ffeil, 'i' agor i fyny ychydig llinyn yno.
Mae wedi agor y ffeil.
Hawl?
Ac mae'n darllen ohono.
Wrth gwrs, gwirio os yw'n null.
Ac yna mae'n argraffu.
Os yw'n null, 'i' jyst dweud wrthym nad yw hynny'n ffeil sy'n bodoli.
Gan fod yn cofio, gyda Darllenwch ein ffeil wedi i fodoli.
Hawl?
Gyda ysgrifennu a atodi, gallwch ei gael i ffwrdd ag ef.
Ond gyda darllen, mae ein ffeil wedi i fodoli.
>> Ac yna, os yw'n bodoli, beth ydym yn ei wneud yma?
Gadewch i ni dim ond dechrau fan hyn.
Beth ydyn nhw do-- gymeriad hon yn gyntaf.
Beth mae'n ei wneud?
Mae'n cael un cymeriad, dde?
Felly, beth mae hyn yn ei wneud?
Mae wedi cael y cymeriad cyntaf.
Unrhyw un yn gwybod EOF?
>> GYNULLEIDFA: Diwedd y ffeil?
>> SIARADWR 1: Diwedd file-- union.
Felly, mae'n mynd i fynd drwy y ffeil cyfan, dde?
Ac yna mae'n mynd i ddiweddaru erbyn cael pob cymeriad wedi hynny.
Hawl?
A beth sy'n ei wneud?
GYNULLEIDFA: Rhoi hynny in--
>> SIARADWR 1: Printiau Putchar at eich arbedwr sgrin.
[Anghlywadwy] cymeriad.
Ac yna pan fydd yn [Anghlywadwy] bydd hyn yn cau'r ffeil.
>> GYNULLEIDFA: Onid ydych yn angen [? arall? ?]
>> SIARADWR 1: Ddim o reidrwydd.
Hynny yw, ei fod yn fath o ymhlyg yn hyn.
Oherwydd bod hyn yn dychwelyd, fodd bynnag, ar yr amod gan nad yw hyn yn dal hyn, eich bod yn iawn.
Yr wyf yn golygu ei fod yn fwy na thebyg yn dda ymarfer i wneud arall.
Ond nid yw arall bob amser yn angenrheidiol yn enwedig
os oes gennych rywbeth fel dychwelyd, a oedd
yn golygu bod yn yr achos os bydd yn dal iddo, eich rhaglen yn mynd i roi diwedd
a bydd yn byth yn mynd i hyn.
Ei fod yn fwy ar gyfer yr achos lle rydych yn Nid yw o reidrwydd yn dychwelyd rhywbeth.
Oherwydd os nad oedd hyn yn dychwelyd unrhyw beth,
byddai'n golygu bod os yw hyn yn wir, byddai gweddill hyn yn dal i redeg.
Ac yn yr achos hwnnw, byddwch yn Byddai eisiau ffug.
Os yw'n dychwelyd, ac yn dod i ben eich rhaglen,
Nid yw arall yn angenrheidiol i gyd yr amser, yn dibynnu ar gyd-destun.
Jacob, oedd gennych chi gwestiwn?
GYNULLEIDFA: Yeah.
Felly, mae fgetc gael y cymeriad nesaf?
Sut mae'r cymeriad yn cynyddu?
SIARADWR 1: Yeah.
Felly fgetc yn cael y cymeriad nesaf.
Gallwch chi feddwl am y peth fel C ++ mewn ystyr.
>> GYNULLEIDFA: Felly beth oedd EOF?
>> SIARADWR 1: EOF yw diwedd y ffeil.
'I' jyst marciwr sy'n gadael i chi wybod eich bod chi ar ddiwedd eich ffeil.
Felly, mae hyn yn mynd i argraffu at eich safon allan.
Ac yna mae'n mynd i gau y ffeil pan mae'n ei wneud.
Ac yna gadewch i ni fynd i y ffeil nesaf, dde?
Felly ar y cyfan, beth mae'r rhaglen hon yn ei wneud?
>> [Anghlywadwy]
>> SIARADWR 1: Yeah.
'I jyst yn argraffu allan popeth yno.
Felly CAT os ydych chi guys wedi defnyddio erioed ac yna enw'r ryw file--
Nid wyf yn gwybod os oes unrhyw un gennych wneud erioed hynny ar eich terfynell.
Ond os ydych chi erioed wedi defnyddio'r gorchymyn CAT-- C-A-T--
ac yna beth bynnag ffeil rhaid i chi ei there--
argraffu allan at eich terfynell, sef Gall fod yn super 'n hylaw ar gyfer rhai pethau.
Rwy'n ei ddefnyddio llawer.
A yw hynny'n gwneud synnwyr i bawb?
Cool?
>> OK fel bod eich tasg now-- naill ai trwy eich hun neu gyda'r bobl o amgylch you--
ydy at jyst ysgrifennu rhaglen syml a fydd yn unig yn ysgrifennu "Helo, byd!"
allan i ffeil.
>> [Anghlywadwy]
>> SIARADWR 1: Roeddwn yn hoffi, gwnaeth Rwy'n gwneud hynny yr wythnos diwethaf yn wael?
Doeddwn i ddim yn meddwl ei fod mor ddrwg.
Rwy'n falch eich bod i gyd yma.
Mae'n wir yn gwneud i mi yn hapus.
Rwy'n ferch o bleserau syml.
Fi jyst yn hoffi pan fydd fy adran yn bresennol.
Felly, Im 'jyst yn cael cychwyn hwn ar gyfer ydych guys fel y gallwn cod gyda'n gilydd.
Dydw i ddim yn hoffi rhoi unrhyw un ar y fan a'r lle, oni bai eich bod eisiau bod.
>> GYNULLEIDFA: Ar gyfer y cwis, yn ei wneud mae'n rhaid i ni ysgrifennu rhaglen?
>> SIARADWR 1: Efallai y gofynnir i chi ysgrifennu rhaglenni syml â llaw.
Yup.
>> GYNULLEIDFA: Mae'r cwis yn yr wythnos nesaf, dde?
>> SIARADWR 1: Y cwis yw dydd Mercher nesaf.
Mae hynny'n golygu bod 'na [hyfryd? CSE?] graddio parti wedyn, a oedd
yn golygu y byddwch yn cael eich sgôr yn ôl sy'n night-- ar faint o'r gloch?
Pwy a ŵyr?
Ond bydd yn y noson honno.
>> Mae pob hawl.
Sut ydym am ddechrau hyn?
'N annhymerus' yn rhoi hint-- yn dechrau gyda hyn i chi.
>> GYNULLEIDFA: Mae'n rhaid i chi agor ffeil.
>> SIARADWR 1: Yeah.
Felly, beth ydych chi eisiau ei galw hyn?
A ydych chi eisiau i alw yn "ffeil"?
Gadewch i ni ei gwneud yn hawdd.
Felly fopen-- beth yw ein prawf allbwn yn mynd i fod?
Alw yn "Helo."
A beth yw ein dull?
Beth ydym yn ei wneud at y ffeil hon?
>> GYNULLEIDFA: Darllen.
Ysgrifennu.
SIARADWR 1: Rydym yn ysgrifennu ato.
Lovely.
Iawn, felly mae gennym y ffeil nawr.
Yr hyn sydd angen i ni ei wneud?
GYNULLEIDFA: Gwiriwch os yw'n null.
SIARADWR 1: Gwiriwch os yw'n null-- union.
Dyna beth yr wyf yn hoffi ei glywed.
Dylai hynny fod yn awtomatig, yn enwedig 'n bert lawer o'r pwynt hwn ymlaen.
Os byddwch yn dechrau segfaulting, rydych yn ôl pob tebyg nid oedd yn gwirio am null rhywle.
Naw gwaith allan o ddeg, dyna mynd i fod yn eich camgymeriad.
Felly, pe gallech jyst ei gael yn y arfer, gwiriwch os yw'n null,
eich bywyd yn mynd i fod 'n glws a easy-- neu'n haws.
>> Felly edrychwch i weld a yw'n null.
Felly, os nad yw'n null, a oedd yw'r hyn y mae'r bang hafal
yw-- beidio null-- ei fod yn ddilys.
Beth ydym ni am ei wneud?
Rydym yn unig eisiau argraffu i'r ffeil, dde?
Felly, beth ydym yn mynd i'w defnyddio?
>> GYNULLEIDFA: Fprintf
>> SIARADWR 1: hyfryd Fprintf--.
A fprintf cymryd dau arguments-- lle mae'n mynd a'r hyn yr ydym am ei argraffu.
Felly beth yw'r un cyntaf?
I ble mae'n mynd?
>> GYNULLEIDFA: Ffeil.
>> SIARADWR 1: Mae'n mynd i ffeil.
A beth ydym ni eisiau ei argraffu?
"Helo, byd!"
Mae pob hawl.
Mae gennym un thing-- diwethaf patrwm mawr arall yma.
GYNULLEIDFA: Close.
SIARADWR 1: Close.
Dyna ni.
>> GYNULLEIDFA: A yw hyn yn digwydd os yw'r ffeil yn null?
SIARADWR 1: Na, mae hyn yn os nad yw'n null.
GYNULLEIDFA: O, os yw'n not-- OK.
Ar gyfer y fopen ac yna'r dau dadleuon sy'n mynd y tu mewn,
beth mae'r ddadl gyntaf yn ei olygu eto?
>> SIARADWR 1: Y ddadl yw yn union fel enw'r ffeil
eich bod eisiau mynd i.
Felly, ar ôl hyn yn rhedeg, byddech cael rhywfaint o ffeil o'r enw "helo"
fod gan "Helo, y byd" o fewn iddo.
Dyna i gyd.
Dim ond yr enw.
>> GYNULLEIDFA: Ac ers ei fod yn ysgrifennu, mae'r Nid oes rhaid i ffeil yn bodoli eisoes.
Yw bod yr hyn a ddywedasoch?
>> SIARADWR 1: Iawn.
Yn union.
Os "Helo" fel ffeil nid yw'n bodoli eto, 'i'
mynd i greu ffeil o'r enw Helo "ac yn ysgrifennu ar eich rhan.
>> GYNULLEIDFA: Pan fyddwch yn dweud y rhaglen i ysgrifennu at y ffeil,
pam ydych chi'n ysgrifennu "ffeil" yn hytrach na enw'r ffeil a fprintf--
>> SIARADWR 1: Gan fod yn yr achos hwn, rydym wedi hynny FILE-- mawr i gyd yn seren caps--,
ffeil.
Felly mae'n pwyntydd i'r ffeil eich bod yn sôn amdano.
Mae hyn yn y ffordd y mae rydym yn unig yn cyfeirio ato.
Felly, yn yr achos hwn, byddwch yn gallu meddwl am AHA file--,
gallwn ddefnyddio this-- ffeil yma yn cyfeirio at agor "Helo"
ac yn gadael iddo ysgrifennu.
>> GYNULLEIDFA: A allem roi "Helo" yn lle hynny [? o ychydig?] file f?
SIARADWR 1: Na, oherwydd "Helo" Mae angen i fod yn agored ac yn ysgrifenadwy.
Ffeil yma yn debyg i dynodwr sy'n dweud OK, rydym yn
cael y hello-- file-- ein bod yn edrych ar.
Mae wedi cael ei hagor.
Ac rydym yn mynd i ysgrifennu ato.
Os ydych yn unig yn defnyddio "Helo", sy'n cael eu crynhoi mewn iddo.
Felly, mae'n mynd i freak allan.
Yr wyf yn golygu, gallech fod wedi enwi ei.
Fe allech chi fod wedi gwneud ffeil, seren, "Helo", hafal i hynny.
Ond holl bwynt yw bod chi angen pwyntydd seren ffeil er mwyn
i allu defnyddio'r swyddogaethau hyn.
GYNULLEIDFA: A allech chi ei wneud ffeil, seren, ffeil, "Hello"
neu a oes rhaid i chi roi ffeil seren, ffeil ganddo?
SIARADWR 1: Gallech gwneud ffeil, seren, "Helo."
Gallwch newid hyn i beth bynnag enw sydd eisiau.
Mae'n hollol fympwyol yr hyn yr enw hwnnw yw.
Gallwch enwi ei dim.
Enw ei sbageti hedfan, os ydych yn dymuno.
>> GYNULLEIDFA: Beth yw'r "w" mewn dyfynodau amdano?
>> SIARADWR 1: The "w" yn unig y modd.
Felly, rydym yn ysgrifennu at y ffeil hon.
Mae pawb yn dda?
Yn glir?
Ie.
>> GYNULLEIDFA: Felly, pan fydd yn ysgrifennu hyn ffeilio, ble rydym wedyn yn gweld bod ffeil?
>> SIARADWR 1: Bydd yn yn yr un cyfeiriadur eich bod yn hyn o bryd yn.
Os ydych chi yn pset tri a ydych yn rhedeg hyn, o fewn eich pset
tri ffolder yn mynd i fod ffeil o'r enw "Helo."
Cool?
Mae pawb yn dda?
Rwy'n teimlo fel eich bod i gyd ei gael, sy'n wych.
OK.
Felly, yn ôl at fy show-- sleid Rwyf wrth fy modd pan mae pethau'n gweithio.
OK, pointers-- Ydych chi'n guys gyffrous?
Awgrymiadau yn wych.
Maent yn cymryd ychydig bach i lapio eich pen o gwmpas.
Mae hyn yn fy ail flwyddyn awgrymiadau addysgu.
Ac yr wyf yn meddwl fy mod o'r diwedd got it.
Felly, os ydych yn ei chael yn anodd, mae'n iawn.
Fel y dywedais o'r blaen, gan dynnu lluniau yn helpu llawer gyda phethau yn CS,
gymaint ag y Rwy'n credu bod pobl yn tueddu i feddwl oh, rydym yn ar gyfrifiadur.
Rydym yn dylai dim ond cod.
Lluniau gan dynnu No-- mewn gwirionedd yn eich helpu.
Ac yr wyf yn wir yn eich annog i manteisio ar eich ochr kindergartner
ac yn dod allan creonau neu farcwyr a gêm gyfartal.
Gan y bydd yn eich helpu.
Ac os ydych yn gweld fi yn oriau swyddfa, yr wyf yn bydd yn cario o gwmpas pentyrrau o bapur
gyda chorlannau gan dynnu pethau allan.
>> Felly, yn enwedig gyda pointers-- dynnu lluniau.
Ac rwy'n siŵr ein bod mewn gwirionedd yn mynd i yn tynnu rhai lluniau yma hefyd.
>> Felly mae'r holl rhaid i chi guys i weld Binky, y peth animeiddio clai oer.
Ac rydym yn credu ei bod hi'n ddoniol pan mae'n ffrwydro i mewn i griw o ddarnau.
Mae'n rhywfaint o ryddhad comic ar gyfer y dosbarth.
C [Anghlywadwy] y gallu mawr i allu rheoli cof.
Ac mae'n un o'r pethau sydd wir yn yn ei gwneud yn iaith mor bwerus.
Ond gyda daw nerth mawr gyfrifoldeb mawr.
A gall pethau crazy ddigwydd os nad ydych yn ofalus.
Felly, pan fyddwch yn ei ddefnyddio awgrymiadau, ydych am wneud
yn siŵr eich bod wir yn deall yn union beth rydych yn ei wneud.
Gobeithio yr ychydig bach nesaf Bydd amser yn eich helpu i wir yn deall
awgrymiadau, sut i'w defnyddio, a sut i drin nhw.
>> Felly memory-- Rwy'n siŵr ein bod i wedi gweld diagram hwn o'r blaen.
Felly, mae hyn yn unig yw diagram syml o sut y gallai pethau gael eu storio cof.
Felly, rydych yn y bôn yn cael y rhain araeau enfawr o flociau un beit
yn yr hyn sydd gennym Yma-- ychydig codiadau erbyn un bob tro.
Mae hyn yn hecs [Anghlywadwy] felly blociau wyth-bit.
A phob bloc yn gysylltiedig gyda rhywfaint o gyfeiriad hecsadegol.
Felly, os ydych chi erioed wedi gweld y 0x, sydd newydd notating
ei fod yn gyfeiriad hecsadegol.
Gallwch chi gymryd yn ganiataol mae hyn yn golygu rhywfaint o gyfeiriad yn y cof.
Rydym yn siarad am gyfeiriadau cof pryd bynnag y byddwch yn gweld hecsadegol.
>> Rydym wedi ints yn newidynnau, fflotiau yn newidynnau sy'n storio.
Felly ints storio ints.
Siop Fflotiau arnofio.
Felly, mae gennym hefyd awgrymiadau bod cyfeiriadau storio cof.
Dyna rhyw fath o fapio.
Awgrymiadau yn unig am gyfeiriadau cof.
Felly dyna fel eich math yno.
Mae eich offer yn 32-bit, sy'n golygu bod eich cyfeiriad cof yw pedwar bytes.
Felly mae unrhyw pwyntydd sydd gennych hefyd yn mynd i fod pedwar bytes.
Neu arall os yw'n pedwar bytes, cof yw pedwar bytes.
Cof siop Awgrymiadau.
Felly, maen nhw'n pedwar bytes.
Cool-- jyst eisiau i atgyfnerthu hynny.
>> Dylech gael comig hwn yn awr.
Nid wyf yn gwybod faint ohonoch yn gefnogwyr xkcd, ond rwyf wrth fy modd xkcd.
Mae'n wych.
>> Mae pob hawl.
Felly, gan greu pointers-- fel y dywedais, 'i' 'n bert lawer yn union fel unrhyw beth arall.
Mae gennych fath.
Mae gennych enw.
Hawl?
Dyna beth sydd gennym yno. [? Hex?] Seren yn golygu ei fod yn pwyntydd,
ac yna beth bynnag y dymunwch ei alw.
Felly y math cynrychioli beth allwch chi ei storio.
Mae pob hawl?
Yn yr un modd, os ydym yn gwneud ints, yr ydym yn gwybod ein bod yn storio yn int yno.
Gyda pwyntydd, mae'n yn meddu ar gyfeiriad cof.
Ond yr hyn y mae'n ei olygu yn that-- dyma lle llun yn mynd i ddod i mewn 'n hylaw.
Felly, yn yr achos hwn, rydym wedi value-- rhai gadewch i ni ddweud pedwar.
Pedwar ar gyfeiriad un.
OK?
>> Mae hyn yn un cyntaf yma yn golygu ei fod yn 2x pwyntydd.
Hawl?
Mae'n rhywfaint o pwyntydd x.
Efallai x fod yn rhywbeth, beth bynnag.
Beth bynnag x yw-- dweud x yw pedwar.
Mae'n mynd i storio'r cyfeiriad cof yma.
Felly int, seren, x-- mae hyn yn rhyw slot arall yn memory--
pwy a ŵyr beth y mae hyn yn.
Ond mae'n mynd i storio cyfeiriad yma.
Felly byddai hyn yn like-- yn yr achos hwn, Beth bynnag,
yn cael ei storio ar 0x1-- beth bynnag yn cael ei storio yn y cyfeiriad y mae ein pwyntydd dal,
yn gorfod cyd-fynd i fyny gyda yr hyn yr ydym wedi eu dynodi.
Felly, ar 0x1, yn yr achos hwn, mae hyn yn x.
Gall hyn ond byth fod yn int er ein bod yn defnyddio hyn.
>> Yn yr un modd, os oes gennym 1Y arall, beth bynnag
cyfeiriad yn cael ei storio gan y mae i fod yn un peth char-- gyda z.
Yn yr un modd, pryd bynnag y byddwch geisio gwneud intx hafal 0.4,
mae'n mynd i gweiddi ar chi a bod yn fel dim, dywedasoch eich bod am gael int.
Mae hyn yn dybiedig i fod yn int.
Roi'r gorau i geisio gwneud yn arnofio.
>> Felly gadewch i bethau fod yn yr hyn y maent yn dymuno bod.
Gadael i bethau fod yn nhw eu hunain.
Felly mae peth mawr yn unig pa bynnag fath o pwyntydd
y mae, dyna'r unig beth y gallwch ei storio yno.
OK?
Gydag ymarfer, fel gyda Yr wythnos diwethaf, mae popeth
ymddangos yn wirioneddol fath o haniaethol.
Rydym yn mynd i wneud ychydig o ymarfer.
Dylid gwneud mwy o synnwyr.
>> Felly, cyfeirnodi a dereferencing-- ei fod yn wirioneddol bwysig cael hyn yn syth.
Rhaid i mi adnewyddu bob hyn a hyn.
A dwi'n hoffi aros, pa un ddylwn i ei eisiau?
Felly bydd y ampersand mewn gwirionedd yn rhoi chi yw'r cyfeiriad neu gyfeiriad.
Felly, mae'n dychwelyd y cyfeiriad yn cof y mae newidyn ei storio.
Felly, mae'n mynd i ddychwelyd mewn gwirionedd i chi a hecsadegol, tra dereferencing ei
mewn gwirionedd yn mynd i roi i chi mae'r data sy'n cael ei storio yno.
OK?
Felly, rydym yn mynd i edrych ar enghraifft 'n sylweddol yn gyflym, neu mewn gwirionedd i fyny nesaf.
>> OK.
Felly, rhaid i ni feddwl 'n sylweddol yn ofalus am hyn.
Felly, yma rydym yn cael rhywfaint o cyfanrif x.
Rydw i'n mynd i geisio tynnu hyn allan hyd eithaf fy ngallu.
Felly, rydym yn mynd i gael slot hwn x.
Ac mae'n storio pump.
Ei gyfeiriad yw 0x4.
Cool?
Gyd yn dda.
>> Felly, yn awr mae gennym pwyntydd hwn.
Yr oedd dros yma.
Ac mae'r ampersand yn rhoi i ni y cyfeiriad o rywbeth.
Felly, yn yr achos hwn, 'i' y cyfeiriad o x.
Beth yw cyfeiriad y x?
04-- ac pwyntydd hyn ar 0x08.
Cool?
Felly, gallwch chi feddwl am hyn pwyntydd, 04, ychydig bwyntiau dros yma.
Ac maen nhw'n a elwir awgrymiadau oherwydd fel ein bod yn cael mwy i mewn i hyn,
rydych yn mynd i weld pwyntio at bethau.
Ac un bloc yn pwyntio i un arall Bydd y bloc yn gwneud llawer mwy o synnwyr.
Felly dyma ddau.
Ac yna rydym yn cael rhywfaint o copi, sef 0x0c what--.
Ac mae'n mynd i dereference ein pwyntydd.
>> Felly, yr hyn y mae'n ei ddweud yw OK, dyma ein pwyntydd.
Mae'r gwerth mae'n storio yw 0x04, A beth mae'n ei ddweud yn mynd i'r cyfeiriad hwn
ac yn dweud wrthyf beth sydd ynddo.
Felly dyna effeithiol pa saeth hwn yn ei wneud.
Gallwch feddwl am hyn fel eich seren.
Felly OK, pan rydym yn ei wneud seren, mae'n golygu dilyn.
Ewch at y cyfeiriad hwn.
A dyna yn y bôn yn unig ar ôl saeth yma i'r darn hwn cof.
Ac yn rhoi i ni beth sydd ynddo, sydd 5.
Mae'n pam mae ein copi yn hafal i 5.
A yw hynny'n gwneud synnwyr?
A oes unrhyw un angen i mi fynd drwy'r hynny eto, neu'n arafach?
Ydych am i mi fynd drwyddo un yn fwy o amser?
OK.
Rydym yn mynd i ail-lunio eto.
Pan fyddwn yn dechrau, yr ydym i gyd yn cytuno ein bod wedi rhyw darn o gof hynny'n newidyn
x bod yn gosod hafal i 5.
Nid ydym yn rheoli pan fo hynny er cof.
Felly, fan hyn yn unig neilltuo fympwyol.
Da yno?
OK.
Yna rydym yn ymgychwyn pwyntydd i int.
Dyna pam ei fod yn caniatáu i bwyntio at x am fod gennym int yn y fan hyn.
Mae gennym darn arall o cof am fod pwyntydd hwn
yn newidyn yn union fel unrhyw beth arall.
Mae wedi ei neilltuo yn fympwyol ychydig o le yn y cof.
A beth mae'n storio yn y cyfeiriad o x.
Ampersand yn golygu gyfeiriad o x.
Felly, beth yw cyfeiriad x?
>> GYNULLEIDFA: Mae'n zero--
SIARADWR 1: 0x04.
Felly then-- un olaf.
Mae gennym rai copy-- eto unig newidyn arall.
Felly gadewch i ni neilltuo rhywfaint o le mympwyol.
Ac rydym dereference ein pwyntydd.
Mae'r seren yn golygu mynd i'r cyfeiriad storio yn fy pwyntydd.
Dywedwch wrthyf beth sydd yno.
Felly y cyfeiriad storio yn ein pwyntydd yw 0x04.
Felly, rydym yn mynd i'r cyfeiriad hwnnw.
Mae wedi pwyntio i'r cyfeiriad hwnnw.
Beth sydd y tu mewn y bloc cof?
Mae'n bump.
Felly dyna beth rydym aseinio ein copi.
Mae pawb yn dda?
Cool.
Lluniau Again--.
>> Felly olrhain gwerthoedd Yma-- Rwy'n yn mynd i adael i chi guys yn meddwl am hyn.
Gallwn dynnu llun arall.
Ond yr wyf am i chi i geisio rheswm drwy hyn ar eich pen eich hun am funud.
>> Gan nad oeddent yn rhoi ni cyfeiriad enghraifft,
Im 'jyst yn mynd i wneud x-- ampersand a ddylai helpu i yrru adref.
Ampersand yn golygu gyfeiriad.
>> Felly, yn yr un cyntaf, mae pawb mynd gyda'r llinell gyntaf.
Mae rhai x set yn five-- rhai slot ar hap yn y cof.
Pwyntydd seren int yn gyfartal at y cyfeiriad o x, dde?
Pwyntydd seren int creu bloc hwn, yn galw ei fod pwyntydd,
ac yn pennu i'r cyfeiriad o x.
Rwy'n ofnadwy ar ampersands.
>> Nawr yr hyn yr ydym yn ei wneud yw ein bod yn dweud OK, dereference ein pwyntydd.
Felly, rydym yn mynd yn iawn, beth sydd yn ein pwyntydd?
Mae'n ampersand x.
Ewch i ampersand x ac yn ail-neilltuo iddo.
>> Felly nawr, ampersand x yn mynd i fod yn 35.
Felly y bôn, pan fyddwch yn dereferencing, byddwch yn mynd yn iawn.
Rydych yn mynd i gael eu tynnu lluniau fel hyn.
Rydych yn mynd i gael eu tynnu eich saethau dros y lle y mae.
Felly, ewch i'r slot hwn mewn cof a naill ai rhoi'r gwerth yn ôl i mi, neu ei newid.
Yn yr achos hwn, oherwydd ein bod ar hyn o gwerth, rydym yn aseinio iddo fod yn 35.
Tra yn yr olaf un, os ydych yn sylwi, rydym yn
yn aseinio beth oedd i mewn yma i rywbeth arall.
>> Felly, mae ganddynt y tabl hwn awesome.
Dyw hi ddim mor ddrwg â hynny.
Rydych yn guys yn gweithio arno.
Rydw i'n mynd i dynnu ei fod allan ar y bwrdd.
Rydym yn mynd i lenwi allan gyda'i gilydd, OK?
Felly cydio rhai papur, chrafangia partner, yn dechrau gweithio.
Rydw i'n mynd i gael darn mwy o sialc.
Oherwydd ei fod yn mynd i fod yn llawer.
OK.
ATHRO: OK.
Gadewch i ni ddechrau gyda'r rhes gyntaf.
Byddwn yn dechrau yno, yna rydych guys Gall efallai yn gweithio drwy rai mwy.
OK.
yn hafal b amseroedd c, felly beth yw?
Nid yw'n gwestiwn castia, yr wyf yn addo.
>> MYFYRIWR: 4 gwaith 5.
>> ATHRO: 4 gwaith 5.
20.
Felly beth b?
MYFYRIWR: 4.
>> ATHRO: A c?
MYFYRIWR: 5.
ATHRO: 5.
Ac yna mae hyn yn unig yn mynd i cael ampersand a, ampersand b,
ampersand c, dde?
Ddim yn ddrwg.
Mae'n ddigon syml.
OK.
Felly yr un nesaf.
A hafal gwaith y c, rhag ofn unrhyw un sydd yn anghyfarwydd â hynny.
A yw pawb yn gyfarwydd gyda'r oes yn gyfartal?
OK, mae hyn i gyd yw-- mae hyn yn llaw-fer ar gyfer hafal o weithiau c.
Gallwch hefyd wneud hynny gyda is-adran, gydag adio, gyda tynnu.
Gallwch wneud yn gydradd, neu yn fantais yn dychwelyd c golygu yn gyfartal â plws c, a minws gyfartal
Byddai c yn hafal minws a c.
Dim ond siwgr cystrawennol.
>> Felly, yn yr achos hwn, mae yn hafal i Byddai gwaith y c rhoi i ni beth?
Unwaith eto, nid yw cwestiwn tric.
>> MYFYRIWR: 100.
>> ATHRO: 100.
A oes unrhyw beth arall yn newid?
Rhif
Efallai y byddaf yn olaf yn cael yn well yn fy ampersands.
>> MYFYRIWR: OK, ddrwg gennym, sut wnaethoch chi gael 100?
ATHRO: OK.
Felly mae yn hafal i amserau c, felly gwaith y c.
MYFYRIWR: O, ydych chi'n defnyddio a ar gyfer yr previous--
ATHRO: Ydw.
Felly mae'r rhain yn ein gwerthoedd mwyaf diweddar.
Mae'r rhain yn yr hyn y dylech fod yn defnyddio wrth i ni symud i lawr, OK.
Felly, b yw'r unig newid peth, dde?
Felly gadewch i ni lenwi popeth arall.
B. Beth yw b mynd i fod?
I fod, neu beidio â bod.
Felly, beth mae hyn yn ei wneud?
Beth yw'r seren yf yn ei wneud?
>> MYFYRIWR: Côd at leoliad y flwyddyn.
>> MYFYRIWR: Na, ddim yn hollol.
Felly, mae hyn yn gyfeiriad d.
>> MYFYRIWR: Felly b mae gwerth handed o flwyddyn.
>> ATHRO: Yeah, felly yf yn cyfeiriad a, dde?
Felly mae'n ei ddweud yn mynd i lle mae mae storio ac yn rhoi gwerth hwnnw.
Felly beth yw b?
MYFYRIWR: 100.
ATHRO: 100.
Perffaith.
OK, felly pc yn beth sy'n newid.
Mae popeth arall yn aros yr un fath.
Yr hyn sydd ei pc mynd i fod?
Aseiniad syml.
Pc yn hafal i flwyddyn, a beth yw y flwyddyn?
>> MYFYRIWR: ampersand a.
ATHRO: Perffaith.
Nawr rydym yn ei gael yn ddiddorol.
OK, gadewch i dorri yr un yma i lawr.
Yn gyntaf, beth sydd b amseroedd c, oherwydd dyna y rhan hawdd o yr un yma, dde?
Amserau B c yw--
>> MYFYRIWR: 500.
>> ATHRO: Yeah, felly beth mae hyn yn un yn ei wneud,
os bydd yn pb seren, beth sy'n newid?
>> MYFYRIWR: Beth sydd yn the--
ATHRO: Beth sydd yn b?
MYFYRIWR: Beth sydd yn y gofod bod pb yn pwyntio i.
ATHRO: A pb yn pwyntio i'r canlynol--
MYFYRIWR: B.
ATHRO: B. Felly yr unig newid beth yw b, ar y dde.
Amseroedd Felly b c, 500.
Felly dyna pa newidiadau nawr.
Cool.
Lovely.
Rydych guys yn ei wneud wych.
Mae pob hawl, torri hyn un i lawr.
C yn newid, dde?
Fel y gallwn lenwi popeth arall.
Gadewch i ni weld.
OK.
Rydym yn gwybod fod c yn mynd i fod y gynnyrch o ddau rif, dde?
Pa ddau rif, er bod?
>> MYFYRIWR: A a c?
>> ATHRO: Felly a yw iawn ar gyfer yr un cyntaf.
Felly, rydym yn d p cyfeirio i, dde?
P o bwyntiau i, felly rydym yn gwybod bod mae hyn yn mynd i fod 100 gwaith beth?
Amseroedd beth mae pwynt pc i?
Pwyntiau i a.
Felly 100 gwaith 100 yw 10,000.
Ydy hynny'n gwneud synnwyr?
Cool.
Ymestyn Home, guys, rhes olaf.
OK.
Beth sy'n newid yma?
>> MYFYRIWR: A.
ATHRO: A. Perffaith, felly Gall popeth arall yn aros yr un fath.
OK.
A beth yw?
Felly mae'n amser beth?
Mae hyn yn pb seren.
Felly pb seren yn golygu dyma pb, pwyntiau pb ib.
>> MYFYRIWR: 500.
>> ATHRO: 500.
Felly mae gennym 500 gwaith 100.
Dyna 50,000.
Whew!
Edrych ar hynny.
>> MYFYRIWR: Pam fod gennym y & c ar gyfer yr last--
ATHRO: Mae'n ddrwg gennyf.
MYFYRIWR: O, OK.
ATHRO: Fy ddrwg.
Llawer o ysgrifennu.
Mae pawb yn dda?
Ddim yn rhy ddrwg, dde?
Dim ond yn cymryd ychydig tra i weithio drwy'r.
Os byddwch yn torri i lawr, deall beth mae pob rhan
yn cyfeirio i-- fel gyda phopeth 'i',
yes-- dorri i lawr at yr ychydig problemau ac yna ailgyfuno,
a gallwch wneud rhai pethau anhygoel.
Ceir yr atebion, ond yr ydym yn gwneud hynny.
Rhifyddeg pwyntydd.
Ah.
Mae fy dwylo i gyd yn sialc.
Felly adio neu dynnu int addasu'r pwyntydd
gan faint y math o pwyntydd.
Cofio sut pob math Mae gan faint gwahanol?
Felly, fel dwbl neu hir dymor yw wyth a int yw phedwar ond torgoch yn un.
>> Felly, yr hyn yr ydych am ei wneud yw-- un peth i'w gofio
yn unig yw bod faint mae'ch Gwerth pwyntydd mewn gwirionedd yn newid
yn dibynnu ar y math o pwyntydd y mae.
Mae pawb yn dda gyda hyn?
Alla i ddileu ei?
Rydym yn dda?
Awesome.
>> Felly, os oes gennym ryw pwyntydd that-- hyn yn mynd i be-- rwy'n
mynd i'w wneud yn pwyntydd int.
Mae'n siopau hyn.
Pe baech yn dweud pwyntydd ynghyd ag un, yr hyn y mae'n mynd i'w wneud
ei fod yn mynd i ddiweddaru iddo gan y maint o int
oherwydd dyna yw'r math o pwyntydd y mae.
>> Gyda C, popeth yn llym iawn a rheoledig.
Mae'r pwyntydd int yn mynd i ddiweddaru erbyn faint o le byddai int cymryd.
Mae int yw pedwar bytes.
>> Felly beth fyddai hyn yn troi i mewn i?
Ydych ond yn ychwanegu pedwar ar hyn.
Nawr, byddai eich pwyntydd be-- OK.
>> Felly, os oedd yn torgoch ac fe wnaethom pwyntydd ynghyd ag un, beth fyddai hynny yn awr?
Os yw'n started-- esgus ein bod started-- ar hyn o bryd ei fod yn 0x08.
Gadewch i ni yn awr yn dweud fod hyn yn golosg pwyntydd, ac ychwanegwyd un.
Yr hyn y byddai'n newid i?
Sawl beit yw torgoch?
>> GYNULLEIDFA: Un.
>> SIARADWR 1: Un.
GYNULLEIDFA: Felly 0x09.
SIARADWR 1: Felly byddai'n naw.
Felly, dim ond rhywbeth i'w gofio.
Dim ond pan fyddwch yn ychwanegu un, nid yw'n ychwanegu un oni bai ei fod yn torgoch.
Mae wedi ychwanegu sawl bytes y math ei bod yn,
a dyna pam yr ydym wedi hafaliad hyn i fyny yma.
Felly mae'n amser int maint o'r math o pwyntydd.
>> Felly mae gennym yr enghraifft yma.
Roedd y neilltuo at y gwerth hwnnw, 0x4, pan wnaethom y plws yn dychwelyd un.
Beth sydd ynddo, yr hyn sy'n mewn x, nid yw'n newid.
Beth mae newid yw'r hyn sydd yn y.
Gall y cyfeiriad storio yn y ddiweddaru gan bedwar oherwydd mae pedwar bytes mewn int
a 'i' an pwyntydd int.
>> Mae pob hawl.
Felly, yn awr mae gennym ymarfer arall.
Felly, y cwestiwn yw beth fydd yn argraffu.
Unrhyw syniadau?
>> GYNULLEIDFA: Mae nifer y cymeriadau yn gath yn hapus?
SIARADWR 1: Yn union.
Felly hoffi gyda'ch llinyn.
A yw pawb yn cael hynny?
A ydym am gerdded drwyddo?
>> Ie, OK.
Felly, yr hyn yr ydym Yma-- rhaid i mi fel hyn cymaint mwy.
Nid oes gennyf i [Anghlywadwy] chwerthinllyd.
>> Felly, rydym wedi ein llinyn yma, cath hapus.
Lovely.
Mae gennym rai cownter sy'n rydym yn cadw golwg ar.
Felly, mae gennym rai torgoch * pwyntydd mai dim ond yn cael ei osod cyfartal i str.
Beth mae hyn yn ei wneud yw ei fod yn aseinio rhyw pwyntydd
i ddechrau eich llinyn.
Gan fy mod i'n siwr, gan ei fod yn Soniwyd yn y ddarlith,
rydym wedi rhoi guys chi yma Math o ddata o'r enw llinyn.
>> Ond mewn gwirionedd llinynnau yn unig amrywiaeth o- fel torgoch *.
Mae'n pwyntydd â chriw o gymeriadau sy'n cydgyffwrdd yn y cof.
Felly, mae hyn yn unig yn gosod ei gyfartal i unrhyw llinyn yw
a nodwyd gan ble ei gymeriad cyntaf yw.
Felly, mae hyn yn unig yw gosod ryw adeg cyfartal i gychwyn y llinyn.
Mae pawb yn dda yno?
Cool.
>> Felly, mae hyn yn ein dereferencing pwyntydd.
Felly, mae'n wir yn mynd i rhoi rhywfaint o werth i ni yn y fan hyn,
yn ein llinyn yr ydym yn sôn amdano.
Ac rydym yn ei ddweud ar yr amod nid yw'n terminator null.
Felly, dal i fynd nes i chi ei gael at ddiwedd y llinyn.
Diweddaru eich pwyntydd erbyn un.
Felly r, bydd yn mewn gwirionedd yn diweddaru erbyn un bob tro am fod hwn yn torgoch,
y torgoch *.
>> Felly, mae'n mynd i fynd drwy.
Mae'n mynd i ddiweddaru.
Felly, y tro cyntaf mae hyn yn rhedeg, mae'n mynd i fod yma yn h.
Mae'n mynd i ddiweddaru.
>> Bydd yn yn a.
Mi fydd hi'n p, y, ac yn y blaen ac yn y blaen.
Byddwn yn diweddaru'r cownter.
Pan fydd yn cyrraedd y diwedd, mae'n jyst printiau pa mor bell y mae wedi gotten.
Ie.
>> GYNULLEIDFA: Felly Mae'n cyfrif y gofod fel un, dde?
OK.
>> SIARADWR 1: Meddyliwch hynny.
A yw hynny'n question--
>> GYNULLEIDFA: [Anghlywadwy].
>> SIARADWR 1: Dim pryderon.
Mae hyn yr wyf yn gwneud hynny.
Mae pob hawl, felly un peth yr wyf yn deall yw bod gydag amrywiaeth,
gallwch hefyd drin fel pwyntydd oherwydd araeau yn unig
smotiau parhaus o gof.
>> Felly, gallwch chi ei drin yr un ffordd.
Gallwch eu trin gydag awgrymiadau, hefyd.
Felly, yn hytrach na gwneud, yn hyn achos, y peth cyfatebol
fyddai arae 0 yn dychwelyd 1.
>> Ond yn yr un modd ag y llinyn yn cael ei bennu
erbyn dechrau lle ei gymeriad cyntaf yw,
amrywiaeth yn cael ei bennu gan lle mae ei elfen gyntaf yw.
Oherwydd ein bod yn gwybod, rydym yn gwarantu, bod y rhain
yn mynd i fod yn un barhaus blociau o gof.
Dyna beth yn ein galluogi i wneud hyn.
Rydym yn gwybod eu bod yn dor blociau o gof.
>> Felly, yn yr achos hwn, trwy dereferencing amrywiaeth yn unig, sy'n dweud wrthym,
OK, ewch i ddechrau'r eich array, sydd yn fan hyn.
Felly, gallwch osod hafal i un.
Ac yn yr achos hwn, beth bynnag yw eich array math yw, pan fyddwch yn diweddaru ei erbyn un,
dyna union fel diweddaru iddo at y mynegai nesaf.
Gallwch chi wneud hynny oherwydd eich bod yn gwybod beth sydd yn eich casgliad.
Felly mae'n gwybod faint i'w diweddaru eich pwyntydd yn ôl,
pa gyfeiriad i roi'r wybodaeth ddiweddaraf iddo i hynny eich bod chi yn y slot nesaf.
>> Felly, mae hyn yn unig yw ffordd wahanol o ysgrifennu array 0 yn dychwelyd 1,
array 1 yn dychwelyd 2, array braced 2 yn dychwelyd 3.
Dim ond ffordd arall i feddwl am y peth.
Oherwydd eu bod yn ddi-dor blociau yn y cof,
gallwch gyfeirio atynt naill ai gan yr amrywiaeth notation--
yr wyf yn bersonol dod o hyd i easier-- ond efallai
angen i chi ei drin iddo llym gan cyfeiriadau cof.
Ac mae hyn yn y ffordd y byddech yn gwneud hynny.
Math o fwy o fel beth cool gallech ei wneud
yn erbyn rhywbeth efallai nad ydych yn mewn gwirionedd yn mynd i weithredu.
>> Rwy'n ei ddefnyddio mewn 61.
Nid ydych guys yn ôl pob tebyg dim angen i chi boeni am y peth ormod.
Ond os oes gennych ddiddordeb, cymryd 61 y flwyddyn nesaf.
Rydym yn y darn cartref guys.
Rwy'n gwybod, ei fod yn hir.
Dynamic Cof Allocation-- felly rydym yn gwybod bod un
o bethau pan fyddwn yn siarad yn ystod ein hadran gyntaf at ei gilydd,
buom yn edrych ar gyfnewid swyddogaeth lle'r oedd
tu allan i gwmpas ein prif swyddogaeth.
Ac rydym yn teithio yn y gwerthoedd hyn a oedd copïau yn effeithiol.
>> Ac unwaith cyfnewid gorffen gweithredu, mae newydd adael pentwr.
Cofiwch, mae gennym pentwr ffrâm am gyfnewid.
Mae'n gadael ac yn rhai gwerthoedd adael ag ef.
Ac yr oeddent yn mynd.
Ni allem wneud unrhyw beth gyda nhw ac roeddem yn drist
oherwydd ni allwn gyfnewid ein gwerthoedd.
>> Ond gyda C, fel y soniais, yr ydych cael llawer o rym dros gof.
Felly, beth y gallwch ei wneud yw eich bod yn gallu dyrannu pethau ar y domen yma
a fydd yn aros yno hyd nes y eich bod yn dweud wrthynt fel arall.
>> Maen nhw fel plant da.
Maent yn aros yno.
Nid ydynt yn gadael.
Byddant yn aros yno hyd nes eich bod fel, OK, gallwch fynd i ffwrdd.
>> Er bod pethau ar y simnai, who-- maen nhw fel plant drwg.
Byddan nhw'n jyst yn rhedeg i ffwrdd pan fyddwch eisiau i fod yn y fan a'r lle maen nhw'n mynd.
Ni allwch gael yn ôl.
>> Felly mae'r domen yw-- rydym yn mynd i siarad am malloc ac am ddim, sy'n
Rwy'n siŵr eich bod guys clywed amdanynt yn y ddarlith.
A dyna yn y bôn yn ffordd i gael data cyson iawn.
Felly, gallwch chi gadw'r data o gwmpas cyn belled ag y dymunwch.
MHM.
>> GYNULLEIDFA: Allwch chi ddiffinio tomen a simnai?
A ydynt yn hoffi llefydd i roi pethau?
>> SIARADWR 1: Felly, maen nhw'n bôn just-- eu bod yn
y ffordd yr ydym yn cyfeirio yn unig at cof.
Felly domen yn unig yw lleoedd lle cof yn cael ei ddyrannu yn ddeinamig,
tra yn cyfeirio stac mwy i'r golwg fframiau
sy'n fwy canolog i'r swyddogaethau sy'n cael eu rhedeg mewn gwirionedd.
Nid oes mewn gwirionedd gennych reolaeth i chi.
>> Y gwahaniaeth mawr, mae gennych reolaeth dros y domen os ydych yn dymuno.
Mae gennych lai o reolaeth dros y pentwr.
Mae'r stac yn dibynnu ar y swyddogaethau sy'n cael eu rhedeg,
ac ym mha drefn y maent yn rhedeg, a sut mae pethau'n cael eu dychwelyd.
Tra gyda'r domen, fel y byddwn yn gweld, gallwch ddweud,
OK, yr wyf am y gwerth hwn fod yn o gwmpas nes i mi ddweud wrthych yn wahanol.
Nid oes gennych hawl i gael gwared ohono.
Nid ydych yn cael ei ddiystyru.
Rydych yn mynd i gadw o gwmpas am gyhyd ag yr wyf yn dweud wrthych.
Byddwch yn cael i fod yn y bos yn y domen, tra bod y stack-- efallai os ydych yn
fel finagle eich ffordd gallwch fod yn y bos.
Ond nid yn eithaf.
A 'i' 'n sylweddol dim ond cof.
'I' jyst gwahanol ffyrdd o gyfeirio at gof.
>> Cool.
Felly, gyda hynny, sut i rheoli eich cof.
Mae'n gyda malloc, a oedd rydych yn mynd i gael eu defnyddio.
Felly, 'i' ychydig yn brin ar gyfer dyrannu cof.
Dyna'r cyfan y mae.
Mae 'na griw o oer eraill swyddogaethau sydd â alloc ar y diwedd,
ac maent yn sefyll am bethau gwahanol.
>> Felly, pan fyddwch ei angen storio y mae angen i oroesi eich swyddogaeth bresennol fel
bod pan fydd eich presennol swyddogaeth yn rhedeg i ffwrdd,
byddwch yn dal i gael y data y byddwch yn got ohono, ydych am ei ddefnyddio malloc.
Bydd hynny'n ei ymgychwyn ar y domen.
Ac fel y dywedais a chadw gan ddweud, byddwch yn ei gadw yno
hyd nes y byddwch yn dweud ei fod fel arall, sef y peth pwysig yma.
>> Felly, un peth i hysbysiad, ac mae hynny'n bwysig iawn fel arfer,
yw bod hyn sizeof yn super ddefnyddiol i'w ddefnyddio
oherwydd bod yn dibynnu ar y math o beiriant rydych yn rhedeg,
gall fod arno symiau amrywiol o gof ei bod yn cymryd.
Felly, yr ydych bob amser yn awyddus i ddefnyddio maint felly nad ydych yn ddibynnol peiriant,
fel bod eich cod bydd rhedeg ar unrhyw beiriant.
>> A dim ond rhan o ysgrifennu cod da.
Os bydd yn gweithio ar un peiriant, ond nid yw unrhyw un o'r bobl eraill,
pa mor ddefnyddiol oedd eich rhaglen?
Felly, yr ydych bob amser yn awyddus i gwnewch yn siŵr a defnyddio sizeof.
>> GYNULLEIDFA: Felly, yw bod fel yr maint o 10 modfedd [Anghlywadwy]?
>> SIARADWR 1: Mae hyn yn y maint o 10 ints.
yeah.
Felly, bydd maint y ints dychwelyd faint mae un int cymryd.
Neu faint y torgoch, sut llawer yn un cymryd torgoch.
Ac yna faint o flociau o hynny ydych chi eisiau?
>> Felly, yn yr achos hwn, rydym am rywbeth ein bod yn gallu storio 10 o ints i.
A bydd yn gweithio beth bynnag o beiriant, sydd yn oer.
Felly faint o bytes bydd sydd mewn gwirionedd yn rhoi i chi?
Mathemateg Cyflym.
>> GYNULLEIDFA: 40.
SIARADWR 1: 40.
Yn union.
Felly mae peth mawr arall.
Gall Pointer neu malloc dychwelyd null.
>> Felly, unwaith eto, dylech sicrhau bob amser i weld a dychwelodd nwl
cyn i chi geisio gwneud unrhyw beth ag ef.
Os ydych yn ceisio dereference pwyntydd hwn yn awr,
dim ond mae'n mynd i segfault oherwydd eich bod yn mynd ac yn rhoi cynnig
i gyffwrdd null pan na ddylai fod gennych.
Felly, bob amser yn chwilio am null.
Unwaith eto, gall yr holl chi ei wneud.
>> Gallai fod yn dychwelyd null.
Bydd yn dychwelyd null os ydych naill ai allan o le, neu am ba bynnag reswm
ei fod yn rhedeg i mewn i rai bug cof.
Mae weithiau dim ond yn dychwelyd null.
Felly, os oes gen ti i wirio am iddo.
Dyna'r cyfan y sleid hon yn ei ddweud.
Ac yna yr hyn sydd gennym dyma alwad am ddim.
Felly, yn yr un modd, os ydych agor ffeil mae'n rhaid i chi gau ffeil,
os ydych cof malloc, rydych mae'n rhaid i chi am ddim y cof.
A byddwch yn guys yn cael i wneud pethau 'n sylweddol oera.
>> Ac mae rhaglen y gallwch ei redeg i weld a ydych yn byth yn gollwng cof.
Ond nad ydych am i gollwng cof.
Mae'n wirioneddol ddrwg.
Llanast i fyny pethau yn unig.
>> Mae'n ddrwg i wneud yn union fel rhaglennu ddoeth ar gyfer effeithlonrwydd dylunio.
Ond mae hefyd yn jyst fath o wael ar gyfer eich cyfrifiadur.
Pethau felly dim ond am ddim pan fyddwch yn eu malloc.
>> Rydych guys yn gweld y cymesureddau yma.
Super syml.
Dim ond yn rhydd ac yna beth bynnag yw eich pwyntydd,
beth bynnag enw eich pwyntydd yw, ac mae'n
Bydd yn gofalu am ryddhau hynny ar eich rhan.
Cool.
>> Yna, rydym wedi hyn.
Felly, rydym yn jyst yn mynd i cerdded drwy'r rhaglen hon.
Ac yna rydych guys yn cael eu gwneud.
>> Felly [Anghlywadwy] jyst prif.
Felly, mae gennym rai int * pwyntydd.
Felly mae gennym pwyntydd mae hynny'n mynd i ddal ints.
A faint o ints mae'n mynd i ddal?
Dim ond un.
Maint o int.
>> Rydym yn gwirio i weld os pwyntydd yn null oherwydd ei fod yn
yw, yr ydym am ei ddweud peidiwch â gwneud unrhyw beth.
Mae'n ddrwg.
Felly, rydym yn argraffu rhyw wall allan o cof, mae'r rhan fwyaf yn aml yn dychwelyd 1,
wrth i chi guys yn cael eu defnyddio i.
>> Ac yna sydd gennym yma, rydym yn dereference ein pwyntydd.
Felly, mae hynny'n golygu ein bod ni'n mynd i storio rhywbeth yn y lleoliad a roddwyd i ni.
Int * pwyntydd, neu malloc, yn dychwelyd y cyfeiriad o ble y mae'n neilltu hwn
cof ar eich cyfer.
Felly, yn y bôn gan roi i chi os ydych like--
meddwl am griw o tai mewn cymdogaeth
eich bod eisiau rhoi eich mewn dodrefn, malloc
yn debyg iawn, byddwch yn cael i fynd i dŷ tri.
Ac mae'n rhoi i chi y cyfeiriad y tŷ tair.
>> Felly, mae hyn ar hyn o bryd, mae hyn yn siopau pwyntydd cyfeiriad,
storio cyfeiriad eich tŷ.
* Yn golygu ptr, OK, rwy'n yn fy nhŷ.
Cool.
Angen i mi gael rhywfaint o cyfanrif.
>> Felly, rydych yn gofyn am rywun i roi dodrefn i chi nawr.
Felly, byddwch yn cael rhywfaint o int.
Ac mae'n rhoi yn eich pwyntydd ble mae'n pwyntio at.
>> Ac yna 'i jyst printiau allan, aeth chi ble bynnag.
Ac eto, mae'r cyfeiriad.
Felly, mae hyn yn debyg i chi fynd â hyn yn mynd i'r afael a welsoch yr hyn a oedd yno.
Cool?
>> Ac yna, wrth gwrs, rydym yn rhad ac am ddim ar ein pwyntydd.
Peidiwch ag anghofio i ryddhau eich pwyntydd.
Peidiwch ag anghofio i wirio am null.
Peidiwch ag anghofio i ryddhau eich pwyntydd.
Mae gennych ddau beth ydych yn cofio o hyn, neu y dylech gofio.
Ie.
GYNULLEIDFA: [Anghlywadwy] stwff fel 'na, mae'r torgoch * s.
Pa mor byth yn dod i ni am ddim rheini?
>> SIARADWR 1: Hm?
>> GYNULLEIDFA: A yw rhai fel llinynnau?
Dywedasoch llinynnau yn yn union fel torgoch * s, dde?
Felly pam nad ydym am ddim llinynnau?
>> SIARADWR 1: Rydych yn unig i rhad ac am ddim os ydych yn mallocing.
GYNULLEIDFA: O, os ydych yn mallocing.
SIARADWR 1: Felly malloc ac yn rhydd yn ddau beth
y dylech bob amser yn cael ei gilydd.
f ar agor, yn agos f, dau beth Dylai fod gennych gyda'i gilydd.
Yn y ddau yr achosion hynny, gwirio am null.
Ie.
>> GYNULLEIDFA: Felly, rhad ac am ddim yn unig caniatáu rhywbeth arall
i gael eu storio yno ar ôl mae'r rhaglen hon wedi ei ddefnyddio?
>> SIARADWR 1: Mae'n dim ond dweud, OK, dw i'n ei wneud gyda hyn.
Nid oes angen i chi gadw o gwmpas.
Fel arall, bydd eich cyfrifiadur jyst hoffi ceisiwch a'i gadw yno.
Ac yna rydych can't-- mae'n rhedeg i faterion cof yn nes ymlaen.
Rydych chi bob amser yn awyddus i ryddhau oherwydd mae'n dweud wrth eich cyfrifiadur, OK, rwy'n
wneud gyda fan yma o gof.
Gallwch ei gael yn ôl i mi ei ddefnyddio yn nes ymlaen.
Cool?
Ie.
>> GYNULLEIDFA: Felly, yr ydym yn defnyddio y% d yn unig am fod ddwbl sydd wedi dod yn ôl,
neu pam yw-- [Anghlywadwy].
>> GYNULLEIDFA: A allwch chi ddefnyddio% i?
>> SIARADWR 1: Gallwch ddefnyddio% i.
Unrhyw gwestiynau munud olaf?
Mynd yn ei flaen.
GYNULLEIDFA: Fi jyst gwestiwn cyflym.
Felly y newidyn PTR, that's-- fel, gyda'r int * ptr = malloc,
sy'n 'jyst dweud ei fod yn gan dynnu sylw at le yn memory--
SIARADWR 1: Ydych chi am [Anghlywadwy]?
GYNULLEIDFA: --that yw'r maint o- na, mae'n iawn.
Ond mae'n dim ond pwyntio i le mewn cof dyna union fel pedwar bytes.
SIARADWR 1: Iawn.
Felly malloc maint y int yn dweud, OK, yr wyf i'n mynd i fynd i redeg i ffwrdd,
dod o hyd i bedwar bytes o gof i chi.
Pan mae'n darganfod bod pedwar bytes o gof, mae'n
yn rhoi i chi yn ôl y cyfeiriad o ble y bydd yn dechrau,
a dyna beth ei storio mewn pwyntydd, neu ptr.
Da.
Rydych guys yn edrych yn llai dryslyd na'r rhan fwyaf pobl pan fyddaf yn siarad am pwyntydd,
felly rwy'n teimlo'n eithaf da ar hyn o bryd.
>> Mae pob hawl.
Fel bob amser, dylech chi gael yr holl guys gotten eich graddau pset2 erbyn hyn.
Rwy'n gwybod cafwyd rhai wonky pethau lle mae'n dweud, fformiwla nad ddilys
neu rywbeth.
Os ydych yn cael bod, pob un eich graddau yn ddilys ar fy ochr.
Felly, gallaf anfon chi screenshots eich graddau.
Dim ond gadewch i mi wybod yn ogystal os ydych yn colli unrhyw raddau neu rywbeth
nid yw'n ymddangos i wneud synnwyr.
Dod i mi.
>> Rwyf wedi bod yn super falch ohonoch chi guys yn barod, felly cadwch i fyny.
Ac yn gael gorffwys da o'ch wythnos.
Rwy'n siŵr y byddaf yn gweld rhai ohonoch yn oriau swyddfa.