[Powered by Google Translate] [Seksyon 6] [plis konfòtab]
[Rob Bowden] [Inivèsite Harvard]
[Sa a se CS50.] [CS50.TV]
>> Nou ka mete tèt nan seksyon nou an kesyon.
M 'te voye URL la pou espas ki la anvan.
Nan konmansman an nan seksyon an nan kesyon yo di-
aparamman mwen pa antyèman unsick-se yon kesyon trè fasil
nan jis ki sa ki valgrind?
Ki sa ki valgrind fè?
Nenpòt moun ki vle di ki sa valgrind li fè?
[Elèv] chèk memwa fwit.
Yeah, valgrind se yon korektè memwa jeneral.
Li, nan fen a, di ou si ou gen nenpòt fwit memwa,
ki se sitou sa n ap sèvi ak li pou paske si ou vle
fè byen nan ansanm lan pwoblèm oswa si ou vle
jwenn sou tablo a gwo, ou bezwen pa gen okenn fwit memwa tou sa,
ak nan ka ou gen yon fwit memwa ke ou pa ka jwenn,
tou kenbe nan tèt ou ke chak fwa ou louvri yon dosye
e si ou pa fèmen li, sa se yon fwit memwa.
>> Yon anpil moun ap chèche pou kèk ne yo ke yo pa ap libere
lè reyèlman, yo pa t 'fèmen diksyonè a nan etap la trè premye.
Li te tou di ou si ou gen nenpòt envalid li oswa ekri,
ki vle di si ou eseye, li mete yon valè
sa a, se pi lwen pase nan fen pil wòch la e li pa rive fòt segman
men valgrind kaptur li, jan ou pa ta dwe aktyèlman dwe ekri a,
ak sa ou definitivman pa ta dwe gen nenpòt nan moun sa swa.
Ki jan ou itilize valgrind?
>> Se yon kesyon jeneral sou
kalite kouri li ak gade nan pwodiksyon an.
Pwodiksyon an ap boulvèse yon anpil nan fwa.
Genyen tou erè plezi kote si w gen kèk bagay fò anpil mal
pase nan yon riban, lè sa a li pral evantyèlman di, "erè Way twòp.
Mwen pral sispann konte kounye a. "
Li nan fondamantalman pwodiksyon textuelle ki di ou gen analizan.
Nan fen a, sa pral di ou kote dlo ap koule memwa ki di ou gen,
konbyen blòk yo, ki kapab itil paske
si li nan yon sèl unfreed blòk, Lè sa a, li la anjeneral pi fasil jwenn
pase 1,000 blòk unfreed.
1,000 blòk unfreed pwobableman vle di ou pa ap libere
bay lis lye ou kòmsadwa oswa yon bagay.
Sa se valgrind.
>> Koulye a, nou gen seksyon nou an kesyon,
ki ou pa bezwen telechaje.
Ou ka klike sou non mwen ak rale yo moute nan espas la.
Koulye a, klike sou m '.
Revizyon 1 yo pral chemine, ki n ap fè an premye.
Revizyon 2 pral nat, ak Revizyon 3 pral separeman lis la lye.
Kòmanse koupe ak chemine nou an.
Kòm li di isit la, yon pil se youn nan debaz a pi plis,
done fondamantal estrikti nan syans òdinatè.
Egzanp lan trè Prototype se
chemine a nan plato nan sal la kote moun.
Li nan fondamantalman nenpòt lè ou ki te a nan yon chemine,
gen yon moun ki pral di, "O, tankou yon pil nan plato."
Ou chemine plato yo leve.
Lè sa a, lè ou ale nan rale yon plato,
plato a premye ki nan ap resevwa rale a se youn nan dènye ki te mete yo sou pil la.
Chemine a tou ki tankou li di isit la-
nou gen segman an nan memwa rele pil la.
Ak poukisa li te rele pil la?
>> Paske tankou yon estrikti done chemine,
li pouse ak Pops ankadreman chemine sou chemine a,
kote ankadreman chemine yo tankou yon apèl espesifik nan yon fonksyon.
Li te tankou yon pil, ou ap toujou gen retounen
ki sòti nan yon apèl fonksyon anvan ou kapab jwenn desann nan pi ba ankadreman chemine ankò.
Ou pa ka gen prensipal rele bar rele foo epi voye li retounen ba dirèkteman prensipal la.
Li nan toujou te gen yo swiv chemine ki kòrèk la ap pouse ak eklate.
Operasyon yo de, tankou m 'te di yo, se pouse ak pòp.
Moun sa yo se tèm inivèsèl.
Ou ta dwe konnen pouse ak pòp an tèm de pil pa gen pwoblèm sa.
Nou pral wè ke moun kap kriye yo se kalite diferan.
Li pa vrèman gen yon tèm inivèsèl, men pouse ak pòp yo inivèsèl pou pil.
Pouse se jis mete yo sou pil la.
Pòp se pou yo wete tout chemine a.
E nou wè isit la nou gen chemine tipedèf struct nou an,
konsa nou gen Char strings **.
pa jwenn pè pa nenpòt **.
Sa a se pral yo te fini yon seri strings
oswa yon etalaj de pwent karaktè, kote
endikasyon karaktè gen tandans yo dwe strings.
Li pa dwe fè strings, men isit la, yo pwal santi yo dwe strings.
>> Nou gen yon etalaj de strings.
Nou gen yon gwosè, ki reprezante ki jan anpil eleman ki aktyèlman sou chemine a,
ak Lè sa a, nou gen kapasite la, ki se ki jan anpil eleman yo ka sou pil la.
Kapasite a ta dwe kòmanse nan kòm yon bagay ki pi konsekan pase 1,
men gwosè a ki pral kòmanse nan kòm 0.
Koulye a, gen fondamantalman twa fason diferan ou ka panse a yon pil.
Oke, gen yo se pwobableman plis, men de fason yo prensipal yo se
ou ka aplike li lè l sèvi avèk yon etalaj, oswa ou ka aplike li lè l sèvi avèk yon lis lye.
Linked bay lis yo se kalite trivial fè pil nan.
Li trè fasil fè yon pil lè l sèvi avèk lis lye,
Se konsa isit la, nou pwal fè yon pil lè l sèvi avèk ranje,
ak Lè sa a, lè l sèvi avèk ranje, gen nan tou de fason ou ka panse sou li.
Anvan, lè m 'te di nou gen yon kapasite pou chemine a,
pou nou ka anfòm yon eleman sou pil la.
>> Wout la yon sèl li te ka rive se le pli vit ke ou frape 10 eleman, Lè sa a, w ap fè.
Ou ta ka konnen ke gen se yon anwo mare l 'nan 10 bagay sa yo nan mond lan
ke ou pa janm ap gen plis pase 10 bagay sa yo sou pil ou an,
nan ka sa a ou ka gen yon anwo mare l 'sou gwosè a nan chemine ou an.
Oswa ou ta ka genyen ap chemine ou illimité,
Men, si ou ap fè yon etalaj, ki vle di ke chak fwa ou frape yon sèl 10 eleman,
Lè sa a, w ap ale nan gen pou grandi pou 20 eleman, ak ki lè ou frape 20 eleman,
w ap ale nan gen yo grandi etalaj ou a 30 eleman oswa 40 eleman.
W ap ale nan bezwen ogmante kapasite la, ki se ki sa nou ap ale nan fè isit la.
Chak fwa yon sèl nou rive gwosè a maksimòm de pil nou an,
lè nou pouse yon lòt bagay sou li a, nou pral bezwen ogmante kapasite la.
Isit la, nou te pouse deklare kòm pouse bouleen (Char * str).
Str Char * se fisèl la ke nou ap pouse sou chemine a,
ak bouleen jis di si nou nan plas oswa echwe.
>> Ki jan nou ka fail?
Ki sa ki sikonstans la sèlman ke ou ka panse a
kote nou ta bezwen retounen fo?
Yeah.
[Elèv] Si li la plen ak nou ap sèvi ak yon aplikasyon limite.
Yeah, se konsa ki jan nou defini-li te reponn
si li nan plen e nou ap itilize yon aplikasyon atache.
Lè sa a, nou definitivman pwal retounen fo.
Osito ke nou frape 10 bagay sa yo nan etalaj la, nou pa ka anfòm 11, pou nou retounen fo.
E si li se illimité? Yeah.
Si ou pa kapab elaji etalaj la pou kèk rezon.
Yeah, se konsa memwa se yon resous ki limite,
ak evantyèlman, si nou kenbe pouse bagay sa yo sou chemine a sou yo ak sou ankò,
nou pwal eseye yo e pou alwe yon etalaj pi gwo nan anfòm
kapasite ki pi gwo a, ak malok oswa kèlkeswa sa nou ap lè l sèvi avèk ki pral retounen fo.
Oke, malok ap retounen nil.
>> Sonje byen, chak fwa yon sèl ou te janm rele malok, ou ta dwe tcheke yo wè si li
retounen nil oswa lòt moun ki se yon dediksyon ekzaktitid.
Depi nou vle gen yon chemine illimité,
ka a sèlman nou ap pral retounen fo se si nou eseye
ogmante kapasite la ak malok oswa kèlkeswa sa retounen fo.
Lè sa a, pòp pa pran agiman,
ak li retounen fisèl la ki se sou tèt la nan chemine a.
Kèlkeswa sa ki te pi resamman pouse sou chemine a se sa ki pòp ki retounen,
ak li tou retire li nan men pil la.
Ak avi ke li retounen nil si pa gen anyen sou pil la.
Li se toujou posib ke chemine a se vid.
Nan Java, si w ap itilize ak sa yo ki, oswa lòt lang yo,
ap eseye pòp soti nan yon chemine vid ta kapab lakòz yon eksepsyon oswa yon bagay.
>> Men, nan C, nil se kalite yon anpil nan ka yo ki jan nou okipe pwoblèm sa yo.
Retounen nil ki jan nou ap ale nan siyifi ke chemine a te vid.
Nou te bay kòd ki pral teste fonctionnalités chemine ou a,
aplike pouse ak pòp.
Sa a pa pral yon anpil nan kòd.
Mwen pral-aktyèlman, anvan nou fè sa, allusion, allusion-
si ou pa fin wè li, malok se pa fonksyon a sèlman
ki repati memwa sou pil wòch la pou ou.
Gen yon fanmi ki gen fonksyon alok.
Premye a se malok, ki w ap itilize yo.
Lè sa a, gen nan calloc, ki fè sa ki menm bagay la kòm malok,
men li pral zewo tout bagay soti pou ou.
Si ou te janm te vle mete tout bagay sa yo nil apre mallocing yon bagay
ou ta dwe gen sèlman itilize calloc an plas an premye olye pou yo ekri
yon pou riban a zewo soti blòk la tout antye de memwa.
>> Realloc, se tankou malok e li gen yon anpil nan ka espesyal,
men fondamantalman sa realloc fè, se
li pran yon konsèy ki te deja te afekte.
Realloc se fonksyon a ou vle yo dwe peye atansyon sou isit la.
Li pran yon konsèy ki te deja te tounen soti nan malok.
Se pou nou di ou mande soti nan malok yon konsèy nan 10 bytes.
Lè sa a, pita ou reyalize ou te vle 20 bytes,
konsa ou rele realloc sou sa konsèy ki gen 20 bytes,
ak realloc pral otomatikman kopi sou tout bagay pou ou.
Si ou jis rele malok ankò, tankou mwen gen yon blòk nan 10 bytes.
Kounye a mwen bezwen yon blòk nan 20 bytes,
Se konsa, si mwen malok 20 bytes, lè sa a mwen gen a manuelman kopye sou bytes yo 10 soti nan premye bagay la
nan bagay la dezyèm ak Lè sa a, gratis bagay la an premye.
Realloc a ap fè ki pou ou.
>> Avi siyati ki a pwal * anile,
ki se jis retounen yon konsèy blòk la nan memwa,
Lè sa a, anile * ptr.
Ou ka panse a * anile kòm yon konsèy jenerik.
Anjeneral, ou pa janm fè fas ak * anile,
men malok ki retounen yon * anile, ak Lè sa a, li nan jis itilize tankou
Sa a se aktyèlman ale nan yon * Char.
* Nan anile anvan ki te tounen pa malok
se kounye a yo pral pase bay realloc, ak Lè sa a, gwosè
se nimewo a nouvo sou bytes ou vle asiyen, se konsa kapasite nouvo ou an.
Mwen pral ba w yon minit koup, ak fè li nan espas nou yo.
Kòmanse ak Revizyon 1.
Mwen pral sispann ou apre èspere ke sou tan ase yo aplike pouse,
ak Lè sa a, mwen pral ban nou yon lòt repo fè pòp.
Men, li vrèman se pa sa ki kòd anpil nan tout.
Kòd la se pwobableman pi bagay la agrandi, yo te agrandi kapasite la.
Oke, pa gen presyon yo dwe konplètman fè a,
men osi lontan ke ou santi ou tankou w ap sou chemen dwat la, ki nan bon.
>> nenpòt moun ki gen nenpòt kòd yo santi yo konfòtab avè m 'rale moute?
Yeah, mwen menm mwen, men nenpòt moun ki gen nenpòt kòd mwen ka rale moute?
Okay, ou ka kòmanse, sove li, tou sa li se?
Mwen toujou bliye ke etap.
Okay, gade nan pouse,
ou vle eksplike kòd ou a?
[Elèv] Premye a tout, mwen ogmante gwosè a.
Mwen devine petèt mwen ta dwe gen sa-de tout fason, mwen ogmante gwosè a,
e mwen wè si li nan mwens pase kapasite la.
Men, si li nan mwens pase kapasite a, mwen ajoute nan etalaj la ke nou te deja gen.
Men, si li pa, mwen anpil anpil pitit kapasite a pa 2,
epi mwen aloue etalaj la strings a yon bagay ki gen yon gwosè pi gwo kapasite kounye a.
Lè sa a, si sa echwe, mwen di itilizatè a epi retounen fo,
epi si li nan amann, Lè sa a, mwen mete fisèl la an plas nan nouvo.
>> [Rob B.] Epitou avi ke nou itilize yon bèl lojik operatè isit la
Miltipliye pa 2.
Sonje byen, bò gòch chanjman se toujou yo pral miltipliye pa 2.
Se dwa chanjman divize pa 2 osi lontan ke ou sonje ke li vle di
divize pa 2 kòm nan yon nonb antye relatif divize pa 2.
Li ta ka tronke yon 1 isit la oswa si gen.
Men, chanjman kite nan 1 se toujou yo pral miltipliye pa 2,
sof si ou debòde avèk limit yo nan nonb antye relatif la, ak Lè sa a, li pa pral.
Yon kòmantè bò.
Mwen renmen fè-sa a pa pral chanje kodaj nan nenpòt fason tou,
men mwen renmen fè yon bagay tankou sa a.
Li aktyèlman ki pral fè l 'yon ti kras pi lontan.
Petèt sa a se pa ka a pafè a montre sa a,
men mwen renmen l 'nan segman sa yo blòk an-
oke, si sa a si rive, Lè sa a, mwen pral fè yon bagay,
ak Lè sa a, se fonksyon an fè.
Mwen pa bezwen Lè sa a, woulo liv je m 'tout wout la desann fonksyon an
yo wè sa ki rive apre lòt la.
Li nan si sa a si rive, Lè sa a, mwen jis retounen.
Li tou te gen benefis la te ajoute nan bèl tout bagay pi lwen pase sa a
se kounye a deplase kite yon fwa.
Mwen pa bezwen ankò-si ou te janm toupre ridikulousli liy long,
Lè sa a, moun ki bytes 4 ka ede, epi tou li yon bagay an plis gòch se,
mwens akable a ou santi ou si renmen-oke, mwen gen yo sonje
Mwen kounye a nan yon riban pandan y ap andedan nan yon andedan lòt bagay nan yon riban pou.
Nenpòt kote ou ka fè sa tounen imedyatman, mwen kalite tankou.
Li nan totalman si ou vle epi yo pa panse nan okenn fason.
>> [Elèv] Dwe gen yon gwosè - nan yon kondisyon pou abandonne?
Kondisyon nan abandonne isit la se nou echwe pou pou realloc, se konsa wi.
Avi sou jan nan yon kondisyon pou echwe, prezimableman,
sof si nou gratis bagay apre sa, n ap toujou ale nan fail
pa gen pwoblèm konbyen fwa nou eseye pouse yon bagay.
Si nou kenbe pouse, nou kenbe incrementing gwosè,
menm si nou pa mete anyen sou pil la.
Anjeneral nou pa kantite gwosè a jiskaske
apre nou fin gen anpil siksè mete l 'sou pil la.
Nou ta fè l ', di, swa isit la ak isit la.
Lè sa a, olye pou yo li di s.size ≤ kapasite, li nan mwens pase kapasite,
sèlman paske nou te bwote kote tout bagay te ye a.
>> Epi sonje, kote a sèlman ke nou kapab pètèt retounen fo
se isit la, kote realloc tounen nil,
ak si ou rive sonje estanda erè,
petèt ou ta ka konsidere ka sa a yon kote ou vle enprime yon erè estanda,
Se konsa fprintf stder olye pou yo jis enprime dirèkteman nan soti estanda.
Yon fwa ankò, sa a pa yon atant, men si li nan yon erè,
tape printf, lè sa a ou ta ka vle fè li enprime yon erè estanda olye pou yo soti estanda.
>> Nenpòt moun ki gen nenpòt lòt bagay sonje? Wi.
[Elèv] Èske ou ka ale sou [fèbl] a?
[Rob B.] Wi, binariness aktyèl la nan li oswa jis sa li ye?
[Elèv] Se konsa, ou anpil anpil pitit li pa 2?
[Rob B.] Yeah, fondamantalman.
Nan peyi binè, nou toujou gen seri nou an chif.
Déplacement sa a gòch pa 1 fondamantalman mete anndan li isit la nan bò dwat la.
Retounen nan sa a, jis sonje ke tout bagay nan binè
se yon pouvwa nan 2, kidonk sa a reprezante 2 a 0 a,
sa a 2 a 1 nan, sa a 2 nan 2 a.
By yo mete yon 0 a bò dwat la, koulye a, nou jis chanjman tout bagay sou.
Ki sa ki itilize yo dwe 2 a 0 a se kounye a 2 a 1 la, se 2 nan 2 a.
Bò dwat la ke nou mete
se nesesèman pral fè 0,
ki fè sans.
Si ou janm Miltipliye yon nonm pa 2, li pa pral fini enpè,
Se konsa 2 a nan plas la 0 yo ta dwe 0,
ak sa a se sa m 'mwatye te avèti sou anvan se si ou rive chanje
pi lwen pase ki kantite Bits nan yon nonb antye relatif,
Lè sa a, sa a 1 a pral fini pral la.
Sa a se sèlman enkyete a si ou rive yo dwe fè fas ak kapasite reyèlman gwo.
Men, nan pwen sa a, lè sa a ou ap fè fas ak yon etalaj de dè milya de bagay sa yo,
ki pa ta ka anfòm nan memwa de tout fason.
>> Koulye a, nou kapab jwenn pòp, ki se menm vin pi fasil.
Ou te kapab li renmen si ou rive pòp yon pakèt antye,
e kounye a, ou se nan mwatye kapasite ankò.
Ou te kapab realloc retresi kantite a memwa ou genyen,
men ou pa gen enkyete sou sa, se konsa ka a realloc sèlman a pwal
ap grandi memwa, pa janm réduction memwa,
ki se pwal fè super pòp fasil.
Koulye a, ke moun kap kriye yo, ki pral fè tankou pil,
men se lòd la ke ou pran bagay sa yo deyò ranvèse.
Egzanp lan Prototype nan yon nat se yon liy,
Se konsa, mwen devine si ou te angle, mwen ta gen tan di
yon egzanp Prototype nan yon nat se yon nat.
Se konsa, tankou yon liy, si ou se premye moun ki nan liy,
ou espere yo dwe premye moun ki soti nan liy lan.
Si ou se moun nan dènye nan liy, ou yo ale nan se moun ki sot pase a serviced.
Nou rele sa modèl FIFO, Lè nou konsidere ke pil te LIFO modèl.
Moun sa yo ki mo yo trè inivèsèl.
>> Menm jan ak pil ak kontrèman ak ranje, ke moun kap kriye tipikman pa pèmèt aksè nan eleman nan mitan yo.
Isit la, yon pil, nou gen pouse ak pòp.
Isit la, nou rive yo te rele yo enqueue ak dequeue.
Mwen gen tou tande yo t'ap rele chanjman ak enchif.
Mwen te konn tande moun di pouse ak pòp aplike tou nan ke moun kap kriye.
Mwen te tande insert, retire,
Se konsa pouse ak pòp, si w ap pale de pil, ou ap pouse ak eklate.
Si w ap pale de ke moun kap kriye, ou ta ka chwazi mo sa yo ou vle itilize
pou ensèsyon ak retire, epi pa gen okenn konsansis sou sa li ta dwe rele.
Men, isit la, nou gen enqueue ak dequeue.
Koulye a, struct a sanble prèske ki idantik ak struct nan chemine.
Men, nou gen nan kenbe tras nan tèt yo.
Mwen devine li di desann isit la, men poukisa nou bezwen tèt la?
Prototip yo se fondamantalman ki idantik ak pouse ak pòp.
Ou ka panse a li kòm pouse ak pòp.
Sèl diferans ki genyen se pòp ki retounen-olye pou yo dènye a, li la retounen premye a.
2, 1, 3, 4, oswa yon bagay.
Ak isit la a nan kòmansman an.
Nat nou an se konplètman plen, se konsa gen nan kat eleman nan li.
Nan fen nat nou se kounye a 2,
e kounye a nou ale nan insert yon lòt bagay.
>> Lè nou vle insert ki yon lòt bagay, ki sa nou te fè sa pou vèsyon an pil
se nou pwolonje blòk nou an memwa.
Ki sa ki pwoblèm nan ak sa a?
[Elèv] Ou deplase 2 a.
Ki sa mwen te di anvan sou la fen nat la,
sa a pa fè sans ke nou kòmanse nan 1,
Lè sa a, nou vle dequeue 1, Lè sa a, dequeue 3, Lè sa a, dequeue 4,
Lè sa a, dequeue 2, Lè sa a, dequeue yon sèl sa a.
Nou pa ka sèvi ak realloc kounye a,
oswa omwen nan anpil, ou gen yo sèvi ak realloc nan yon fason diferan.
Men, pwobableman ou pa ta dwe jis itilize realloc.
Ou yo ale nan gen a manuelman kopi memwa ou.
>> Gen de fonksyon a kapab bay kopi memwa.
Genyen nan memcopy ak memmove.
Mwen kounye a nan lekti paj yo nonm yo wè ki youn ou ap ale nan vle itilize.
Okay, memcopy, diferans lan se
ki memcopy ak memmove, youn manch ka a kòrèkteman
ki kote ou kopye nan yon rejyon ki k ap pase nan sipèpoze rejyon an
w ap kopye soti nan.
Memcopy Pa manyen li. Memmove fè.
Ou ka panse a pwoblèm nan kòm-
Se pou nou di mwen vle yon kopi sa a Guy,
sa yo kat nan sa a Guy sou.
Nan fen a, ki sa ki etalaj la ta dwe gade tankou
apre kopi a se 2, 1, 2, 1, 3, 4, ak Lè sa a, kèk bagay nan fen an.
Men, sa a se depann sou nan ki lòd nou aktyèlman kopi,
depi si nou pa konsidere lefèt ke rejyon an ke nou ap kopye nan
doubl yon sèl an ke nou ap kopye soti nan,
Lè sa a, nou ta ka fè tankou kòmansman isit la, kopye 2 a nan plas la nou vle ale a,
lè sa a deplase bagèt an avan.
>> Koulye a, nou pral yo dwe isit la ak isit la, e kounye a, nou vle yon kopi
sa a Guy sou sa a Guy yo epi li deplase bagèt an avan.
Ki sa nou ap ale nan fini ap resevwa se 2, 1, 2, 1, 2, 1
olye pou yo 2 a ki apwopriye, 1, 2, 1, 3, 4, paske
2, 1 anporte 3 orijinal la, 4.
Memmove pwaye ki kòrèkteman.
Nan ka sa a, bazikman jis toujou itilize memmove
paske li kenbe li yo kòrèkteman.
Li jeneralman pa fè okenn vin pi mal.
Lide a se olye pou yo kòmanse depi nan konmansman an ak kopye nan fason sa a
tankou nou jis te fè isit la, li kòmanse soti nan fen a ak kopi nan,
ak nan ka sa a, ou pa janm ka gen yon pwoblèm.
Pa gen okenn pèfòmans pèdi.
Toujou itilize memmove. Pa janm enkyete sou memcopy.
Epi sa a, kote w ap ale nan gen separeman memmove
pòsyon nan vlope-otou nan nat ou a.
Pa gen enkyetid si se pa konplètman fè.
Sa a se pi difisil pase chemine, pouse, pòp ak.
>> Nenpòt moun ki gen nenpòt kòd nou te ka travay avèk?
Menm si konplètman enkonplè?
[Elèv] Yeah, li nan konplètman enkonplè, menm si.
Konplètman enkonplè se amann osi lontan ke nou-ou ka sove revizyon an?
Mwen bliye ke chak fwa sèl.
Okay, inyore sa ki pase lè nou bezwen Rdimansyone bagay sa yo.
Konplètman inyore rdimansyonman.
Eksplike sa a kòd.
Mwen tcheke premye nan tout si gwosè a se mwens pase kopi an premye nan tout
ak Lè sa a, apre sa, mwen insert-Mwen pran tèt + gwosè,
epi mwen asire w ke li vlope toutotou kapasite a nan etalaj la,
epi mwen insert fisèl la nouvo nan pozisyon sa.
Apre sa, mwen ogmante gwosè a epi retounen vre.
>> [Rob B.] Sa a se definitivman youn nan ka sa yo kote w ap ale nan vle yo lè l sèvi avèk Mod.
Nenpòt ki kalite ka kote ou te vlope toutotou, si ou panse vlope alantou li,
te panse a imedya yo ta dwe Mod.
Kòm yon Optimization rapid / fè kòd ou a yon liy ki pi kout,
ou remake ke liy lan imedyatman apre yon sèl sa a
se jis gwosè + +, se konsa ou rantre nan trafik ki nan liy sa a, gwosè + +.
Koulye a, desann isit la, nou gen ka a
kote nou pa gen ase memwa,
pou nou yo ap ogmante kapasite nou pa 2.
Mwen devine ou ta ka genyen menm pwoblèm nan isit la, men nou ka inyore li kounye a,
kote si ou echwe pou pou ogmante kapasite ou a,
Lè sa a, w ap ale nan vle diminye kapasite ou pa 2 ankò.
Yon lòt nòt kout se jis tankou ou ka fè + =,
ou ka tou fè << =.
Prèske anyen ka ale anvan egal, + =, | =, & =, << =.
Char * nouvo se blòk nouvo nou an memwa.
Oh, sou isit la.
>> Ki sa ki moun panse sou kalite a nan blòk nou nouvo nan memwa?
[Elèv] Li ta dwe ** Char.
Panse tounen nan struct nou moute isit la,
strings se sa nou ap reatribue.
N ap fè yon tout nouvo depo dinamik pou eleman yo nan nat la.
Ki sa nou ap pral plase strings ou a se sa n ap mallocing kounye a,
ak sa nouvo a pwal yon ** Char.
Li nan pral fè yon etalaj de strings.
Lè sa a, ki sa se ka a anba ki nou pwal retounen fo?
[Elèv] Eske nou ta dwe ap fè a * Char?
[Rob B.] Wi, bon apèl.
[Elèv] Ki sa ki te sa?
[Rob B.] Nou te vle fè yo piti yo gen * Char paske nou yo pa-
sa a ta aktyèlman ap yon pwoblèm trè gwo paske sizof (Char) ta dwe 1.
Sizof Char * a pwal 4,
konsa yon anpil fwa lè w ap fè fas ak antye,
ou gen tandans jwenn lwen ak li paske gwosè nan int ak gwosè * int
sou yon sistèm 32-bit pwal gen menm bagay la.
Men, isit la, sizof (Char) ak sizof (Char *) yo kounye a se pral fè menm bagay la.
>> Ki sa ki sikonstans la kote nou retounen fo?
[Elèv] New se nil.
Yeah, si nouvo se nil, nou retounen fo,
ak mwen pral voye jete desann isit la-
[Elèv] [fèbl]
[Rob B.] Yeah, sa a se amann.
Ou te kapab swa fè 2 fwa kapasite oswa chanjman kapasite 1 ak Lè sa a, sèlman mete l 'desann isit la oswa kèlkeswa sa.
Nou pral fè l 'kòm nou te gen li.
Kapasite >> = 1.
Epi ou pa janm ap ale nan gen enkyete sou pèdi plas 1 nan
paske ou te kite deplase pa 1, se konsa kote 1 an se nesesèman yon 0,
se konsa dwa déplacement pa 1, ou toujou ap pral fè amann.
[Elèv] Eske w bezwen fè sa anvan retounen?
[Rob B.] Wi, sa a fè absoliman pa gen sans.
>> Koulye a, pran nou pral fini retounen vre nan fen an.
Fason an ke nou ap pral fè sa yo memmoves,
nou bezwen dwe fè atansyon ak jan nou fè yo.
nenpòt moun ki gen nenpòt sijesyon pou jan nou fè yo?
Isit la nan kòmansman nou an.
Fatalman, nou vle kòmanse nan kòmansman an ankò
ak kopi bagay sa yo nan de la, 1, 3, 4, 2.
Ki jan ou fè sa?
Premyèman, mwen te fè yon gade nan paj la nonm pou memmove ankò.
Memmove, lòd nan agiman se toujou enpòtan.
Nou vle destinasyon nou premye, dezyèm sous, twazyèm gwosè.
Gen yon anpil nan fonksyon ki ranvèse sous ak destinasyon.
Destinasyon, sous gen tandans ka yon ti jan ki konsistan.
Deplase, ki sa ki li retounen?
Li retounen yon konsèy nan destinasyon, pou kèlkeswa rezon ou ta ka vle sa.
Mwen ka foto li li l ', men nou vle pou avanse pou pi nan destinasyon nou an.
>> Ki sa ki destinasyon nou yo pral?
[Elèv] New.
[Rob B.] Wi, ak ki kote n ap kopye soti nan?
Premye bagay nou ap kopye sa a 1, 3, 4.
Ki sa ki se-sa-a 1 a, 3, 4.
Ki sa ki se adrès sa a 1?
Ki sa ki se adrès sa a nan 1?
[Elèv] [fèbl]
[Rob B.] Head + adrès ki nan eleman la an premye.
Ki jan nou jwenn eleman nan premye nan etalaj la?
[Elèv] keu.
[Rob B.] Wi, q.strings.
Sonje byen, isit la, tèt nou an, se 1.
Reprize li. Mwen te jis panse li an maji-
Isit la, tèt nou an, se 1. Mwen pral chanje koulè mwen tou.
Ak isit la se strings.
Sa a, nou ka swa ekri li tankou nou te fè sou isit la
ak chèf + q.strings.
Yon anpil moun tou ekri li & q.strings [tèt].
Sa a se pa reyèlman nenpòt ki mwens efikas.
Ou ta ka panse a li kòm w ap dereferencing li epi li Lè sa a, ap resevwa adrès la nan,
men du a pral tradui li nan sa nou te genyen anvan de tout fason, q.strings + tèt.
Nenpòt fason ou vle panse a li.
>> Ak konbyen bytes nou vle yon kopi?
[Elèv] Kapasite - tèt.
Kapasite - tèt.
Lè sa a, ou ta ka toujou ekri yon egzanp
Pou detèminen si sa a, se dwa.
[Elèv] Li bezwen divize pa 2 Lè sa a,.
Yeah, se konsa mwen devine nou te ka sèvi ak gwosè yo.
Nou toujou gen gwosè yo te-
lè l sèvi avèk gwosè, nou gen gwosè egal a 4.
Gwosè nou an se 4. Tèt nou se 1.
Nou vle yon kopi eleman sa yo 3.
Sa a saniti nan tcheke ki gwosè - tèt se kòrèkteman 3.
Ak ap vini tounen isit la, tankou nou te di anvan,
si nou itilize kapasite, Lè sa a, nou ta gen divize pa 2
paske nou te deja grandi kapasite nou an, Se konsa, olye, nou pwal sèvi ak gwosè yo.
Ke tout kopi ki pòsyon.
Koulye a, nou bezwen yon kopi pòsyon nan lòt, pòsyon sa a, ki rete nan kòmansman an.
>> Sa a pral memmove nan ki pozisyon?
[Elèv] Plus gwosè - tèt.
Wi, se konsa nou te deja kopye nan gwosè - bytes tèt,
ak Se konsa, kote nou vle a kapab bay kopi bytes yo rete a se nouvo
ak Lè sa a, gwosè mwens-byen, ki kantite bytes nou te deja kopye pous
Lè sa a, kote n ap kopye soti nan?
[Elèv] Q.strings [0].
[Rob B.] Wi, q.strings.
Nou te ka swa fè & q.strings [0].
Sa a se siyifikativman mwens komen pase sa.
Si li jis pral fè 0, Lè sa a, ou pral yo gen tandans wè q.strings.
Sa a kote nou ap kopye soti nan.
Konbyen bytes nou kite a kapab bay kopi? >> [Elèv] 10.
Dwat.
[Elèv] nou dwe anpil anpil pitit 5 - 10 fwa gwosè a nan bytes yo oswa yon bagay?
Yeah, se konsa sa a se kote-ki sa egzakteman yo nou kopye?
[Elèv] [fèbl]
Ki sa ki se ki kalite bagay nan nou ap kopye?
[Elèv] [fèbl]
Yeah, se konsa yo nan Char * ke nou ap kopye, nou pa konnen ki kote sa yo ap vini soti nan.
Oke, kote yo ap lonje dwèt a, tankou strings yo, nou fini pouse l 'sou nat la
oswa enqueuing sou nat la.
Ki kote sa yo ap vini soti nan, nou pa gen okenn lide.
Nou jis bezwen kenbe tras nan yo nan * Char tèt yo.
Nou pa vle a kapab bay kopi gwosè - bytes nan tèt yo.
Nou vle yon kopi gwosè - tèt yo * Char,
pou nou ap ale nan anpil anpil pitit sa a pa sizof (Char *).
Menm desann isit la, tèt * sizof (Char *).
>> [Elèv] Ki sa ki sou [fèbl]?
Dwa sa-a isit la?
[Elèv] Non, pi ba a sa, gwosè a - tèt.
[Rob B.] Dwa sa a isit la?
Aritmetik pwente.
Ki jan aritmetik konsèy ki pral travay se
li otomatikman miltipliye pa gwosè a nan kalite a ke nou ap fè fas ak.
Jis tankou sou isit la, nouvo + (gwosè - tèt)
se egzakteman ekivalan a & [gwosè - tèt] nouvo
jiskaske nou espere ke nan travay yo kòrèkteman,
depi si nou ap fè fas ak yon etalaj Int, lè sa a nou pa fè sa endèks pa int-
oswa si li nan nan gwosè nan 5, epi ou vle eleman nan 4yèm, Lè sa a, nou endèks nan la
int etalaj [4].
Ou don't-[4] * gwosè nan int.
Ki pwaye li otomatikman, ak ka sa a
se literalman ekivalan, se konsa bracket sentaks la
se jis yo pral konvèti an sa a kòm pli vit ke ou konpile.
Sa se yon bagay ou bezwen dwe fè atansyon nan ki
lè w ap ajoute gwosè - tèt
w ap ajoute pa gen yon sèl multiple.
W ap ajoute yon Char *, sa ki ka fè yon sèl bytes oswa kèlkeswa sa.
>> Lòt kesyon yo?
Okay, dequeue a pwal pi fasil.
Mwen pral ba w yon minit a aplike.
Oh, ak mwen devine sa a se sitiyasyon an menm kote
sa ki ka a enqueue, si nou ap enqueuing nil,
petèt nou vle manch li yo, petèt nou pa fè sa.
Nou pa pral fè l 'ankò isit la, men menm jan ak ka chemine nou an.
Si nou enqueue nil, nou ta ka vle respekte l '.
Nenpòt moun ki gen kèk kòd mwen ka rale moute?
[Elèv] Mwen te jis gen dequeue.
Haitian Creole 2 se ke-oke.
Ou vle eksplike?
[Elèv] Premyèman, ou asire ou ke gen nan yon bagay nan nat la
ak ki gwosè a pral desann nan 1.
Ou bezwen fè sa, ak Lè sa a, ou retounen tèt la
ak lè sa a deplase tèt la moute 1.
Oke, kidonk gen yon ka kwen nou gen nan konsidere. Yeah.
[Elèv] Si tèt ou se nan eleman ki sot pase yo,
Lè sa a, ou pa vle tèt nan pwen deyò nan etalaj la.
>> Yeah, se konsa le pli vit ke tèt frape nan fen etalaj nou an,
lè nou dequeue, yo ta dwe tèt nou dwe modded tounen nan 0.
Malerezman, nou pa ka fè sa nan yon sèl etap.
Mwen devine wout la mwen ta pwobableman fikse li se
sa a se pral gen yon * Char, sa n ap retounen,
kèlkeswa sa non varyab ou a vle yo dwe.
Lè sa a, nou vle Mod tèt pa nou kapasite
ak Lè sa a, retounen re.
Yon anpil moun isit la, yo ta ka fè-
sa a se ka a nan-you'll wè moun fè si tèt
se pi gran pase kapasite, fè tèt - kapasite.
E se te jis ap travay nan ki sa Mod se.
Head Mod = kapasite se pi cleaner
nan yon kachte alantou pase si tèt pi gran pase tèt kapasite - kapasite.
>> Kesyon?
Okay, bagay la pase nou kite se lis lye nou an.
Ou ta ka dwe itilize a kèk nan konpòtman an lis lye si ou te fè
lye lis nan tab regle ou, si ou te fè yon tab regle.
Mwen rekòmande fè yon tab regle.
Ou ta ka te deja fè yon trye,
men ap eseye yo pi difisil.
Nan teyori, yo ap asenptotik pi byen.
Men, jis gade nan tablo a gwo,
epi eseye pa janm fè pi byen, epi yo pran plis memwa.
Tout bagay sou ap eseye fini moute ke yo te vin pi mal pou plis travay.
Li nan sa ki solisyon David Malan a toujou se
se li toujou posts solisyon trye l ', li kite nan wè kote l' kounye a se.
Ki sa ki te li anba, David J?
Li nan # 18, ki fè sa a pa fò anpil move,
e ke k ap pase yo dwe youn nan pi bon an ap eseye ou ka panse a
oswa yon sèl nan pi bon an ap eseye nan yon trye.
Eske se pa menm solisyon orijinal l '?
Mwen santi mwen tankou trye solisyon yo gen tandans yo dwe plis nan sa a ranje nan itilizasyon RAM.
>> Desann nan tèt la anpil, ak RAM l 'se nan chif yo sèl.
Desann nan direksyon pou anba a, ak Lè sa a, ou kòmanse wè ap eseye
kote ou jwenn l 'absoliman masiv RAM,
ak ap eseye yo pi difisil.
Pa totalman vo li men yon eksperyans edikatif si ou fè yon sèl.
Bagay la pase a se lis lye nou an,
ak sa yo twa bagay sa yo, pil, ke moun kap kriye, e li bay lis lye,
nenpòt bagay nan lavni ou te janm fè nan syans konpitè
pral asime ou gen abitye avèk bagay sa yo.
Yo se jis pou fondamantal nan tout bagay.
>> Linked lis, ak isit la nou te yon lis separeman lye a pwal aplikasyon nou an.
Ki sa ki separeman lye vle di kòm opoze a doubl lye? Wi.
[Elèv] Li sèlman pwen konsèy nan pwochen olye ke pwent yo,
tankou yonn la ki vin anvan li ak yon la apre li.
Yeah, se konsa nan fòma foto, ki sa ki t 'mwen jis fè?
Mwen gen de bagay sa yo. Mwen gen imaj ak foto.
Nan fòma foto, separeman nou lye lis,
inevitableman, nou gen kèk kalite konsèy nan tèt la nan lis nou an,
ak Lè sa a, nan lis nou an, nou jis gen endikasyon,
e petèt sa a pwen nil.
Li nan pral fè desen tipik ou nan yon lis separeman lye.
Yon lis doubl lye, ou ka ale bak.
Si m 'ba ou nenpòt ki ne nan lis la, lè sa a ou ka nesesèman jwenn yo
nenpòt ki ne lòt nan lis la si li se yon lis doubl lye.
Men, si mwen fè ou jwenn ne nan twazyèm nan lis la ak li nan yon lis separeman lye,
okenn fason w ap janm ale pou li ale nan nœuds yo premye ak dezyèm.
Ak gen nan benefis yo ak enkonvenyans, ak yon yon sèl evidan
nou menm ki va pran plis gwosè, epi ou gen nan kenbe tras nan kote bagay sa yo montre kounye a.
Men, nou sèlman pran swen sou separeman lye.
>> Yon bagay kèk nou ap pral fè yo aplike.
Tipedèf ne struct ou a, int mwen: struct ne * pwochen; ne.
Sa tipedèf yo ta dwe boule nan lespri ou.
Kwiz 1 yo ta dwe renmen bay yon tipedèf nan yon ne lis lye,
epi ou ta dwe kapab imedyatman madjigridji ki desann
san yo pa menm panse a li.
Mwen devine yon kesyon koup, poukisa nou bezwen struct isit la?
Poukisa pa kapab nou di ne *?
[Elèv] [fèbl]
Yeah.
Bagay la sèlman ki defini yon ne kòm yon bagay
se tipedèf nan tèt li.
Men, kòm nan pwen sa a, lè nou ap kalite analyse nan definisyon sa a ne struct,
nou pa fini tipedèf nou ankò, pou depi tipedèf a pa t 'fini,
ne pa egziste.
Men, struct ne fè, ak sa a ne nan isit la,
sa a ta ka tou rele nenpòt lòt bagay.
Sa a te ka rele n.
Li ta ka rele lye ne lis la.
Li ta ka rele anyen.
Men, sa a ne struct bezwen yo dwe rele menm bagay la tankou sa a ne struct.
Ki sa ou rele sa a gen yo tou pou isit la,
Pou fè sa ki tou reponn pwen an dezyèm nan kesyon an
ki se poukisa-yon anpil fwa lè ou wè strukt ak typedefs nan strukt,
ou pral wè strukt anonim kote w ap jis wè tipedèf struct,
egzekisyon diksyonè struct,, oswa kèlkeswa sa.
>> Poukisa isit la nou bezwen di ne?
Poukisa nou pa ka li dwe yon struct anonim?
Li nan prèske menm repons la.
[Elèv] Ou bezwen pou fè referans a li nan struct la.
Yeah, nan struct a, ou bezwen gade nan struct nan tèt li.
Si ou pa bay struct a yon non, si li nan yon struct anonim, ou pa ka al gade nan li.
Ak dènye men pa piti-sa yo dwe tout ap yon ti jan dwat,
epi yo ta dwe ede w reyalize, si w ap ekri sa a desann
ke w ap fè yon bagay mal, si sa yo kalite bagay sa yo pa fè sans.
Dènye, men pa pi piti, poukisa sa a gen yo dwe struct * ne?
Poukisa nou pa ka li jis ap struct ne vin apre a?
[Elèv] pwente struct kap vini an.
Sa a inevitableman ki sa nou vle.
Poukisa t 'kapab li pa janm vin yon ne struct vin apre a?
Poukisa pou l 'gen yo dwe struct ne * vin apre a? Yeah.
[Elèv] Se tankou yon riban enfini.
Yeah.
[Elèv] Li ta tout ap nan yon sèl.
Yeah, jis panse a ki jan nou ta fè gwosè a oswa yon bagay.
Kantite moun ki nan yon struct se fondamantalman + oswa - kèk modèl isit la oswa si gen.
Li nan fondamantalman pral fè sòm total la nan gwosè yo nan bagay ki nan struct la.
Dwa sa-a isit la, san li pa chanje anyen, gwosè a a pwal fasil.
Kantite moun ki nan ne struct a pwal gwosè nan mwen gwosè + nan pwochen.
Kantite moun ki nan mwen a pwal 4. Kantite moun ki nan pwochen a pwal 4.
Kantite moun ki nan ne struct a pwal 8.
Si nou pa gen * a, panse a sizof,
Lè sa a, sizof (mwen) a pwal 4.
Kantite moun ki nan ne struct pwochen a pwal gwosè nan mwen + gwosè nan ne struct pwochen
+ Gwosè nan mwen gwosè + nan ne struct kap vini an.
Li ta yon rkursyon enfini nan nœuds.
Sa a se poukisa sa a se ki jan bagay yo dwe fè.
>> Yon fwa ankò, definitivman memorize sa,
oswa omwen konprann li ase ke ou ka kapab
rezon ki fè nan sa li ta dwe sanble.
Bagay sa yo nou ap ale nan vle aplike.
Si longè nan lis la-
ou ta ka tronpe epi kenbe otou yon
mondyal longè oubyen yon bagay, men nou pa ap ale nan fè sa.
Nou pral konte longè nan lis la.
Nou te gen, se konsa sa a, se fondamantalman tankou yon rechèch,
pou nou gen yon lis lye nan nonm antye relatif yo wè si sa a se nonb antye relatif nan lis la lye.
Prepan ki pral insert nan kòmansman an nan lis la.
Tache ki pral insert nan fen an.
Insert_sorted ki pral insert nan pozisyon an Ranje nan lis la.
Kalite Insert_sorted nan sipoze ke ou pa janm te itilize prepan oswa tache nan fason move.
>> Insert_sorted lè w ap aplike insert_sorted-
Se pou nou di nou gen lis lye nou an.
Sa a se ki sa li kounye a sanble, 2, 4, 5.
Mwen vle insert 3, kifè, osi lontan ke se lis la tèt li deja klase,
li fasil jwenn kote 3 ki dwe.
Mwen kòmanse nan 2.
Okay, 3 pi gran pase 2, Se konsa, mwen vle kenbe prale.
Oh, 4 se twò gwo, se konsa mwen konnen 3 ki pral ale nan ant 2 ak 4,
e mwen gen ranje endikasyon ak tout bagay sa.
Men, si nou pa t 'estrikteman itilize insert_sorted,
renmen kite yo jis di mwen prepan 6,
Lè sa a, lis lye mwen ki pral vin tounen sa a.
Li kounye a pa fè okenn sans, se konsa pou insert_sorted, ou ka jis asime
ki se lis la Ranje, menm si operasyon egziste
ki kapab lakòz li pa t 'dwe klase, ak sa a, se li.
Jwenn yon itil insert-konsa sa yo se bagay sa yo prensipal w ap ale nan gen a aplike.
>> Pou kounye a, pran yon minit yo fè longè epi li gen,
ak sa yo ki ta dwe relativman rapid.
Apochan tan fèmen, se konsa nenpòt moun ki gen anyen pou longè oswa gen?
Yo pwal santi yo gen prèske idantik.
[Elèv] Length.
Ann gade pou wè, revizyon.
Oke.
Ou vle eksplike?
[Elèv] Mwen te jis kreye yon ne konsèy ak inisyalize li nan premye, ki se varyab mondyal nou an,
ak Lè sa a, mwen tcheke wè si li nan nil Se konsa, mwen pa jwenn yon fay segman epi retounen 0 si se ka a.
Sinon, mwen riban a, kenbe tras nan nan nonb antye relatif
konbyen fwa mwen te jwenn aksè eleman nan pwochen nan lis la
ak nan operasyon an kantite menm tou aksè a ki eleman reyèl,
ak Lè sa a, mwen kontinyèlman fè chèk la yo wè si li nan nil,
epi si li nan nil, lè sa a li echou ak jis retounen nimewo a nan eleman mwen te jwenn aksè.
>> [Rob B.] nenpòt moun ki gen nenpòt kòmantè sou anyen?
Sa a sanble amann ekzaktitid gen bon konprann.
[Elèv] Mwen pa panse ou bezwen ne a == nil.
Yeah, kidonk si ne == nil 0 retou.
Men, si ne == nil Lè sa a, sa a-oh, gen yon pwoblèm ekzaktitid.
Li te jis w ap retounen mwen, men li pa nan dimansyon kounye a.
Ou jis bezwen int mwen, se konsa mwen = 0.
Men, si ne se nil, lè sa a mwen la toujou pral fè 0,
e nou pral retounen 0, se konsa ka sa a se idantik.
Yon lòt bagay ki komen se kenbe deklarasyon an
nan andedan ne nan la pou riban.
Ou kapab di-oh, pa gen okenn.
Ann kenbe l tankou sa a.
Mwen ta pwobableman mete int mwen = 0 isit la,
Lè sa a, ne * ne = premye nan isit la.
Ak sa a se pwobableman kouman-debarase tèt ou ak sa a kounye a.
Sa a se pwobableman ki jan mwen ta ekri li.
Ou kapab tou-gade li tankou sa a.
Sa a pou estrikti riban dwa isit la
yo ta dwe prèske kòm natirèl ak ou tankou pou int mwen 0 =
mwen se mwens pase longè etalaj mwen + +.
Si lè sa a jan ou repekte sou yon etalaj, sa a se ki jan ou repekte sou yon lis lye.
>> Sa a ta dwe dezyèm nati nan kèk pwen.
Avèk ki nan tèt, sa a se pral fè prèske menm bagay la.
W ap ale nan vle repekte sou yon lis lye.
Si ne-Mwen pa gen okenn lide ki sa ki valè a yo rele. La
Ne mwen.
Si valè a nan ne = mwen retounen vre, e ke se li.
Remake wout la sèlman nou janm retounen fo
se si nou repekte sou lis la tout antye lye epi pa janm retounen vre,
pou ke nan ki sa sa a fè.
Kòm yon bò nòt-nou pwobableman pa pral jwenn kole oswa prepan.
>> Quick nòt dènye.
Si ou wè mo kle a estatik, kidonk kite a di estatik int konte = 0,
Lè sa a, nou fè konte + +, ou ka fondamantalman panse a li kòm yon varyab mondyal,
menm si mwen jis di sa a se pa ki jan nou ap ale nan aplike longè.
Mwen fè sa a isit la, ak Lè sa a, konte + +.
Nenpòt fason nou ka antre nan yon ne nan lis lye nou an, nou yo ap incrementing konte nou an.
Pwen nan sa a se sa mo kle a estatik vle di.
Si mwen jis te gen int konte = 0 ki ta ka yon regilye fin vye granmoun varyab mondyal.
Ki sa ki estatik vle di Int konte se ke li se yon varyab mondyal pou sa a dosye.
Li enposib pou kèk dosye lòt,
renmen panse a pset 5, si ou te kòmanse.
Ou gen tou de speller.c, epi ou gen dictionary.c,
ak si ou jis deklare yon bagay global, Lè sa a, anyen nan speller.c
ou kapab jwenn aksè nan dictionary.c ak vis vèrsa.
Varyab Global yo yo aksesib pa nenpòt. Dosye c,
men varyab estatik yo, se sèlman aksesib soti nan nan dosye a poukont li,
Se konsa andedan nan yon korektè oswa andedan nan dictionary.c,
sa a se kalite ki jan mwen ta deklare varyab mwen an pou gwosè a nan etalaj mwen
oswa gwosè a nan nimewo m 'lan nan mo nan diksyonè a.
Depi mwen pa vle deklare yon varyab mondyal ke nenpòt moun ki gen aksè a,
Mwen vrèman sèlman pran swen sou li pou rezon pwòp mwen.
>> Bagay nan bon sou sa a tou se non bagay la antye kolizyon.
Si kèk dosye lòt ap eseye sèvi ak yon varyab mondyal rele konte, bagay sa yo ale trè, trè sa ki mal,
kidonk sa a joliman kenbe bagay sa yo san danje, epi sèlman ou kapab jwenn aksè nan li,
ak pa gen yon lòt kapab, epi si yon lòt moun deklare yon varyab mondyal rele konte,
Lè sa a, li pa pral entèfere ak varyab estatik ou rele konte.
Sa a ki sa estatik se. Li se yon dosye varyab mondyal.
>> Kesyon sou anyen?
Tout ansanm. Bye.
[CS50.TV]