[CHWARAE CERDDORIAETH] DAVID J. Malan: Pob hawl hyn yn CS50 ac mae hyn yn dechrau wythnos bump. Felly heddiw, dan eich clustogau sedd, Ni fyddwch yn dod o hyd i unrhyw beth. Ond yn fwy na, dylech ddod o hyd i hyn, mae ychydig o arwydd o'n gwerthfawrogiad yr holl waith yr ydych yn ei roi i mewn i'r Gêm Fifteen. Yn syml, cael gwared ar y cylch bach ar y gwaelod i ddechrau chwarae ar gyfer y weddill y dosbarth. Felly dwyn i gof bod, neu yn gwybod bod problem a osodwyd pedwar, a aeth allan y penwythnos yma, golygu ysgrifennu gêm arall. Ond y tro hwn mae'n cynnwys defnyddio gwirioneddol rhyngwyneb defnyddiwr graffigol, nid yw rhyngwyneb testunol fel Game of Pymtheg oedd. Ac mae'r gêm sy'n gorwedd o'ch blaen, os nad ydych chi wedi gweld hyd yn hyn nesaf, yn edrych yn rhywbeth bach fel hyn. Rydw i'n mynd i fynd i mewn i fy terfynell ffenestr yma yn GDB. Ac yr wyf i'n mynd i fynd yn ei flaen ac yn rhedeg y ateb staff, y gallwch gael mynediad ar ôl rhedeg diweddariad 50 fel arfer. Ond dw i'n mynd i roi i mewn i ychydig modd dirgel, ychydig o wy Pasg, hyn a elwir yn ddelw Duw, yn ôl rhoi Duw yn argv1. Ac mae'n rhaid i mi ddilyn fy cyfarwyddiadau eu hunain, yn rhedeg yn fy mhen fy hun problem yn gosod cyfeiriadur. Felly, byddwch yn awr yn gweld fersiwn cyflawn y gêm o Breakout. Mewn gwirionedd, mae hyn yn dull dim-dwylo. Felly mae'n mewn gwirionedd - wowed er y gallech fod - eithaf dibwys i weithredu modd Duw yn Breakout, yn wahanol i gêm o Fifteen, y gallai rhai ohonoch wedi mynd i'r afael ar gyfer y rhifyn haciwr. Yn Breakout Mae'n ddigonol yn Nuw modd i wneud dim ond gwneud beth, reddfol â'r olwyn? Dim ond yn ei gwneud yn gyfartal beth bynnag fo'r sefyllfa llorweddol yn y bêl. A chyn belled ag y byddwch yn gwneud hyn yn lockstep gyda'r bêl yn symud y gêm hon yn byth, byth, byth yn colli'r bêl a byddwch yn ennill bob tro. Ond yn y rhifyn haciwr yr wythnos hon mae mwy na dim ond modd Duw. Mae yna nifer o nodweddion eraill. Yn eu plith, laserau. Felly, os ydych yn wir yn mynd yn ddiamynedd i chi gallu dechrau saethu i lawr y brics ac ychydig o rai eraill. Ac i'r rhai ohonoch a hoffai raddnodi safon yn erbyn haciwr argraffiad, gallaf weld bod yr wythnos hon rhifyn haciwr yn fwriadol yn ychydig yn fwy doable, dyweder, na Duw modd oedd gyda Game of Pymtheg. Felly, os ydych yn chwilio am y tro ac ydych yn chwilio am ychydig o hwyl ychwanegol nodweddion yn plymio i mewn os o ddiddordeb. Nawr yn fwy ymarferol, gadewch i mi dynnu sylw allan un peth hefyd. GDB, a oedd efallai na fydd rhai ohonoch chi eto cyffwrdd yn bersonol, sy'n iawn. Ond yn awr yn wir yn yr amser i ddod i arfer i hyn ac yn gyfforddus gyda'r offeryn hwn oherwydd bydd yn gwneud eich bywyd llawer haws, yn wir. Fesul ddarlith Rob ar GDB gwpl o wythnosau yn ôl, dwyn i gof bod GDB yn dadfygiwr. Mae'n offeryn sy'n eich galluogi i redeg eich rhaglen, ond redeg gam wrth gam, llinell gan y lein, er mwyn i chi brocio o gwmpas, er mwyn i chi weld pethau'n digwydd, ac felly y gallwch ei argraffu gwerthoedd y newidynnau. Yn fyr, mae'n rhoi llawer mwy i chi rym na printDef yn ei wneud. Yn awr rhaid cyfaddef, y rhyngwyneb yn eithaf dirgel. Rhyngwyneb du a gwyn testunol ar gyfer y rhan fwyaf. Mae'r gorchmynion braidd yn anodd i'w cofio ar y dechrau. Ond hyd yn oed er y gallai fod yn mynd â chi hanner yr awr, yr awr, i roi'r ymlaen llaw buddsoddi amser i mewn iddo, ymddiried ynof. Yn sicr erbyn diwedd semester a fydd yn arbed eich gorchymyn o faint yn fwy amser na hynny. Felly, yn gynnar yn y plymio wythnos i mewn Ac o ran Breakout, yn gwybod eich bod yn Gellir gwneud hyn ar yr amod bod gennych y cod dosbarthu neu eich cod eich hun ar y gweill yn eich llyfr Pst4. Gwybod y gallwch redeg gdb. / Breakout. Mae hyn yn mynd i agor ffenestr fel hyn. Gadewch i mi roi mwy o fy hun o ffenestr terfynell. Ac yna yr hyn yr wyf i'n mynd i fynd yn ei flaen ac yn ei wneud, mae'n nid yn unig yn rhedeg. Rydw i'n mynd i osod pwynt torri yn gyntaf dwyn i gof, sy'n eich galluogi i oedi gweithredu mewn lle penodol. Dim ond i gadw pethau'n syml rwyf i'n mynd i dorri ar linell un yn unig drwy deipio y rhif un. Gadewch i mi mewn gwirionedd yn ail-agor y ffenestr hon oherwydd ei fod yn cael ychydig bach yno. Felly, yr hyn yr wyf i'n awr yn mynd i'w wneud yma yw os byddaf yn agor fy ffenest terfynell. Dewch ar, dyna ni. Felly, yn awr os byddaf yn mynd yn ôl i Dropbox, Pst4 a rhedeg gdb. / breakout fynd, sylwch Rydw i'n mynd i dorri un i osod pwynt egwyl llinell gyntaf. Ac yn awr yr wyf i'n mynd i fynd ymlaen llaw a math rhedeg. A phan wyf yn ei wneud, yn sylwi dim ymddangos i ddigwydd. Does dim i fyny pop. Does dim graffigol rhyngwyneb defnyddiwr eto. Ond mae hynny'n ddealladwy oherwydd fy mod i'n llythrennol yn y llinell gyntaf yn fy rhaglen. Ac yn sylwi fy mod i wedi eu hanfon ymlaen yn gyflym, yn benodol yn awr i 62, gan fod yr holl y pethau ar ben y ffeil yn pethau fel sylwadau a cysonion a anniddorol pethau ar hyn o bryd. Felly, yn awr yr wyf i'n tu mewn o brif, mae'n ymddangos, yn llinell 62. Ac mae hyn yn unig yw dosbarthiad cod, galw i gof. Os byddaf yn agor hyn drwy fynd, yn yr un modd, i mewn i fy cyfeiriadur blwch gollwng i mewn i Pst4, i mewn i breakout.c. Ac os wyf yn sgroliwch i lawr ac i lawr ac i lawr, a gadewch i mi fynd yn ei flaen ac yn troi ar fy rhifau llinell. Beth 'N annhymerus' gweld, os wyf yn sgroliwch i lawr i llinell 62, yn union y llinell y rydym wedi seibio ar. Felly y llinell yma, 62, yn lle rydym chi ar fin i fod. Felly nawr yn GDB, os wyf yn mynd yn ei flaen a theipiwch awr nesaf, rhowch ei fod yn mynd i gweithredu llinell honno. Ac voila, mae gennym y hyn a elwir yn ffenestr g. Os anghyfarwydd â'r hyn a GWindow yw, i beidio â phoeni. Bydd y fanyleb yn eich cyflwyno i hynny, fel y ogystal â nifer o fideos walkthrough gwreiddio yn y fanyleb. Ond yn awr gadewch i ni wneud hyn yn ychydig yn fwy diddorol. Gadewch i mi symud y ffenestr hon dros i'r ochr ychydig. Gadewch imi wneud y ffenestr ychydig fwy felly gallaf weld mwy. Ac yn awr gadewch i mi fynd yn ei flaen ac yn ei wneud nesaf eto. Ac mae fy brics. Os byddaf yn teipio nesaf eto yn awr yr wyf yn gweld y bêl. Ac os wyf yn teipio nesaf eto yn awr yr wyf yn gweld y Stemars. Ac yn ffodus nid gedit hyn yn wir yn cydweithio drwy ddangos i mi popeth rwyf eisiau. Ond yn awr, os wyf yn ei wneud nesaf eto, nesaf eto, Im 'jyst datgan rhai newidynnau. Ac yr wyf yn gallu argraffu unrhyw un o guys hyn allan. Brics Print, bywydau printiau. Ac yn awr, os byddaf yn parhau i wneud nesaf, sylwch y byddaf yn tu mewn y ddolen. Ond mae'r cod yn mynd i weithredu yn union fel yr wyf yn ei ddisgwyl. Felly, pan fyddaf yn cyrraedd y swyddogaeth hon, Aros am Clic, mae'n mynd i wneud yn llythrennol hynny. Felly, yr wyf yn ymddangos i wedi colli rheolaeth dros y rhaglen. Nid GDB yn rhoi i mi brydlon arall. Ond nid i boeni. Ewch i fy gêm, cliciwch yn rhywle. Ac voila, erbyn hyn mae'n mynd yn ei flaen i linell 86. Felly, unwaith eto, mae'n amhrisiadwy, yn y pen draw, ar gyfer problemau debugging. Oherwydd y gallwch llythrennol gamu trwy eich cod, print pethau allan a llawer, llawer, mwy. Ond am nawr, offer hynny yn unig Dylai fynd â chi 'n bert lawer. Felly, rydym yn, wrth gwrs, yn edrych mewn Graffeg nawr, yn sydyn. Ac yn awr ein byd yn cael ychydig yn fwy diddorol. A ydych yn gwybod, efallai, gan rai o'r fideos ar-lein bod gennym y siorts eich bod wedi bod yn gwylio fel rhan o setiau broblem. Ac maen nhw wedi cael eu saethu, yn fwriadol, yn erbyn cefndir gwyn. Ac mae rhai ohonynt yn cael y dysgu Cymrodyr dynnu rhywfaint o destun ar y sgrîn sy'n ei gorchuddio ar yr ochr iddynt. Ond wrth gwrs, nid yw hyn yn bob un sy'n diddorol yn y byd go iawn. Mae hyn yn unig yw neuadd darlith gyda sgrîn wen fawr a chefndir. Ac mae ein math tîm cynhyrchu anhygoel o wneud popeth yn edrych yn hardd ar ôl y ffaith drwy cnydio allan neu droshaenu unrhyw beth rydym yn ei wneud neu ddim eisiau. Nawr dim ond i gymell yr wythnos hon ac mewn gwirionedd, lle gallwch fynd, yn y pen draw, gyda gwyddoniaeth gyfrifiadurol. Nid dim ond ar ôl problem gosod pedwar. Ond ar ôl cwrs arall neu cyfan cwricwlwm mae'n syndod beth allwch wneud y dyddiau hyn o ran graffeg yn arbennig. Efallai y bydd rhai ohonoch wedi gweld y llifo o amgylch ar-lein. Ond yr wyf yn meddwl y byddwn yn dangos i chi, am ddim ond ychydig o funudau, cipolwg o'r hyn technoleg gyfrifiadurol a pha CGI, Gall graffeg gyfrifiadurol wneud y dyddiau hyn gyda chân gyfarwydd ac efallai ffilm. [CERDDORIAETH - Lana DEL RAY, "IFANC A hardd] SIARADWR 1: Mae'n ychydig bach anhygoel, efallai, pa mor hollbresennol - [Cymeradwyaeth] SIARADWR 1: Fi jyst ei lwytho. Ond mae'n wirioneddol anhygoel, yr wyf yn credu, dim ond sut mae meddalwedd hollbresennol a chod a offer fel hyn mewn gwirionedd. Felly dyna flas o'r cyfeiriad y gallwch fynd. O, dim mwy Appliance heddiw. Wel, dyna amseru mewn gwirionedd yn drasig o ystyried y pwynt Fi jyst yn ceisio gwneud. Mae pob hawl, felly gadewch i ni lansio Fusion eto. Atgoffwch mi yn ddiweddarach. Mae pob hawl, a dylech fod wedi got an e-bost fel neilltu pe baech yn gwneud yn cael rhybudd fel 'na. Mae pob hawl, fel dwyn i gof bod yr wythnos diwethaf rydym yn dechrau croen yn ôl y a elwir yn ddiweddarach fel llinyn. llinyn cofio math data sy'n datgan yn y llyfrgell CS50. Ac mae'n rhan o'r olwynion hyfforddiant fydd yn awr yn dechrau cymryd i ffwrdd. Roedd yn gysyniad defnyddiol yn gynnar. Ond yn awr mae'n mynd i gael mwy o diddorol ac yn fwy pwerus i mewn gwirionedd yn gweld bod o dan y cwfl, llinyn yn unig yw hyn, gwnaethom ddweud? Yeah, felly mae'n hyn a elwir yn torgoch *. A'r * mae yn dynodi fod yna rhyw fath o gyfeiriad dan sylw. Ac felly pan fyddwch yn dweud torgoch * 'ch jyst yn golygu newidyn y mae ei ddata fath yn pwyntydd awr. Mae'r ffaith fod yna y seren yno yn unig yn golygu eich bod yn datgan hyn a elwir yn pwyntydd. A bod pwyntydd yn mynd i ymddangos yn storio cyfeiriad, o gwrs, torgoch. Nawr, pam mae hyn yn gwneud synnwyr? Wel, beth yw llinyn o dan y cwfl? Wel, ers peth amser rydym wedi bod yn ei ddweud bod llinyn o dan y cwfl yn dim ond h-e-l-l-o, er enghraifft. Ond rydym wedi siarad am hyn sef, yn y bôn, arae. Ac y byddai amrywiaeth yna edrych ychydig mwy fel hyn, gyda phob un o'r rhain ymgymryd â brathu. Ac yna rydym wedi dweud fod yna rhywbeth arbennig yn ôl yma, y slaes 0, neu terminator null. Felly yr holl amser hwn, mae hyn yn fan wedi bod yn llinyn. Ond mewn gwirionedd, mae llinyn yn mewn gwirionedd cyfeiriad. A chyfeiriadau, fel y byddwn yn gweld, yn aml yn rhagddodi â 0x ôl confensiwn. Beth mae 0x dynodi? Oes rhywun yn gwybod? Felly, 'i jyst yn golygu hecsadegol. Felly efallai y byddwch yn cofio, mewn gwirionedd, o pst 1, yr wyf yn credu, un o'r cynhesu cwestiynau a ofynnir mewn gwirionedd am nodiant hecsadegol yn ogystal â deuaidd ac degol. A'r cymhelliant yma yw bod gyda hecsadegol gennych 16 digidau ar gael i chi. 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, ac yna gan a, b, c, d, e, f. Ac os ydych yn cyfrif pob un hyd, byddwch yn cael cyfanswm o 16. Felly, mae hyn yn cyferbynnu â degol, lle mae gennym 10 digid, 0 drwy naw. Mae yn wahanol i deuaidd lle rydym yn unig wedi 0 ac 1. Ond ar ddiwedd y dydd y gallwch dim ond cynrychioli'r un rhifau, ond ychydig yn wahanol. Ac hecsadegol yn gyffredin oherwydd fel y mae'n troi allan - a byddwn yn gweld hyn ddiweddarach yn y cwrs - hyd yn oed pan fyddwn yn cael i raglenni ar y we yng nghyd-destun HTML a chodau lliw, hecsadegol yn braf. Gan fod pob digid, yn troi allan, yn cynrychioli pedwar darnau berffaith. Felly, 'i jyst fath o linellau i fyny' n glws fel y byddwn yn gweld yn y pen draw. Felly, gallai hyn fod Ox123 neu rywbeth fel 'na, cyfeiriad dynodi 123 rhywle y tu mewn o fy cof cyfrifiadur. Ond wrth gwrs, mae rhai problemau'n codi oherwydd hyn sylfaenol gweithredu. Ac yn cofio imi gymryd drywanu yn gweithredu swyddogaeth fel hyn - cymharu dash 0 dot c yr wythnos diwethaf, hyd yn oed er ei fod yn edrych fel ei fod yn iawn, mae'n nid yn unig yn cymharu'n dau llinynnau yn gywir. Rydw i wedi taflu i ffwrdd prif, ac rydw i wedi taflu gwared ar y sylwadau yn unig i ganolbwyntio ar y cod sydd o ddiddordeb yma. Ac mae'n mewn coch oherwydd ei fod yn bygi. Am ba reswm? Wel, ar y brig yno pan fyddaf yn datgan llinyn, beth oedd yn digwydd mewn gwirionedd o dan y cwfl? Wel, gadewch i mi fynd draw i'r sgrinio yma ac yn tynnu hynny. Felly yr wyf yn datgan, unwaith eto, llinyn s GetString. Felly, yr wyf i'n mynd i fynd yn ei flaen yn awr ac tynnu s am yr hyn y mae mewn gwirionedd. Mae'n mynd i fod yn sgwâr yma. Ac yr wyf i'n mynd i wneud cais bod yn 32 ddarnau. O leiaf mae fel arfer yw, o leiaf ar yr CS50 offer mewn llawer o gyfrifiaduron. Rydw i'n mynd i alw s. Ond yn awr yn cofio ein bod yn Gelwir GetString. Ffurflenni Felly GetString, wrth gwrs, a llinyn. Os yw'r mathau o ddefnyddwyr yn h-e-l-l-o fynd i mewn y llinyn hello gael ei ddychwelyd. A bod llinyn, fel yr ydym newydd ei ddweud, yn dod i ben i fyny yn rhywle er cof eich cyfrifiadur gyda slaes 0 ar y diwedd. 'N annhymerus' dynnu hyn fel y rhesi - neu bloc cyfagos o gymeriadau - ei fod mewn gwirionedd. Ac yn awr, yr hyn sy'n GetString mewn gwirionedd yn dychwelyd? Beth sydd wedi GetString bod yn dychwelyd i gyd y tro hwn? Wel, yr ydym yn dweud, mewn wythnosau blaenorol, mae'n dychwelyd llinyn. Ond yn fwy technegol, beth mae GetString dychwelyd yn ôl pob golwg? GYNULLEIDFA: Mae cyfeiriad. SIARADWR 1: Mae cyfeiriad. Yn benodol, mae'n dychwelyd y cyfeiriad y cynnig cyntaf iawn, beth bynnag ydyw. Fi jyst cadw defnyddio un, dau, tri oherwydd ei fod yn gyfleus. Mae'n dychwelyd y cyfeiriad y cyntaf gymeriad yn y llinyn. Ac rydym yn dweud yr wythnos diwethaf fod sy'n ddigonol. Oherwydd y gall rydym bob amser yn chyfrif i maes lle ddiwedd y llinyn yn unig gan ailadrodd drosto, efallai, gyda dros dolen neu ddolen gyfnod, neu rywbeth tebyg hynny, dim ond yn edrych am "slaes 0", cymeriad sentinel arbennig. Ac yna rydym yn gwybod bod y llinyn yn digwydd i fod o hyd - yn yr achos hwn - bump. Felly dechnegol beth GetString wneud yw dychwelyd Ox123 yn yr achos hwn. Ac yn dechnegol beth sy'n digwydd wedyn yw ein bod yn storio, tu mewn s, Ox123. Ar ddiwedd y dydd, er bod hyn yn gysyniad newydd, awgrymiadau, maen nhw'n dim ond newidynnau. Ond maent yn digwydd i storio darnau sy'n gyda'i gilydd yn cynrychioli cyfeiriad. Felly dechnegol popeth o fewn eu cael storio yn s yn Ox123. Ond yr ydym ni fel bodau dynol - gan gynnwys heddiw ymlaen - ddim wir yn mynd i ofal, yn nodweddiadol, beth y cyfeiriad ei hun yn o rai darn o gof. Dim ond at lefel isel o fanylion i yn ddeallusol ddiddorol. Felly, yr wyf i'n mynd i ddadwneud hyn. Ac yn hytrach, lefel fwy uchel, dywedwch pan fyddwn yn sôn am awgrymiadau Rydw i'n mynd i dim ond tynnu mwy arrow hawdd ei ddefnyddio sy'n cyfleu un syniad a chrynodebau i ffwrdd y manylion o'r hyn y mae'r gwir cyfeiriad sylfaenol yw. Nawr, os ydym yn mynd yn ôl at y cod, beth ddigwyddodd yr wythnos diwethaf os oes gennym llinyn t yn dychwelyd GetString? Wel, os wyf unwaith eto, teipiwch helo cyfnod hwn yr wyf i'n mynd i gael darn arall o gof. h-e-l-l-o slaes 0. Ond gan fy mod yn galw GetString yr ail waith - ac yr wyf yn gwybod hyn o edrych ar y cod ffynhonnell ar gyfer GetString - hyd yn oed er ei fod yn cyd-ddigwyddiad bod helo oedd teipio ddwywaith, nid yw GetString mynd i geisio i wneud y gorau a bod yn glyfar. Mae'n jyst yn mynd i gael darn arall o cof gan y cyfrifiadur, sy'n mynd i fod mewn cyfeiriad arall. Gadewch i ni ddweud fympwyol 456. Ac yna beth y mae'n mynd i ddychwelyd? Mae'n mynd i ddychwelyd 456 ac yn ei storio mewn t. Felly, beth sy'n digwydd mewn gwirionedd, ar y ochr chwith yw gennyf darn arall o gof, 32 darnau fel arfer. Ac yno yn mynd i fynd Ox456. Ond unwaith eto, dydw i ddim diddordeb yn y rhifau penodol anymore. Im 'jyst yn mynd i haniaethol dynnu fel saeth. Felly, mae hwn bellach yn esboniad newydd. Ond yr un peth union syniad sy'n bod yn digwydd yr holl amser hwn. Ac felly y rheswm yna, bod hyn yn gyntaf fersiwn cymharu yn bygi yr wythnos diwethaf yw pam? Pan fyddwch yn ei wneud os s yn hafal hafal i t beth ydych yn wir o dan y cwfl cymharu? Rydych yn cymharu'r cyfeiriadau. A dim ond yn reddfol, yn amlwg, Ox123 yn mynd i gyfartal Ox456. Niferoedd hynny, darnau hynny yn unig yn wahanol. Ac felly yn gyson, yr wythnos diwethaf dywedodd chi deipio pethau gwahanol, hyd yn oed os yw'r geiriau yn air am air yr un fath. Felly, rydym yn atgyweiria hon. Yn nhermau lleygwr, beth oedd y atgyweiria? GYNULLEIDFA: Defnyddiwch swyddogaeth. SIARADWR 1: Defnyddiwch swyddogaeth. Neu sêr yn cael eu cynnwys yn bendant, ond defnyddiwch swyddogaeth i wneud beth? GYNULLEIDFA: Er mwyn cymharu llinynnau. SIARADWR 1: I gymharu y tannau. Felly, y broblem sylfaenol yma oedd fy mod yn unig oedd yn ystyried y ansawdd o linynnau gael eu diffinio gan cymharu eu cyfeiriadau. Ac yn amlwg bod yn unig fud yn awr unwaith eich bod yn deall yr hyn sy'n mynd ymlaen o dan y cwfl. I wirioneddol cymharu llinynnau i weld a oes eu bod yn gyfartal yn y ffordd y bydd pobl yn ystyried dau llinynnau yn gyfartal mae angen i ni eu cymharu cymeriad cymeriad cymeriad. Nawr gallwn fod wedi gwneud hyn tediously iawn. Ond cyfarwydd, rydym yn defnyddio ar gyfer dolen. A dim ond cymharu s braced i yn erbyn t braced i. s braced i ac 1 yn erbyn t braced i ac 1, ac yn y blaen, y tu mewn rhyw fath o ddolen. Ac os byddaf yn sylwi ar unrhyw ddau gymeriad sy'n wahanol, neu os wyf yn sylweddoli bod www, yw fyrrach na t neu'n hwy na t Gallaf ddweud yn syth ffug, dydyn nhw ddim yr un fath. Ond os ydw i'n cael drwy s a t a dweud yr un, yr un, yr un, yr un, yr un, diwedd y ddau llinynnau, gallaf ddweud yn wir, maent yn gyfartal. Wel, diolch i'r drefn, flynyddoedd yn ôl rywun Ysgrifennodd y cod hwnnw i ni. A hwy a alwasant ei StrComp ar gyfer pedwarawd llinynnol cymharu. A hyd yn oed er ei fod yn ychydig cownter 'n athrylithgar, StrComp yn dychwelyd 0 os yw'r dau llinynnau, s a t yr un fath. Ond mae'n dychwelyd gwerth negyddol os yw Dylai ddod o flaen t yn nhrefn yr wyddor neu werth cadarnhaol os ddylai ddod ar ôl t yn nhrefn yr wyddor. Felly, os ydych chi erioed wedi eisiau i ddatrys rhywbeth, mae'n troi allan bod StrComp yn ddefnyddiol. Oherwydd nad yw'n dweud ie neu na, gyfartal neu beidio. Mae'n rhoi ymdeimlad o archebu i chi hoffi grym geiriadur. Felly StrComp, s coma t yn dychwelyd yn hafal i 0 yn golygu bod y llinynnau yn wirioneddol gyfartal. Oherwydd pwy bynnag ysgrifennodd swyddogaeth hon flynyddoedd yn ôl pob tebyg yn defnyddio ar gyfer dolen neu ddolen gyfnod, neu rywbeth fel 'na i integreiddio dros y cymeriadau eto ac eto ac eto. Ond cododd dwy broblem yma. Roedd hyn yn copy0.c. Ac mae'r ddau mewn coch yn oherwydd ei fod yn ddiffygiol. A beth wnaeth rydym yn ei wneud yma? Wel, yn gyntaf galwais GetString. Ac yr wyf yn storio gwerth ddychwelyd yn s. Felly dyna 'n bert lawer yr un fath ag y rhan uchaf y llun. Ond beth sy'n dod ar ôl hynny? Wel, gadewch i mi fynd yn ei flaen a chael gwared o criw cyfan o hyn. Byddwn yn ailddirwyn mewn pryd i ble rydym yn unig gael s, sydd bellach yn gyson â Llinell un i fyny yno. Rwy'n gwirio. Os s hafal dychwelyd 0. Yn awr, mae nodyn ochr cyflym, pan Gallai GetString dychwelyd 0? Nid oes digon o gof. Iawn? Mae'n brin bod hyn yn mynd i ddigwydd, yn sicr ar gyfrifiadur sy'n cael cannoedd o megs neu hyd yn oed gigs o RAM. Ond gallai fod, mewn theori, yn dychwelyd 0, yn enwedig os yw'r Nid yw'r defnyddiwr yn cydweithredu. Mae ffyrdd o esgus fel nad ydych wedi unrhyw beth fewnbynnu a tric GetString i ddychwelyd 0 yn effeithiol. Felly, mae'n mynd i wirio am hynny. Oherwydd os unrhyw un ohonoch wedi dechrau gael, yn barod, diffygion segmentu - yn ôl pob tebyg sydd wedi bod yn ffynhonnell o rai rhwystredigaeth - hynny yn bron bob amser yn y canlyniad o wall-gysylltiedig â'r cof. Rhywsut ydych cyboledig i fyny gyda sylw i pwyntydd, hyd yn oed os nad ydych yn sylweddoli roedd pwyntydd. Felly, efallai y byddwch wedi ysgogi segmentu diffygion mor gynnar â'r wythnos un yn defnyddio rhywbeth fel dolen neu am gyfnod dolen ac amrywiaeth drwy fynd yn rhy bell heibio i'r ffiniau rhai o'r amrywiaeth sy'n eich datgan, mewn wythnos dau yn penodol. Efallai eich bod wedi gwneud hynny hyd yn oed problem gosod pedwar gyda Breakout. Hyd yn oed er nad ydych yn ôl pob tebyg wedi gweld unrhyw sêr yn y cod dosbarthu ar gyfer Breakout, mae'n troi allan bod y rhai GRect a GOval a phethau eraill o'r fath, y rhai mewn gwirionedd awgrymiadau o dan y cwfl. Ond Stanford, fel ni, math o guddfannau sy'n rhoi manylion o leiaf ar gyfer y llyfrgelloedd dibenion, yn debyg iawn rydym yn ei wneud ar gyfer llinyn a torgoch *. Ond GRect a GOval ac i bawb Bydd pethau rydych guys yn cael neu yn defnyddio yr wythnos hon yn y pen draw cyfeiriadau cof. Dim ond nad ydych yn ei wybod. Felly, nid yw'n syndod felly, efallai, eich bod efallai daith dros rai diffygion segmentu. Ond yr hyn sy'n ddiddorol yma'n awr, os ar ôl i ni edrych am 0 rydym yn ei wneud llinyn t yn cael s. Wel, gadewch i mi ddatgan t. Rydw i'n mynd i dynnu fel sgwâr, 32 darnau, ei alw'n t. Ac yna yr wyf i'n mynd i wneud yn cael s. Wel, beth mae hynny'n ei olygu? Wel, mae'n ychydig yn anodd meddwl am y peth llun ddoeth. Ond gadewch i ni feddwl am beth sydd tu mewn x? Beth sydd llythrennol tu mewn newidyn hwn? Mae'r Ox123 gwerth. Felly, pan fyddaf yn dweud llinyn t yn cael s, mai dim ond llythrennol yn golygu cymryd y nifer yn s, sef Ox123 a'i roi Ox123. Neu ar ffurf lluniau, os wyf yn fath o haniaethol i ffwrdd oddi wrth y manylion ganddo'r effaith o wneud llythrennol hyn hefyd. Felly nawr, meddwl yn ôl at yr wythnos diwethaf pan rydym yn ei flaen i cyfalafol T. I gwnaeth T braced 0. Wel, T braced 0, hyd yn oed er ei fod yn pwyntydd, gallwch ei drin fel pe ei fod yn amrywiaeth, gyda sgwâr nodiant braced. Felly, lle mae T braced 0? Wel, mae'n yr h. Ac felly pan fyddwn yn defnyddio'r llinell o god, dau uchaf, sydd yn y c type.h ffeil flaen, dyna lle mae'n datgan. Rydych yn manteisio hwn H. Ond o gwrs, dyna'r un peth union h sy'n tu mewn, felly i siarad. Ac felly yn awr yr ydych wedi newid neu cyfalafu y gwreiddiol a'r hyn a elwir copi. Oherwydd nad ydych yn gwneud copi yn y modd ag y byddai pobl yn dymuno iddo fod. Felly beth oedd y atgyweiria yma, yn copy1.c yr wythnos diwethaf? Swyddogaethau, felly gallem mewn gwirionedd copi y llinyn. Ac yn y bôn, yr hyn y mae angen i ni wneud er mwyn i gopïo y llinyn? Wel, yn y fersiwn gwyrdd yma rwy'n mynd i'w wneud lefel weddol isel. Mae yna mewn gwirionedd yn swyddogaethau gallent helpu gyda hyn. Ond yr un mwyaf sylfaenol, ac mae'r rhan fwyaf o un cyfarwydd, o leiaf, yn fuan yn gyfarwydd i ni, yn y canlynol - felly un ar y llinell gyntaf o god mewn gwyrdd awr. Fi jyst rewrote s fel y torgoch *. Does dim swyddogaethol gwahaniaeth yno. Fi jyst daflu i ffwrdd y llyfrgell CS50 ac Rwy'n galw ei beth ydyw, cols yn *. Nawr dot, dot, dot, oherwydd bod ychydig o wirio wall nad yw hynny'n ddiddorol i siarad am eto. Felly nawr t yn cael ei ddatgan. Mae hefyd yn torgoch yn *. Felly, yr wyf yn tynnu ychydig o sgwâr ar y sgrin fel o'r blaen. Ond ar yr ochr dde, malloc, rydym yn ei ddweud yw dyrannu cof. Felly dyrannu rhai darn o gof. A faint o bytes ydym mewn gwirionedd am ddyrannu, a yw'n ymddangos? Wel, hyd cyfres o s. Felly, os yw'n helo dyna mynd i fod yn bump oed. Byddwn yn dweud h-e-l-l-o. Felly pum bytes. Ond yna ynghyd ag 1, pam 1? Mae'r 0 cymeriad. Os nad ydym yn gadael lle i y boi rydym Efallai ddamweiniol yn creu sefyllfa lle mae'r llinyn yn h-e-l-l-o. Ac yna y GetString tro nesaf alw ac yr wyf deipio i mewn, er enghraifft, David, D-a-v-i-d, y cyfrifiadur yn mynd i feddwl ei fod ef mewn gwirionedd h-e-l-l-o-d-a-v-i-d oherwydd bod dim dorri i mewn rhwng y geiriau hynny. Felly mae angen bod egwyl. Felly, nid ydym am bump. Rydym am chwe bytes. Ac bytes rwy'n ei ddweud. Ond mae'n maint iawn amser torgoch. Yn dechnegol torgoch bron bob amser yn beit sengl. Ond dim ond er mwyn gwneud ein cod cludadwy, fel petai, fel ei fod yn gweithio ar gwahanol gyfrifiaduron, hyd yn oed os y gallent ychydig yn wahanol o dan y cwfl, yr wyf i'n mynd i generig dweud faint o torgoch fel y fy cod bob amser yn gweithio. Ac nid oes rhaid i mi ail-grynhoi 'i jyst yn oherwydd fy mod yn uwchraddio fy cyfrifiadur neu ddefnyddio rhai llwyfan gwahanol. Felly, yr wyf wedi cael 6 gwaith maint golosg, sy'n digwydd i fod yn 1. Felly, gallai fod yn golygu malloc roi chwe bytes mi. Beth yw bod yn ei wneud mewn gwirionedd? Wel, gadewch i mi rholio yn ôl mewn amser yma i ble yr ydym yn y stori. Felly os wyf yn mynd yn ôl yma, yr wyf wedi datgan torgoch a elwir yn * t. Yr wyf yn awr wedi galw malloc am chwe bytes. Ac yn awr yr wyf i'n mynd i dynnu chwech y rhai bytes yn union fel y casgliad yn gynharach. Ond nid wyf mewn gwirionedd yn gwybod beth sydd y tu mewn amrywiaeth hwn. Os ydych yn dyrannu cof mae'n troi allan bod nad ydych yn gallu ymddiried y mae rhywfaint o werth hysbys yno. Gallai fod wedi cael eu defnyddio gan rywbeth arall, mae rhai swyddogaeth arall, mae rhai eraill llinell o god eich bod wedi ysgrifennu. Felly, byddwn yn gyffredinol yn galw'r rhain yn garbage gwerthoedd ac yn tynnu nhw, efallai, fel marciau cwestiwn, dim ond dangos ein bod yn ddim yn gwybod beth sydd mewn gwirionedd yno. A dyna dim llawer mawr cyn belled ag y yn ddigon craff i ysgrifennu dros y rhai gwerthoedd garbage gyda rhifau neu chars yr ydym yn gofalu amdanynt. Felly, yn yr achos hwn, beth ydw i'n mynd i'w wneud? Wel, y cod fy llinell o nesaf, yr wyf wedi pedwar. int fi gael 0, n cael y hyd cyfres o s. Felly cyfarwydd ar gyfer dolen. I yn llai na neu'n hafal i n, sydd fel arfer yn uwch. Ond y tro hwn ei fod yn fwriadol. I + +, ac yna yr wyf yn syml yn gwneud t braced i cael s. Oherwydd bod fy llun yn edrych fel hyn ar hyn o bryd, ei storio mewn t yw'r gyfeiriad y darn ar hap o cof gwerthoedd y mae eu yn hysbys. Ond cyn gynted ag yr wyf yn ei wneud t braced 0 sy'n fy rhoi yma. A beth yn dod i ben hyd yn cael eu denu yno? Rydym yn y pen draw'n gwneud i h. Oherwydd dyna beth sydd yn y s braced 0. Ac yna yr un peth ar gyfer e, ac yn l, a l, ac o. n, pam wnes i mynd i fyny drwy cyfartal i n? Oherwydd y 0 cymeriad. Felly, dim ond i fod yn glir, yna, os wyf mewn gwirionedd yn dileu beth bynnag y garbage gwerthoedd ac yna tynnu mewn gwirionedd hyn yr wyf yn ei ddisgwyl, mae hyn yn s braced 1, 2, 3, 4, yn ogystal â bod wedi llusgo chymeriad newydd. Ac felly yn awr os ydym yn parhau heibio i'r dot, dot, dot yn y fersiwn cywir a t cyfalafu braced 0 byddwn, o gwrs, yn cael eu manteisio dim ond y guy yma, sydd yn gysyniadol, yn y pen draw, y nod. Felly dyna i gyd y pwyntydd yn. A ydych wedi bod yn eu defnyddio am wythnosau erbyn hyn yng nghyd-destun llinynnau. Ond o dan y cwfl eu bod yn ychydig yn fwy cymhleth. Ond os ydych yn meddwl amdanynt yn y ffurf ddarluniadol Cynigiaf fod eu bod yn yn ôl pob tebyg nid bob un sy'n frawychus fel y maent yn allai ymddangos yn gyntaf ar yr olwg gyntaf, yn enwedig o gystrawen newydd o'r fath. Unrhyw gwestiynau am awgrymiadau, llinynnau, neu chars? Yeah? GYNULLEIDFA: Allwch chi fynd yn ôl i'r [Anghlywadwy]? SIARADWR 1: Cadarn. GYNULLEIDFA: Felly sut yn dod yn eich olaf llinell, nad oes gennych linell t * a * s yn y llinell? Nid oes gennych y cyfeiriad at - SIARADWR 1: Ah, cwestiwn da iawn. Pam nad oes gen i * t a * s? Gan fod yn fyr, yr wythnos diwethaf, fel yn ein cyfnewid swyddogaeth, i ddim yn dweud bod pan gennych pwyntydd modd y yr ydych yn mynd yno fel y gwnaethom yn gorfforol ar y llwyfan, oedd mewn gwirionedd defnyddio'r gweithredwr seren. Mae'n ymddangos bod hyn yn sgwâr-braced nodiant yw'r hyn byddwn yn galw cystrawennol siwgr, sydd ychydig yn ffordd sexy o gan ddweud ei fod yn nodiant llaw-fer ar gyfer yn union yr hyn yr ydych yn disgrifio. Ond mae'n ychydig yn fwy 'n athrylithgar. Ac ar y perygl o wneud hyn yn ymddangos yn fwy cymhleth nag y mae angen iddo fod, beth sy'n digwydd mewn gwirionedd yma yw'r canlynol - Os wyf yn dweud * t sy'n golygu mynd i y cyfeiriad storio mewn t. Felly, yn llythrennol, os t yn storio y cyfeiriad hwnnw h i ddechrau, * yn golygu t ewch yma. Nawr, beth mae t braced 0 yn ei olygu? Union beth un fath. Dim ond ychydig yn fwy defnyddiwr gyfeillgar i ysgrifennu. Ond dydw i ddim yn ei wneud eto. Ni allaf ddweud * t yn cael * s. Oherwydd yr hyn y byddwn yn ei wneud felly? Byddwn yn rhoi h, h, h, h, h drwy gydol yr holl beth. Iawn? Oherwydd * t yn mynd i'r cyfeiriad yn y t. Ond rydym yn tu mewn i ddolen. A beth gwerth ydw i'n incrementing, wrth gwrs, ar bob fersiwn? i. Ond mae 'na gyfle yma, dde? Er bod hwn yn teimlo fel ei fod yn cael ychydig yn fwy soffistigedig na'r nodiant sgwâr-braced rydym wedi defnyddio ers peth amser - gadewch i mi newid fy dadwneud h yno - er bod hyn yn awr yn cael ychydig yn ffansi, y syniad sylfaenol, os * t yn golygu yma ac * t yn unig mynd i'r cyfeiriad yn y t. Ond beth oedd y cyfeiriad yn t? Mae nifer yn cadw defnyddio? Fel Ox456, gadewch i ni ddod â hynny yn ôl dim ond er mwyn y drafodaeth. Wel, os wyf am i gyrraedd y e yn t llinyn, Fi jyst eisiau mynd i, yn y bôn, 456. Neu yn hytrach, 457. Fi jyst angen i ychwanegu un. Ond gallaf wneud hynny, dde? Oherwydd t, hyd yn oed er fy mod yn cadw tynnu yn awr fel saeth, dim ond yn rhif, Ox456. Ac os ydw i'n ychwanegu un at hynny, neu fwy yn gyffredinol, os wyf yn ychwanegu i mi y gallaf mewn gwirionedd yn cael yn union ble rwyf eisiau. Felly os wyf yn ei wneud mewn gwirionedd hyn - ac mae hyn yn beth a elwir bellach yn rhifyddeg pwyntydd - I gael gwared ar y llinell hon. Pa un yw, dweud y gwir, yr wyf yn meddwl yn gliriach ac gyfeillgar ychydig mwy o ddefnyddwyr i ddarllen. Ond nid yw hyn yn llai cywir. Mae'r llinell o god bellach yn defnyddio rhifyddeg pwyntydd. Mae'n dweud yn mynd i'r yn dilyn cyfeiriad - beth bynnag dechrau t yw, pa yn t yn ogystal i, sydd i ddechrau yn 0, sy'n wych. Oherwydd bod hynny'n golygu dechrau t ynghyd ag 1, a 2, a 3, ac yn y blaen. Ac mae'r un peth yn delio â s. Felly siwgr cystrawennol ar gyfer hyn. Ond deall yr hyn sy'n digwydd mewn gwirionedd o dan y cwfl, byddwn yn dadlau, mewn gwirionedd yn ddefnyddiol mewn ac o ei hun. Oherwydd ei fod yn golygu yn awr nid oes llawer mwy o hud yn mynd ymlaen o dan y cwfl. Nid oes yn mynd i fod yn llawer mwy haenau y gallwn croen yn ôl i chi. Mae hyn yn c. Ac mae hyn yn cael ei rhaglennu. Cwestiwn da iawn. Mae pob hawl, felly roedd hwn yn y bygi rhaglen oeddwn yn cyfeirio ato yn gynharach. cyfnewid yn ddiffygiol. Os oedd yn ymddangos i weithio. Dwyn i gof bod yn union fel gyda'r llaeth a y sudd oren - yr wyf yn dechrau yfed arddangos heddiw. Felly, yn union fel yn achos y sudd ac oren y llaeth, oedd rhaid i ni ddefnyddio amrywio dros dro, tmp, i gynnal dros dro fel y gallem wedyn newid ei werth ac yna diweddaru b. Ond y swyddogaeth hon, dywedasom, neu hyn yn rhaglen lle swyddogaeth hon yn ysgrifenedig yn anghywir ac yn ddiffygiol, pam? Ie? GYNULLEIDFA: [Anghlywadwy]. SIARADWR 1: Yn union, pan byddwch yn ffonio cyfnewid - neu yn fwy cyffredinol, pan fyddwch yn alw rhan fwyaf o unrhyw swyddogaeth - os bydd y dadleuon i swyddogaeth honno yn cyntefig, fel petai, ints a chars a dyblau a fflotiau, pethau heb sêr, rydych yn pasio copi o y ddadl. Felly os oedd 1 x ac y yn 2, mae yn mynd i fod yn 1 a b yn mynd i fod yn 2. Ond maen nhw'n mynd i fod yn wahanol darnau o ddarnau, darnau gwahanol o cof sy'n digwydd i gael ei storio gwerthoedd union yr un fath. Felly, y cod yn super perffaith ar gyfnewid a a b. Mae'n dda i ddim am gyfnewid - yn yr enghraifft yr wythnos diwethaf - x ac y. Oherwydd unwaith eto, maent yn yn y cwmpas anghywir. Nawr, sut oedd yn mynd ati i osod hyn? Bu'n rhaid i ni wneud y swyddogaeth edrych ychydig yn uglier. Ond unwaith eto, ystyried pa mae hyn yn unig yn golygu. Ac mewn gwirionedd, gadewch i mi, er cysondeb, newid un peth felly mae'n union yr un fath beth yn union a wnaethom. Fel y soniais yr wythnos diwethaf, nid yw'n waeth ble y mae'n mynd. Yn wir, fel arfer byddech yn rhoi'r seren nesaf at yr enw amrywiol. Ond yr wyf yn credu y byddai'n ychydig yn haws i ystyried y * wrth ymyl y math data i olygu ei fod yn pwyntydd i int yn yr achos hwn. Felly, beth ydw i'n ei wneud yma? I ddim yn dweud peidiwch â rhoi int i mi ddilyn gan int arall, iddynt a b galw. Rhowch gyfeiriad o int mi. Rhowch y cyfeiriad y int arall i mi. Ffoniwch y rhai yn mynd i'r afael a a b. Ac yna defnyddio'r nodiant i lawr * isod, ewch i bob un o'r cyfeiriadau hynny yn ôl yr angen i naill ai gael neu gosod ei werth. Ond mae eithriad yma. Pam nad oes gen i * nesaf i tmp? Pam nad ydw i'n gwneud hyn, er enghraifft? Mae'n teimlo fel dylwn i jyst yn mynd yr holl allan a chywiro yr holl beth. Yeah? GYNULLEIDFA: [Anghlywadwy]. SIARADWR 1: Nid wyf wedi datgan tmp fel llinyn. Felly, byddai hyn yn datgan, yn yr achos hwn, a tmp i fod yn y cyfeiriad o int. Ond nid yw hynny'n hollol yr hyn yr wyf am ei gael, am ychydig o resymau. GYNULLEIDFA: Nid ydych am i gyfnewid eu cyfer. SIARADWR 1: Yn union, nid wyf am i gyfnewid unrhyw beth sydd â tmp. tmp yn unig wythnos-un pethau. Y cyfan yr wyf eisiau yw newidyn i storio rhywfaint rhif. Dydw i ddim hyd yn oed yn poeni am gyfeiriadau ar hyn o bryd. Fi jyst angen 32 o ddarnau neu felly er mwyn storio yn int. Ac yr wyf am roi yn y rhai 32 darnau Nid beth bynnag sydd mewn, fel petai, ond yr hyn sydd ar, dim ond i fod yn fwy manwl gywir. Oherwydd os yw yn gyfeiriad, * yn golygu mynd yno a chael y gwerth 1. Er enghraifft, yn yr enghraifft yr wythnos diwethaf neu b yn achos, yn cael y gwerth 2. Felly, beth sy'n digwydd mewn gwirionedd? Gadewch i mi dynnu llun yma a fydd yn Dim ond canfod ar wahân yn rhan o heddiw. Ond bydd hyn yn parhau i ymddangos ers peth amser. Mae hyn, yr wyf yn gwneud cais, yw'r hyn y mae eich cyfrifiadur cof yn edrych fel pan fyddwch yn rhedeg yn rhaglen, unrhyw raglen. Pan fyddwch yn rhedeg rhaglen ar frig o RAM eich cyfrifiadur - felly meddyliwch am petryal hwn, yn wir, fel eich RAM neu gof cyfrifiadur, pob 101 biliwn bytes ohono, pob ddau biliwn bytes, pob dau gigabeit ohono, beth bynnag yw'r swm sydd gennych, gadewch i ni dynnu fel petryal. Ac yr wyf yn honni bod pan fyddwch yn rhedeg rhaglen fel Microsoft Word neu Chrome neu unrhyw beth fel 'na, y darnau sy'n Microsoft neu Google ysgrifennodd - yn yr achosion y rhaglenni hynny - yn cael eu llwytho i mewn i gof eich cyfrifiadur lle y gallant gael eu gweithredu yn fwy yn gyflym ac yn bwydo i mewn i'r CPU, a yw ymennydd y cyfrifiadur. Ac yn TAM maent yn cael eu storio ar yr union ben eich rhaglen, fel petai. Mewn geiriau eraill, os yw hyn yn ddarn o cof, pan fyddwch yn clicio ddwywaith ar Microsoft Word, y darnau yn dod oddi ar y disg caled. Maent yn cael eu llwytho i mewn i RAM. A byddwn yn gwthio i fyny ar frig y petryal gysyniadol. Wel, mae'r gweddill eich cof defnyddio ar gyfer gwahanol bethau. Ar frig iawn eich gweld ymgychwyn data a uninitialize data. Mae hyn wedi ei wneud, ar gyfer y rhan fwyaf, gyda Cysonion neu newidynnau byd-eang sydd â gwerthoedd. Ond yn fwy ar y rhai adeg arall. Yna byddwch yn cael y domen, sy'n byddwn yn dod yn ôl ato. Ond ar y gwaelod yw'r rhan sy'n yn enwedig germane ar hyn o bryd. Mae'n y pentwr fel y'u gelwir. Felly, yn union fel yn y rhan fwyaf o unrhyw neuadd D yma ar campws, mae gennych hambyrddau hynny sy'n dim ond pentwr ar ben ei gilydd y gallwch roi bwyd a whatnot. Mae'r stac mewn system gyfrifiadurol yn debyg iawn. Ac eithrio tra bod yr hambwrdd, fel yr ydym yn eu defnyddio yn y neuadd fwyta, wrth gwrs, yn golygu i gario pethau y hambyrddau neu y fframiau - fel y byddwn yn eu galw - mewn cyfrifiadur cof yn cael ei defnyddio i ddal newidynnau a gwerthoedd. Felly, beth sydd wir yn mynd ymlaen o dan y cwfl? Wel, gadewch i mi troi drosodd i'r sgrin yma. A gadewch i ni ganolbwyntio ar y rhan gwaelod am eiliad. Os yw hyn yn y rhan waelod fy cof cyfrifiadur mae'n troi allan pan fyddaf yn ffoniwch y brif swyddogaeth - sy'n digwydd, a dweud y gwir, awtomatig i mi - Rwy'n cael darn o gof yn y waelod fy RAM fel petai. A dyma lle brif yn newidynnau lleol yn mynd. Mae'n lle argc a argv efallai fynd, ac unrhyw newidynnau I datgan y tu mewn o brif. Maent yn y pen draw ar y gwaelod o RAM fy cyfrifiadur. Nawr mae'n debyg mai prif galwadau swyddogaeth fel cyfnewid, fel y gwnaeth yr wythnos diwethaf? Wel, rydym yn y bôn yn rhoi hambwrdd newydd, ffrâm newydd, ar fy darn o gof. Ac yr wyf i'n mynd i ddisgrifio'r hyn fel perthyn i'r swyddogaeth cyfnewid. Nawr beth sydd y tu mewn y cyfnewid? Wel, yn seiliedig ar y rhaglen yr wythnos ddiwethaf a yr un yr ydym jyst yn gweld darn o, tu mewn ffrâm cyfnewid yn, neu ar y cyfnewid yn hambwrdd, yw'r hyn y newidynnau? Wel, a a b. Oherwydd dyna oedd ei ddadleuon lleol, yn ogystal â drydydd, tmp. Felly mewn gwirionedd, gallwn dynnu hyn ychydig yn fwy lân. Gadewch i mi fynd yn ei flaen ac yn dadwneud y label. A gadewch i mi honni eich bod yn gwybod beth? yn ôl pob tebyg yn mynd i roi diwedd ar i fyny yma. B yn mynd i roi diwedd ar i fyny yma. Ac tmp yn mynd i roi diwedd ar i fyny yma. Yn awr, gallai'r archebu ychydig yn wahanol. Ond gysyniadol dyma'r syniad. A dim ond ar y cyd, mae hyn yn beth byddwn yn galw ffrâm cyfnewid, neu'n hambwrdd fwyta-neuadd. Ac mae'r un peth yn delio â phrif. Ond ni fyddaf yn ail-lunio hynny. Ond dyna lle argc a argv ac unrhyw o'i newidynnau lleol fel x ac y gallai fod yn ogystal. Felly, yn awr yn ystyried beth sy'n digwydd mewn gwirionedd pan fyddwch yn ffonio cyfnewid. Pan fyddwch yn ffonio cyfnewid, gweithredu cod fel hyn, rydych yn pasio i mewn, yn y fersiwn buggy, a a b fel copïau o x ac y. Felly, os yn awr yr wyf yn tynnu hyn ar y sgrin - rhaid i wella ar hyn - felly y stori roeddwn yn dweud i mi fy hun oedd yn y fersiwn bygi, pan fyddwn yn ffoniwch gyfnewid pasio mewn llythrennol a a b fel cyfanrifau, beth sy'n digwydd mewn gwirionedd? Wel, beth sy'n digwydd mewn gwirionedd yw hyn. Gadewch i mi fynd yn ei flaen ac yn dadwneud yn unig i glirio i fyny ychydig o le yma. Felly, mae hyn yn fy cof cyfrifiadur. Felly, os oes gen i, er enghraifft - mewn gwirionedd gadewch i ni wneud fel hyn - os wyf yn honni bod hyn yn x, storio gwerth 1 yn union fel yr wythnos diwethaf. Ac mae hyn yn y, storio gwerth 2 yn union fel yr wythnos diwethaf. Ac mae hyn yn bennaf, pan fyddaf yn galw cyfnewid, gan roi mynediad i fy hun ac b a tmp, yr wyf i'n mynd i honni bod mae hwn yn ac mae hyn yn 1. Mae hyn yn b. Mae hyn 2. Gelwir hyn yn tmp. Ac ar y dechrau, mae wedi rhywfaint o werth garbage nes i mi mewn gwirionedd yn storio ynddo, sef 1. Yna mi fynd yn ei flaen a newid a i fod yn beth? Werth B. Ac felly yn awr yr wyf yn ddau yma. Ac yna rydym yn dweud b yn cael tmp. Unwaith eto, dim ond fel bwyll gwirio, y trydydd llinell o god yma, yn syml, mae hyn un, b yn cael tmp. Ac felly yn olaf, beth ddylwn i ei wneud? Rwy'n mynd yn ei flaen a newid b i fod beth bynnag gwerth tmp yw, sydd 1. Nid wyf yn cyffwrdd tmp eto. Ond yn awr, y broblem yw cyn gynted ag y cyfnewid ffurflenni, gan nad yw'n trosglwyddo yn ôl rhywfaint o werth, does dim dychwelyd datganiad eglur ynddo. Beth sy'n digwydd mewn gwirionedd? Wel, yn y bôn yr holl atgof hwn - OK, mae'n debyg y rhwbiwr yn hoffi dim ond un bys ar y tro - yn unig yn diflannu. Nawr, mewn gwirionedd nid yw'n mynd yn unrhyw le. Ond gallwch feddwl am y peth nawr fel marciau cwestiwn. Oherwydd ei fod bellach yn mewn gwirionedd yn cael eu defnyddio. A dim byd yn cael ei wneud â gwerthoedd hynny. Felly, yn achos y fersiwn gwyrdd cod hwn, beth yn lle hynny yn cael ei basio i mewn i cyfnewid? Felly, yn mynd i'r afael. Felly, y cyfeiriad x a y cyfeiriad y. Felly, os byddwn yn ail-adrodd y stori hon yr un olaf ei amser, ac yr wyf mewn gwirionedd yn tynnu cyfnewid eto, ond gyda awgrymiadau, bod hyn yn, mae hyn yn bod yn b, ac mae hyn yn cael ei tmp, beth yw storio mewn gwirionedd mewn yn y gwyrdd fersiwn o fy cod lle rwyf i'n pasio mewn cyfeiriadau? Mae'n mynd i fod yn pwyntydd i x. Er mwyn i mi dynnu saeth. Ond gadewch i ni ddefnyddio'r un mympwyol enghraifft, fel o'r blaen. Gadewch i ni yn dweud bod hyn yn rhywbeth fel Ox123. Ac mae hyn yn mynd i fod Ox127 oherwydd 'i' pedwar bytes i ffwrdd oherwydd ei fod yn int, felly Ox127. Ac eto, yr wyf i'n cymryd rhai rhyddid gyda'r niferoedd. Maent yn llawer llai nag y byddent mewn gwirionedd fod ac mewn trefn wahanol. Ond dyna sut y llun yn wahanol yn awr. Ond pan fyddaf yn defnyddio'r cod hwn gwyrdd ac yr wyf yn tmp int gael * a. * Yn fodd i wneud y canlynol, yn cymryd y afael â hynny yw mewn ac yn mynd iddo, sef 1. A dyna beth yr wyf yna rhowch mewn tmp. Yn y cyfamser, yn y llinell nesaf o god yma, * yn cael b, beth mae hynny'n ei olygu? Wel, * yn, felly ewch yma yn cael * b, sy'n golygu mynd yno. Ac mae hynny'n golygu rhoi'r gwerth i yno. Yn olaf, mae'r llinell olaf o god dim ond dweud * b yn cael tmp. Felly, b yn dweud yn mynd yno ac yn ysgrifennu drosti gyda tmp sydd, yn yr achos hwn, yn mynd i fod, unwaith eto, 1. A dyna pam y fersiwn gwyrdd ein gweithfeydd cod, tra bod y coch fersiwn byth yn gwneud. Mae i gyd yn unig boils i lawr i sut y mae'r cof yn cael ei rheoli a ble y mae'n sefyllfa mewn gwirionedd yn eich RAM cyfrifiadur. Ac am y tro, dyna un o'r pethau bod y pentwr yn cael ei ddefnyddio ar gyfer. Cwestiynau am y cynllun? Ar awgrymiadau? Neu ar y cyfnewid? Mae pob hawl, felly malloc, galw i gof, gwneud rhywbeth fel hyn. Roedd hon yn enghraifft super syml. A hyn oedd yr un a Binky gyflwyno i ni, er yn eithaf yn gyflym, ar ddiwedd y dosbarth. Dammit, yna rydym yn mynd eto. Felly, yn cofio mai hwn oedd yr enghraifft a Cyflwynodd Binky ni wneud hynny, er braidd yn gyflym ar ddiwedd y dosbarth. A dyma ni ddefnyddio malloc mewn gwirionedd am yr ail dro. Oherwydd bod y tro cyntaf i ni ei ddefnyddio i creu digon o RAM, yn dyrannu digon o RAM i storio llinyn. Binky cadw y tro hwn syml. Felly mae'n storio yn unig yn int, mae'n debyg. Ac mae hynny'n hollol iawn. Mae'n ychydig yn od, a dweud y gwir, i defnyddio malloc i ddyrannu un int. Ond y pwynt o animeiddio clai Nick oedd mewn gwirionedd dim ond adrodd hanes yr hyn a digwydd neu nad yw'n digwydd pan eich cam-drin cof. Felly, yn yr achos hwn, mae'r rhaglen hon gwnaeth ychydig o bethau. Yn yr achos cyntaf yma, mae'n datgan pwyntydd enw x i int. Mae wedyn yn datgan pwyntydd Gelwir y i int. Yna mae'n storio yn x, beth? Rhywun arall yn awr. Beth sy'n cael ei storio mewn x yn ôl y drydedd linell y rhaglen hon? GYNULLEIDFA: [Anghlywadwy]. SIARADWR 1: Wel, nid yn eithaf bytes, fesul ddweud. Bod yn fwy manwl yn awr. Beth sy'n cael ei storio mewn x? Cyfeiriad, yr wyf yn meddwl fy mod wedi clywed amdano. Felly beth mae malloc dychwelyd? malloc behaviorally dyrannu darn o gof. Ond sut mae'n rhoi mynediad iddo? Mae'n dychwelyd beth? Cyfeiriad y beit cyntaf yn y darn o gof. Yn awr, mae hyn yn syml super. Dim ond un beit, sy'n golygu bod y mynd i'r afael rydym yn mynd yn ôl y cyfeiriad yr holl beth. Felly storio mewn x, yna, yn y cyfeiriad y darn o gof. Yn y cyfamser, beth sy'n digwydd nesaf? Felly, mewn gwirionedd, gadewch i ni fynd yn ei flaen a dynnu allan yn gyflym go iawn. Felly, os ydym yn mynd draw at y sgrin yma ac rydym yn chwarae y tu allan int * x ac int * y yn mynd i wneud beth i mi? Yr wyf yn honni ei fod yn jyst yn mynd i wneud rhywbeth fel hyn a galw yn x, a hyn a galw yn y. Yn y cyfamser, y drydedd linell o god yn mynd i ddyrannu faint o int, sy'n digwydd bod - mae'n ddrwg gennyf os wyf yn dweud un cyn i mi yn golygu un int - pedwar bytes ar gyfrifiadur nodweddiadol. O leiaf gyda'r CS50 offer. Felly, mae hyn yn mynd i ddyrannu hynny, pwy a ŵyr? Rhywle allan yma. Ac mae hyn yn cael ei storio mewn rhai gyfeiriad Ych, pwy a ŵyr? Ond beth sy'n mynd i gael eu dychwelyd yn y cyfeiriad hwnnw. Ond byddwn yn tynnu lluniau hyn fel dim ond saeth fel 'na. Nawr yn y llinell nesaf * x yn cael 42. Beth mae * x olygu mewn termau lleyg? Dim ond yn mynd yno. Ewch i'r cyfeiriad hwnnw. Neu mewn geiriau eraill, dilynwch y saeth ac yn rhoi 42 yno. Ond yna rhywbeth drwg yn digwydd i Binky, dde? Dwyn i gof bod pum llinell yma, * yn cael y 13, yn wir mae nifer anlwcus, gwneud yr hyn i ni? Wel, * y modd mynd yno. Wel, nid yw hyn wedi ei roi gwerth hyd yn hyn, dde? Nid oes gan y cod y cael ei ymgychwyn i unrhyw beth. Roeddem wedi x yn cael eu ymgychwyn i gyfeiriad. Ond y datganwyd i fyny top. Ond yna hanner colon, dim gwerth ei roi mewn gwirionedd ynddo. Felly, mae'n deg i alw hyn yn gwerth garbage. Pwy a ŵyr beth sydd yno? Mae'n gweddillion darnau a ddefnyddiwyd gan rai llinell blaenorol o cod mewn fy rhaglen. Felly os wyf yn dweud yn mynd yno, mae hyn yn debyg, Does gen i ddim syniad lle mae saeth mae hyn yn yn mynd i roi diwedd ar i fyny. A dyna pryd fyddwch fel arfer yn cael wall. Os ydych yn ddamweiniol dereference, felly i siarad, neu ewch i gyfeiriad nad yw hynny'n mewn gwirionedd yn gyfeiriad dilys, pethau drwg yn digwydd. A dyna yn union beth ddigwyddodd i feddwl Binky. Felly, yn cofio bod y stori a Nick yn dweud yma oedd yr un syniad â beth Rwyf wedi tynnu gyda rhith o sialc ar y bwrdd yno. X ac y yn cael eu datgan. Yna rydym yn dyrannu maint y yn int a'i storio yn x. Yna y llinell nesaf a wnaethom * x. Roedd hyn yn ffon hud Nick o dereferencing. Sy'n rhoi 42 yn y cof nodwyd gan x. Ond mae hyn yn lle mae pethau aeth yn drychinebus o'i le. Iawn? Rydym yn ceisio dereference y. Ond roedd y rhywfaint o werth ffug, dde? Bod saeth yn y chwith isaf gornel, nid yw'n mewn gwirionedd yn cyfeirio at unrhyw beth. Mae'n fath o gwneud yr hyn yr wyf oedd yma ar y bwrdd. Felly, pethau drwg yn digwydd, segmentu fai, neu Binky fai, yn yr achos hwn. Ond os byddwn wedyn yn atgyweiria bod drwy wneud x yn cael y sut mae'r newid stori? Wel, os wyf yn gwneud x yn cael y, dyna effeithiol yr un fath â dweud beth bynnag yw hwn, Ych-rhywbeth yn mynd i fod yr un peth yma, Ych-rywbeth. Neu ddarluniadol byddwn yn tynnu saeth. Felly yma ar y bwrdd gyda Binky, gyda'r llinell nesaf cod, * y golygu mynd yno. Ble mae ar gael? Mae'n golygu dros yma. A phan fyddwn yn diweddaru hynny i fod yn 13 'i jyst yn golygu mynd a ysgrifennu 13 yma nawr. Felly, efallai nad yn gyfan gwbl syml ar yr olwg gyntaf. Ond i grynhoi ac i ddefnyddio'r un jargon sy'n Binky yn defnyddio yma, felly y ddau gyntaf ddyrannu'r awgrymiadau, x ac y, ond nid yw'r pointees. Ac nid pointees yn defnyddio term yn gyffredinol. Ond mae pwyntydd hollol y mae. Ond mae'n beth sy'n cael ei sylw at y ffaith arnynt yn gyfundrefn enwau Binky ar. Mae'r llinell nesaf, wrth gwrs, dyrannu pointee int. Felly, darn o cof - gan fy mod yn tynnu drosodd ar yr ochr dde-law yno - ac yn gosod x cyfartal i dynnu sylw iddo. Mae hyn yn dereferences x i storio 42 yn y cof ei fod yn pwyntio at. Ac yna mae hyn, wrth gwrs, oedd yn beth drwg. Oherwydd nad oedd y pwyntio ar unrhyw beth eto. Mae hyn yn ei gosod. Felly, mae hyn yn dal i fod rhaglen bygi. Nid yw'r ffaith ein bod yn chwythu drwy'r linell cod gan linell a dweud, oh yn dda, gadael iddo damwain yno. Mae hynny'n beth drwg. Groes yn y rhaglen 'jyst yn mynd i erthylu yn gyfan gwbl ar y llinell. Ond os ydych yn cael gwared ar y damwain llinell ac yn ei le gyda'r ddau olaf llinellau yno i chi aseinio - ddefnyddio aseiniad pwyntydd - y i dynnu sylw at x fel pwynt t. Ac yna rydych dereference y yn ffordd ddiogel iawn. Felly, lle mae hyn yn gadael i ni? Wel, ymddangos bod o dan y cwfl yn y llyfrgell CS50, awgrymiadau yn ddefnyddio drwy gydol. A byddwn yn mewn gwirionedd yn dechrau croen yn ôl y haen cyn bo hir. Ond mae'n troi hefyd, mynegiant a efallai y bydd rhai ohonoch yn gyfarwydd â nhw, yn enwedig y rhai yn fwy cyfforddus, mewn gwirionedd fod o boblogaidd iawn gwefan, neu orlifo stac, y dyddiau hyn. Ond mae hyn mewn gwirionedd wedi iawn ystyr technegol. Rydym bellach yn gwybod beth yw pentwr. Mae fel pentwr o hambyrddau tu mewn i neuadd fwyta. Neu tu mewn i'ch cyfrifiadur cof, mae'r ŵyl fframiau hynny sy'n cael eu defnyddio gan swyddogaethau. Wel, mae'n ymddangos fod oherwydd hynny gweithredu syml iawn o y cof a'r fframiau ar yr hyn a elwir stac, gallwch chi mewn gwirionedd yn cymryd rheolaeth o system gyfrifiadurol yn weddol hawdd. Gallwch darnia i mewn i system os yw pobl fel nad ni wedi ysgrifennu ein cod arbennig o dda. Os yw pobl fel ni yn defnyddio darnau y cof neu ddefnyddio araeau - hyd yn oed yn fwy cyffredin - ond weithiau ag anghofio i wirio ffiniau ein amrywiaeth wrth i chi efallai rhaid i chi eich hun weithiau, a bwysleisiodd ffordd rhy bell heibio diwedd arae. Yn yr achos gorau, eich rhaglen bosibl y bydd yn chwalu. Wall, caredig o embaras. Ddim yn wych, ond nid yw o reidrwydd yn beth drwg iawn. Ond os yw eich rhaglen mewn gwirionedd ar real gyfrifiaduron defnyddwyr ', os yw'n rhedeg ar wefan y mae pobl go iawn ar hap ar y rhyngrwyd yn cael eu taro, gosod pobl gymell pethau drwg ar eich cod yn Yn gyffredinol, nid yn beth da oherwydd mae'n golygu cyfle i gymryd rheolaeth ar y cyfrifiadur. Ac mae hyn yn mynd i edrych ychydig yn cryptig. Ond yr wyf yn meddwl y byddwn i'n eich dychryn gyda yr enghraifft olaf yma. Dyma enghraifft o god. Ac mae 'na Wicipedia da erthygl sy'n cerdded trwy hyn yn fwy manwl. Mae gennyf bennaf ar y galw gwaelod foo, gan fynd yn argv o 1. A dim ond fel y gallwch rhedeg y rhaglen ac yn pasio mewnbwn mympwyol. Ac yna foo ei ddatgan atodol â derbyn llinyn, neu fwy union, torgoch yn *. Yna mae'n datgan amrywiaeth o chars. Ffoniwch y byffer, yn fwy cyffredinol, o faint 12. Felly, gall 12 chars ffitio y tu o'r amrywiaeth o'r enw c. Ac yna mae'n defnyddio y swyddogaeth newydd, sydd yn newydd ond nid yw'n anodd deall, copi cof. Mae copïau y cof o'r bar, a oedd yn y n ddiwethaf amrywiol, beth bynnag fo'r defnyddiwr deipio i mewn i argv 1 i c. Faint o bytes? Mae hyd llinyn y bar. Felly, mewn geiriau eraill, os yw mathau y defnyddiwr yn h-e-l-l-o enter, hyd llinyn o helo yw pump. Felly pump o'r bytes hynny yn mynd i gael copïo i mewn i'r casgliad o'r enw c, a o faint 12. Ond pa fath y defnyddiwr mewn llawer hwy gair sy'n 13 nod neu 14 cymeriadau neu 100 o nodau neu fwy? Ble maen nhw'n mynd i fynd? Wel, y ffrâm, sy'n hambwrdd yn y pentwr fwyta-neuadd, maen nhw'n mynd i fynd yno. Ac mae'n jyst yn mynd i ddechrau ysgrifennu dros pethau eraill sydd eisoes ar y simnai, yn gorlifo, y simnai, fel petai. Felly ddarluniadol, feddwl am y peth fel hyn. Fersiwn lliwgar o hyn yn unig yw y darlun yr ydym wedi bod yn arlunio. Ar y gwaelod, gadewch i ni ddweud, yw prif. Ac ar ben, yr hyn rydych yn ei weld yn awr yn y ffrâm, lliw godio yn awr, ar gyfer swyddogaeth o'r enw foo. Ond yr hyn sy'n ddiddorol yma am foo yw bod yma yw ei ffrâm. Felly mae'n tynnu yn union fel yr wyf oedd ond mewn glas golau. Ac yn awr dyma lle c braced 0 yn mynd. A dyma lle c braced 11 yn mynd i roi diwedd ar i fyny. Mewn geiriau eraill, mae'n digwydd i cael eu cynrychioli fel sgwâr. Ond os ydych yn unig yn cadw plopping bytes i lawr - neu chars - maen nhw'n mynd i ben i fyny yn y lleoliad 0 holl ffordd i fyny i 11 oherwydd ei fod yn 0 mynegeio. Ond ble mae'r cymeriad 13 yn mynd i roi diwedd ar i fyny? Ble mae'r 14eg? Ble mae'r cymeriad 50fed yn mynd i roi diwedd ar i fyny? Mae'n mynd i gadw i fynd i lawr. Oherwydd hyd yn oed er ein bod wedi tynnu llun gyda'r pentwr tyfu i fyny, y cyfeiriadau, mae'n troi allan, yn mynd o cyfeiriadau bach, bach awgrymiadau, i gyfeiriadau mawr. Felly, 'i jyst yn cadw mynd i fyny ac i fyny. Felly, os mathau y defnyddiwr yn helo, mae hynny'n wych. Dim bug, dim problem, yn ddiogel pawb. Ond os mathau y defnyddiwr yn yr hyn a chi helpu galw cod wrthwynebol, yn cynrychioli gyffredinol fel, ymosodiad, ymosodiad, ymosodiad, ymosodiad, gall beth fydd yn digwydd? Wel, os yw pob un o'r mewnbwn bod y defnyddiwr Nid yw teipio i mewn yn ddim ond rhai gyfeillgar neu linyn sarhaus o gymeriadau. Mae'n mewn gwirionedd cyfres o gymeriadau os ydych yn ei lunio, y mae mewn gwirionedd cod. Efallai ei fod cod sy'n dileu'r holl ffeiliau ar eich gyriant caled neu anfon spam neu rywbeth fel 'na. Sylwch mai'r hyn sy'n allweddol yma yw bod os yw'r dyn drwg gennych ddigon ffodus i ysgrifennu dros y darn coch y cof - ac nid oeddwn yn tynnu ar fy llun, ond y darlun hwn Wicipedia yma wedi - ei hyn a elwir cyfeiriad dychwelyd. Pan fydd yn dychwelyd bwyd, pan fydd yn dychwelyd cyfnewid, sut mae'r cyfrifiadur yn gwybod i fynd o i fyny yma i lawr yma? Neu yn y segment dechnoleg i fyny uchod, pa mor mae'n gwybod i fynd o'r cyfnewid cod - y 0 ac 1 yn sy'n cyfansoddi cyfnewid - yn ôl i'r prif? Mae yna gyfeiriad dychwelyd hyn a elwir yn storio yn yr un ffrâm pentwr, ar yr un hambwrdd caffi. Felly, os yw'r dyn drwg yn ddigon clyfar i rhoi cod ymosodiad, y cod ymosodiad, ymosodiad cod, a chael digon lwcus - yn aml drwy brofi a methu - i ysgrifennu dros y cyfeiriad dychwelyd coch, gyda chyfeiriad a rhybudd frig. Hysbysiad 0835C080. Mae wedi ysgrifennu yn ôl hyd uchaf ar gyfer rhesymau byddwn efallai ailystyried. Mae hyn yn y nifer hwnnw. Felly, os yw'r dyn drwg yn cael digon lwcus neu yn ddigon craff i ysgrifennu dros y coch stribed o gof gyda chyfeiriad Cod ei fod ef neu hi wedi rywsut chwistrellu i mewn i'ch cyfrifiadur, dyfalu y mae eu cod yn mynd i gael ei ddychwelyd i cyn gynted ag y foo yn cael ei wneud cyflawni? Cod y dyn drwg yn. Felly, y cod ymosodiad, AAA, unwaith eto, gallai anfon spam, gallai dileu yr holl ffeiliau ar eich disg galed. Ond dyna wir gorlif stac , neu yn gor-redeg byffer, neu clustogi ymosodiad gorlifo. Ac mae'n hynod, hynod gyffredin hyd heddiw gyda rhaglenni ysgrifenedig yn C, C + +, a hyd yn oed rhai ieithoedd eraill. Ar y nodyn brawychus, byddwn ni i ben gyda jôc. [Chwerthin] Welwn ni chi ar ddydd Mercher. Yn y CS50 nesaf - Felly, rwy'n i gyd allan o lampau disg heddiw, ond aros, rhydd o fraster llaeth, hanner y ffôn llyfr, y sudd oren fy mod yn yfed heddiw. USB cebl, a wrench. [CHWARAE CERDDORIAETH]