[Powered by Google Translate] [Artikolu 6] [aktar komdi] [Rob Bowden] [Università ta 'Harvard] [Dan huwa CS50.] [CS50.TV] Nistgħu ras għal sezzjoni tagħna ta 'mistoqsijiet. I bagħtet l-URL għall-ispazju qabel. Il-bidu tas-sezzjoni tal-mistoqsijiet jgħidu ' apparentement M'inix totalment unsick-hija kwistjoni faċli ħafna ta 'ftit dak li huwa valgrind? X'jagħmel valgrind do? Kulħadd trid tgħid liema valgrind ma? [Student] Verifiki tal-memorja tnixxijiet. Yeah, valgrind hija kontrollur memorja ġenerali. Hija, fl-aħħar, jgħidlek jekk għandek xi tnixxijiet memorja, li huwa l-aktar dak li aħna qed tużaha għal għaliex jekk inti tixtieq li jmorru tajjeb fl-sett problema jew jekk inti tixtieq li tikseb fuq il-bord kbar, jeħtieġ li jkollok l-ebda tnixxijiet memorja li tkun, u fil-każ li għandek xi telf tal-memorja li inti ma tistax issib, ukoll iżomm f'moħħu li kull meta inti tiftaħ fajl u jekk inti ma tagħlaq din, li l-nixxija memorja. Ħafna nies qed ifittxu għal xi node li dawn mhux qed ħelsien meta verament, huma ma tagħlaq il-dizzjunarju fl-ewwel pass. Hija wkoll jgħidlek jekk għandek xi invalidu jaqra jew jikteb, li jfisser li jekk inti tipprova u jistabbilixxu valur dan huwa lil hinn mill-aħħar tas-borġ u ma jiġri tort seq iżda valgrind qabdiet dan, kif inti m'għandekx verament tkun bil-miktub hemm, u għalhekk inti żgur ma għandu jkollhom xi waħda minn dawk lanqas. Kif tuza valgrind? Kif tuza valgrind? Din hija mistoqsija ġenerali ta ' tip ta 'run u tħares lejn l-output. L-output huwa joħnoq ħafna drabi. Hemm ukoll żbalji gost fejn jekk għandek xi ħaġa ħażina terriblement jiġri fil-linja, imbagħad eventwalment se ngħid, "żbalji Way wisq. Jien ser tieqaf għadd issa. " Huwa bażikament output testwali li inti għandek biex parse. Fl-aħħar, se jgħidlek xi tnixxijiet memorja li għandek, kemm blokki, li jista 'jkun utli minħabba jekk huwa unfreed blokka waħda, allura huwa normalment aktar faċli biex issib minn 1,000 blokki unfreed. 1000 blokki unfreed probabbilment ifisser li int ma ħelsien listi relatati tiegħek b'mod xieraq jew xi ħaġa. Li valgrind. Issa għandna sezzjoni tagħna ta 'mistoqsijiet, li inti m'għandekx bżonn biex tniżżel. Tista 'tikklikkja fuq l-isem tiegħi u iġbed minnhom sa fl-ispazju. Issa ikklikkja fuq lili. Reviżjoni 1 se jkun munzell, li aħna qed tagħmel l-ewwel. Reviżjoni 2 se jkun kju, u Reviżjoni 3 se jkun l-lista waħedhom marbuta. Starting off ma munzell tagħna. Kif jgħid hawnhekk, munzell huwa wieħed mill-aktar bażika, istrutturi fundamentali tad-data ta 'xjenza tal-kompjuter. L-eżempju ħafna prototip huwa il-munzell ta 'dixxijiet fis-sala dining. Huwa bażikament kull meta inti qed jiġu introdotti għall-munzell, xi ħadd ikun se ngħid, "Oh, bħal munzell ta 'dixxijiet." Inti munzell-trejs up. Imbagħad meta tmur biex jiġbdu trej, l-trej 1 li l-jkollna jinġibed hija l-aħħar wieħed li tqiegħed fuq il-munzell. Il-munzell wkoll simili li jgħid hawn 'il aħna għandna l-segment tal-memorja imsejjaħ il-munzell. U għaliex huwa msejjaħ il-munzell? Minħabba bħal struttura tad-data munzell, pushes u pops frames munzell fuq il-munzell, fejn frejms munzell huma bħal sejħa speċifika ta 'funzjoni. U bħal munzell, inti dejjem se jkollu jagħti lura minn sejħa funzjoni qabel ma inti tista 'tikseb l isfel fil frames munzell aktar baxxi mill-ġdid. Ma jistax ikollok prinċipali sejħa sejħa foo bar u ritorn bar li direttament prinċipali. Huwa dejjem qbilna li ssegwi l-munzell korretta imbuttar u popping. L-operazzjonijiet 2, bħal I said, huma push u pop. Dawk huma termini universali. Inti għandek tkun taf push u pop f'termini ta 'stacks x'ikun. Ser naraw kjuwijiet huma tip ta 'differenti. Hija ma verament ikollhom terminu universali, iżda push u pop huma universali għall stacks. Push huwa biss jitqiegħed fuq il-munzell. Pop hija tluq il-munzell. U naraw hawnhekk għandna munzell tagħna Struct typedef, hekk aħna kordi char **. Ma jsibux jibża minn xi **. Dan ser jispiċċa jkun firxa ta 'spag jew firxa ta 'indikaturi għall-karattri, fejn pointers għall-karattri għandhom tendenza li jkunu kordi. Ma għandhom ikunu kordi, iżda hawnhekk, dawn qed tmur biex tkun kordi. Għandna firxa ta 'spag. Aħna jkollu daqs, li jirrappreżenta kemm elementi huma bħalissa fuq il-munzell, u allura għandna l-kapaċità, li huwa kemm l-elementi jista 'jkun fuq il-munzell. Il-kapaċità għandha tibda off bħala xi ħaġa akbar minn 1, iżda d-daqs se tibda off bħala 0. Issa, hemm bażikament tliet modi differenti inti tista 'taħseb munzell. Ukoll, hemm probabbilment aktar, iżda l-żewġ modi prinċipali huma inti tista 'timplimenta billi tuża firxa, jew inti tista' timplimenta billi tuża 'lista marbuta. Listi Linked huma tip ta 'trivjali li jagħmlu stacks minn. Huwa faċli ħafna li tagħmel munzell użu ta 'listi marbuta, hekk hawn, aħna qed tmur biex tagħmel munzell użu arrays, u mbagħad tuża arrays, hemm ukoll żewġ modi kif inti tista 'taħseb dwar dan. Qabel, meta I said għandna kapaċità għall-munzell, sabiex inkunu jistgħu joqogħdu element fuq il-munzell. Il-mod kif wieħed jista 'jiġri huwa hekk kif inti hit 10 Elementi, allura inti qed isir. Inti tista 'taf li hemm fuq marbut ta' 10 affarijiet fid-dinja li int qatt ser ikollhom aktar minn 10-affarijiet fuq munzell tiegħek, f'liema każ inti jista 'jkollhom fuq marbut fuq id-daqs tal-munzell tiegħek. Jew inti jista 'jkollhom tiegħek munzell jiġu unbounded, imma jekk inti qed tagħmel firxa, dan ifisser li kull wieħed ħin inti hit 10 Elementi, allura int se jkollhom jikber għal 20 elementi, u meta inti hit 20 elementi, int se jkollhom jikbru firxa tiegħek sa 30-elementi jew 40 elementi. Inti ser jeħtieġ li tiżdied il-kapaċità, li huwa dak li aħna qed tmur biex tagħmel hawn. Kull darba waħda nilħqu d-daqs massimu ta 'munzell tagħna, meta aħna timbotta xi ħaġa oħra fuq, aħna qed tmur għall-ħtieġa li tiżdied il-kapaċità. Hawnhekk, aħna għandna push iddikjarati bħala push bool (char * str). Str * Char huwa l-sekwenza li aħna imbuttar fuq il-munzell, u bool biss jgħid jekk aħna irnexxielu jew fallew. Kif nistgħu jonqsu? X'inhu l-ċirkustanza biss li inti tista 'taħseb fejn aħna jeħtieġ li jirritornaw falza? Yeah. [Student] Jekk huwa sħiħ u aħna qed tuża implimentazzjoni tmiss. Yeah, hekk kif nistgħu jiddefinixxu 'huwa wieġeb jekk huwa sħiħ u aħna qed tuża implimentazzjoni tmiss. Imbagħad aħna se definittivament lura falza. Hekk kif aħna hit 10 affarijiet fil-firxa, ma nistgħux tajbin 11, hekk aħna ritorn foloz. X'jiġri jekk ikun unbounded? Yeah. Jekk inti ma tistax tespandi l-firxa għal xi raġuni. Yeah, hekk memorja huwa riżorsa limitata, u eventwalment, jekk irridu żżomm affarijiet timbotta fuq il-munzell fuq u aktar mill-ġdid, aħna qed tmur biex jippruvaw u jallokaw firxa akbar li tajbin il-kapaċità akbar, u malloc jew kwalunkwe aħna qed jużaw se jirritornaw falza. Ukoll, malloc se terġa 'lura null. Ftakar, kull wieħed ħin inti qatt sejħa malloc, inti għandek tkun verifika biex tara jekk prospetti nulli jew inkella li huwa tnaqqis korrettezza. Peress li aħna rridu li jkollhom munzell unbounded, il-każ biss aħna qed tmur biex jirritorna falza hija jekk nippruvaw tiżdied il-kapaċità u malloc jew kwalunkwe prospetti falza. Imbagħad pop jieħu ebda argumenti, u dan jirritorna l-sekwenza li huwa fuq il-quċċata tal-munzell. Tkun xi tkun ġiet reċentement imbuttat fuq il-munzell huwa dak pop huwa jirritorna, u wkoll tneħħi mis-munzell. U tinnota li dan jirritorna null jekk ikun hemm xejn fuq il-munzell. Huwa dejjem possibbli li l-munzell hu vojt. Fil Java, jekk int użati biex dan, jew lingwi oħra, jippruvaw pop minn munzell vojt tista 'tikkawża eċċezzjoni jew xi ħaġa. Iżda fis-C, null hija tip ta 'lott tal-każijiet kif nittrattaw dawn il-problemi. Jirritornaw null hija kif aħna qed tmur biex turi li l-munzell kien vojt. Imxejna sakemm kodiċi li se tittestja l-funzjonalità munzell tiegħek, jimplimentaw timbotta u pop. Dan mhux se jkun hemm ħafna ta 'kodiċi. I se-fatt, qabel ma nagħmlu dan, ħjiel ħjiel-, jekk inti ma bbenefikawx dan, malloc mhuwiex l-funzjoni unika li jalloka memorja fuq il-munzell għalik. Hemm familja ta 'funzjonijiet ALLOC. L-ewwel hija malloc, li int użati biex. Imbagħad hemm calloc, li ma l-istess ħaġa bħat malloc, iżda se żero kollox barra għalik. Jekk inti stajt qatt riedu biex jistabbilixxu kollox biex null wara mallocing xi ħaġa inti għandek għadek użati calloc fl-ewwel post minflok bil-miktub a għal loop għal żero l-blokk kollu ta 'memorja. Realloc huwa simili malloc u għandha ħafna ta 'każijiet speċjali, imma bażikament ma realloc dak li huwa hija tieħu pointer li kienu diġà ġew allokati. Realloc hija l-funzjoni trid tkun li tingħata attenzjoni lill hawnhekk. Huwa jieħu pointer li kienu diġà ġew lura mill malloc. Ejja ngħidu li inti titlob minn malloc pointer ta '10 bytes. Imbagħad aktar tard inti tirrealizza int riedu 20 bytes, sabiex inti sejħa realloc fuq dik pointer bi 20 bytes, u realloc se awtomatikament kopja fuq kollox għalik. Jekk inti biss imsejħa malloc darb'oħra, bħal I jkollhom blokk ta '10 bytes. Issa I bżonn blokk ta '20 bytes, hekk jekk I malloc 20 bytes, allura għandi li manwalment kopja fuq il-bytes 10 mill-ewwel ħaġa fil-ħaġa tieni u mbagħad ħielsa l-ewwel ħaġa. Realloc se tieħu ħsieb dan għalik. Avviż tal-firma se tkun * null, li huwa biss jirritorna pointer għall-blokk ta 'memorja, allura null * ptr. Inti tista 'taħseb * null bħala pointer ġeneriku. Ġeneralment, int qatt jittrattaw * null, iżda malloc qed jirritornaw * null, u allura huwa biss użat bħal dan huwa attwalment se tkun * char. Il * vojt preċedenti li kienu ġew lura mill malloc issa se jiġi mgħoddi lill realloc, u mbagħad daqs huwa n-numru ġdid ta 'bytes li trid talloka, sabiex kapaċità ġdida tiegħek. I ser jagħtuk ftit minuti, u tagħmel dan fl-ispazju tagħna. Tibda bl Reviżjoni 1. I ser tieqaf wara nisperaw dwar ħin biżżejjed biex jimplimentaw timbotta, u mbagħad I ser jagħtuk ieħor break li tagħmel pop. Imma huwa verament mhux li l-kodiċi ħafna fil-livelli kollha. Il-kodiċi l-aktar huwa probabbilment l-għalf espansjoni, l-espansjoni tal-kapaċità. Okay, l-ebda pressjoni li jkun kompletament isir, iżda sakemm tħoss bħal int fuq il-passaġġ dritt, li tajjeb. Ħadd ma jkollu xi kodiċi li jħossu komdu miegħi ġbid up? Yeah, I se, imma ħadd ma jkollu xi kodiċi nista 'pull up? Okay, inti tista 'tibda, isalvawh, tkun xi tkun? Jien dejjem tinsa dak il-pass. Okay, tħares lejn timbotta, tridu biex jispjegaw il-kodiċi tiegħek? [Student] L-ewwelnett, I żied il-daqs. I raden forsi I għandu jkollhom dik il-xorta, I żied id-daqs, u nara jekk huwa inqas mill-kapaċità. U jekk huwa inqas mill-kapaċità, I żid mal-firxa li diġà għandna. U jekk mhuwiex, I immoltiplika l-kapaċità bi 2, u jien jirriallokaw l-firxa kordi għal xi ħaġa ta 'daqs kapaċità akbar issa. U mbagħad jekk dan ma jirnexxix, I tell-utent u r-ritorn foloz, u jekk huwa multa, allura nressaq l-sekwenza fil-post il-ġdid. [Rob B.] Wkoll avviż li aħna użati operatur bitwise sbieħ hawn li jimmultiplikaw bi 2. Ftakar, bidla xellug huwa dejjem se jkun immultiplikat bi 2. Bidla Dritt huwa maqsum bi 2 sakemm inti tiftakar li dan ifisser iddividi 2 bħal fil integer diviż bi 2. Jista truncate '1 hawn jew hemm. Iżda bidla xellug ta '1 huwa dejjem se jiġi mmultiplikat bi 2, sakemm inti overflow-limiti tal-eqreb numru sħiħ, u allura mhux se jkun. A kumment ġenb. I tixtieq tagħmel-dan mhux se jibdlu l-kodifikazzjoni kwalunkwe għamla possibbli, iżda I tixtieq tagħmel xi ħaġa bħal din. Hija fil-fatt se jagħmilha ftit itwal. Forsi dan mhux il-każ perfett biex juru dan, imma I simili li jaqsmu dan is f'dawn blokki ta ' okay, jekk dan jiġri jekk, allura jien se jagħmlu xi ħaġa, u allura l-funzjoni isir. I m'għandhomx bżonn li mbagħad iscroll għajnejn tiegħi it-triq kollha l-funzjoni biex tara x'jiġri wara l-ieħor. Huwa jekk dan jiġri jekk, imbagħad I biss lura. Hija wkoll il-benefiċċju miżjud ta 'sbieħ kollox lil hinn minn dan Issa huwa jixxaqleb xellug darba. I m'għadhomx ħtieġa li-jekk inti qatt qrib ridiculously konzijiet, allura dawk bytes 4 jistgħu jgħinu, u wkoll il-xi ħaġa aktar xellug huwa, l-inqas megħlub tħossok jekk tixtieq-okay, I għandek tiftakar Jien bħalissa loop filwaqt li ġewwa ta 'ġewwa inkella ta' għall-loop. Kullimkien inti tista 'tagħmel dan ritorn immedjatament, I tip ta' prodotti simili. Huwa totalment mhux obbligatorju u mhux mistennija fi kwalunkwe mod. [Student] Jekk ikun hemm daqs - fil-kondizzjoni jonqsu? Il-kondizzjoni jonqsu hawnhekk hija li aħna ma realloc, hekk iva. Avviż kif fil-kondizzjoni jonqsu, preżumibbilment, sakemm aħna Jittieħed ħielsa wara, aħna qed dejjem se jonqsu ebda kwistjoni kif ħafna drabi aħna nippruvaw biex timbotta xi ħaġa. Jekk inżommu imbuttar, inżommu daqs inkrementazzjoni, anke jekk aħna mhux qed ipoġġu xejn fuq il-munzell. Normalment aħna ma inkrement tad-daqs sal- wara aħna rnexxielna poġġih fuq il-munzell. Nixtiequ tagħmel dan, jgħidu, jew hawn u hawn. U allura minflok qal s.size ≤ kapaċità, huwa inqas minn kapaċità, biss għaliex aħna mċaqalqa kien kollox fejn. U ftakar, l-uniku post li nistgħu possibilment ritorn foloz hija hawnhekk, fejn realloc lura null, u jekk jiġri li tiftakar iżball standard, forsi inti tista 'tikkunsidra f'dan il-każ fejn inti tixtieq li jistampaw żball standard, stderr hekk fprintf minflok sempliċiment l-istampar direttament lill out standard. Għal darb'oħra, li mhux aspettattiva, imma jekk huwa żball, tip printf, allura inti tista 'tixtieq li tagħmel jistampaw biex iżball standard minflok l-istandard. Kull min ikollu xi ħaġa oħra li wieħed jinnota? Iva. [Student] Tista 'tmur fuq il-[inaudible]? [Rob B.] Iva, l-binariness attwali ta 'dan jew biss dak li huwa? [Student] Allura inti immoltiplika lilha mill 2? [Rob B.] Yeah, bażikament. Fl-art binarja, aħna dejjem ikollhom sett tagħna ta 'numri. Iċ-ċaqliq din xellug ta '1 bażikament ddaħħalha hawn fuq il-lemin. Lura għal dan, biss ftakar li kollox fil-binarju huwa poter ta '2, u għalhekk dan jirrappreżenta 2 lill-0, din 2 għall-1, dan 2 għall-2. Billi ddaħħal 0 sa-lemin issa, aħna biss bidla kollox fuq. Liema użati biex ikunu 2 lill-0 hija issa 2 għall-1, huwa 2 għall-2. Il-lemin li aħna mdaħħal hija neċessarjament se jkun ta '0, li jagħmel sens. Jekk inti qatt immoltiplika numru bi 2, mhuwiex ser jispiċċaw bil-fard, sabiex l-2 għall-poġġi 0 għandhom ikunu 0, u dan huwa dak I nofs mwissija dwar qabel hija jekk inti ma jiġri li bidla lil hinn mill-numru ta 'bits fil integer, allura dan 1 huwa ser jispiċċaw jmorru off. Dik hija l-uniku inkwiet jekk jiġri li tkun jittrattaw ma 'kapaċitajiet verament kbar. Iżda f'dak il-punt, allura inti qed jittrattaw ma 'firxa ta' biljuni ta 'affarijiet, li jistgħu ma jidħlux fil-memorja xorta waħda. Issa nistgħu nibdew biex pop, li huwa saħansitra aktar faċli. Inti tista 'tagħmel dan simili jekk jiġri li pop mazz sħiħ, u issa int b'nofs kapaċità mill-ġdid. Inti tista realloc biex tiċkien l-ammont tal-memorja għandek, imma inti ma għandekx għalfejn tinkwieta dwar dan, sabiex il-każ realloc biss se tkun tkabbir tal-memorja, qatt tnaqqis memorja, li se tagħmel super pop faċli. Issa kjuwijiet, li ser ikunu simili stacks, iżda l-ordni li inti tieħu affarijiet out hija maqluba. L-eżempju prototip ta 'kju hija linja, so I raden jekk inti kienu l-Ingliż, I kien qal eżempju prototip ta 'kju hija kju. Allura bħal linja, jekk int l-ewwel persuna fil-linja, inti tistenna li tkun l-ewwel persuna barra mill-linja. Jekk int l-aħħar persuna fil-linja, inti ser tkun l-persuna servis aħħar. Aħna nsejħu dan mudell FIFO, filwaqt munzell kien mudell LIFO. Dawk il-kliem huma pjuttost universali. Bħal stacks u b'differenza matriċi, kjuwijiet tipikament ma jippermettux aċċess għall-elementi fin-nofs. Hawnhekk, munzell, għandna push u pop. Hawnhekk, aħna jiġri li sejħu lilhom enqueue u dequeue. Għandi wkoll smajt minnhom imsejħa shift u unshift. Stajt jinstemgħu nies jgħidu push u pop li japplikaw ukoll għall-kjuwijiet. I smajt daħħal, neħħi, hekk timbotta u pop, jekk inti qed jitkellem dwar stacks, inti imbuttar u popping. Jekk inti qed jitkellem dwar kjuwijiet, inti tista 'pick-kliem li trid tuża għall-inserzjoni u t-tneħħija, u m'hemm l-ebda kunsens dwar dak li għandu jissejjaħ. Iżda hawnhekk, għandna enqueue u dequeue. Issa, il-Struct jistenna kważi identiku għall-Struct munzell. Imma aħna għandna biex iżommu kont ta 'ras. I raden huwa jgħid stabbiliti hawn, imma għaliex għandna bżonn l-kap? Il-prototipi huma bażikament identiċi għal timbotta u pop. Inti tista 'taħseb bħala push u pop. L-unika differenza hija pop huwa jirritorna-minflok l-aħħar, huwa jirritorna l-ewwel. 2, 1, 3, 4, jew xi ħaġa. U hawnhekk l-bidu. Kju tagħna huwa kompletament sħiħa, b'hekk m'hemm l-erba 'elementi fiha. It-tmiem tal kju tagħna bħalissa 2, u issa immorru daħħal xi ħaġa oħra. Meta aħna tixtieq li daħħal dik xi ħaġa oħra, dak li għamilna għall-verżjoni munzell huwa aħna estiż blokk tagħna ta 'memorja. X'inhi l-problema ma 'dan? [Student] Inti tmexxi l-2. What I said qabel dwar it-tmiem tal-kju, dan ma jagħmilx sens li nibdew fl-1, allura rridu dequeue 1, imbagħad dequeue 3, allura dequeue 4, imbagħad dequeue 2, allura dequeue dan wieħed. Aħna ma tistax tuża realloc issa, jew għall-inqas, inti għandek tuża realloc b'mod differenti. Imma inti probabilment m'għandux biss l-użu realloc. Inti ser ikollok manwalment kopja memorja tiegħek. Hemm żewġ funzjonijiet għal kopja memorja. Hemm memcopy u memmove. Jien bħalissa qari tal-paġni bniedem biex tara liema waħda int ser jridu jużaw. Okay, memcopy, id-differenza hija li memcopy u memmove, wieħed mankijiet-każ b'mod korrett fejn int ikkupjar f'reġjun li jiġri li jikkoinċidu fir-reġjun int ikkopjar minn. Memcopy ma opera. Memmove ma. Inti tista 'taħseb l-problema as- ejja ngħidu li nixtieq kopja dan Guy, dawn l-erba dan Guy fuq. Fl-aħħar, dak l-array għandu look like wara li l-kopja huwa 2, 1, 2, 1, 3, 4, u mbagħad xi għalf fl-aħħar. Iżda dan huwa dipendenti fuq l-ordni li aħna fil-fatt kopja, peress li jekk aħna ma jikkunsidraw il-fatt li r-reġjun aħna qed ikkupjar fis koinċidenzi l-waħda aħna qed ikkopjar minn, allura nistgħu nagħmlu bħall bidu hawnhekk, kopja tal-2 fil-post irridu imorru, mbagħad jimxu pointers tagħna 'l quddiem. Issa aħna qed tmur biex jkun hawn u hawn, u issa rridu li kopja dan Guy fuq dan Guy u jimxu pointers tagħna 'l quddiem. Dak li aħna qed tmur biex jispiċċaw jkollna huwa 2, 1, 2, 1, 2, 1 minflok l-2 xieraq, 1, 2, 1, 3, 4 minħabba li 2, 1 mwarrba l-3 oriġinali, 4. Memmove mankijiet li b'mod korrett. F'dan il-każ, bażikament biss dejjem jużaw memmove minħabba li mankijiet dan b'mod korrett. Huwa ġeneralment ma twettaq ebda agħar. L-idea hija minflok tibda mill-bidu u l-ikkupjar b'dan il-mod bħal aħna biss ma hawn, li jibda mit-tmiem u kopji fi, u f'dak il-każ, int qatt ma jista 'jkollhom problema. M'hemm l-ebda prestazzjoni mitlufa. Dejjem uża memmove. Qatt tinkwieta dwar memcopy. U li fejn int se jkollhom separatament memmove il-porzjon imgeżwer madwar ta 'kju tiegħek. Nru inkwiet jekk mhux kompletament isir. Dan huwa aktar diffiċli milli, munzell timbotta, u pop. Kull min ikollu xi kodiċi nistgħu naħdmu ma? Anki jekk kollox kompluta? [Student] Yeah, huwa kompletament mhux kompluta, għalkemm. Kompletament mhux kompluta huwa multa sakemm aħna-tista 'tfaddal-reviżjoni? I ninsew li kull wieħed ħin. Okay, jinjora dak li jiġri meta għandna bżonn li resize l-affarijiet. Kompletament jinjoraw resize. Spjega dan il-kodiċi. Jien iċċekkjar ewwel nett jekk id-daqs huwa inqas mill-ewwel kopja ta 'kull u mbagħad wara li, I daħħal-nieħu ras + daqs, u jien kun żgur li garżi madwar il-kapaċità tal-firxa, u I daħħal il-sekwenza l-ġdida f'dik il-pożizzjoni. Imbagħad I iżżid id-daqs u r-ritorn vera. [Rob B.] Dan żgur huwa wieħed minn dawk każijiet fejn int tmur jridu li tkun qed tuża mod. Kwalunkwe tip ta 'każ fejn ikollok kisi madwar, jekk taħseb kisi madwar, l-ħsieb immedjat għandu jkun mod. Bħala ottimizzazzjoni malajr / tagħmel kodiċi tiegħek wieħed linja iqsar, tinnota li l-linja immedjatament wara dan wieħed huwa biss id-daqs + +, sabiex inti jingħaqdu li f'din il-linja, id-daqs + +. Issa stabbiliti hawn, aħna għandna l-każ fejn aħna ma jkollhomx memorja biżżejjed, hekk aħna tiżdied il-kapaċità tagħna bi 2. I raden inti jista 'jkollhom l-istess problema hawn, iżda nistgħu ninjoraw dan issa, fejn jekk inti nqast li tiżdied il-kapaċità tiegħek, allura int tmur jridu titnaqqas il-kapaċità tiegħek bi 2 għal darb'oħra. Ieħor nota qasira huwa bħad inti tista 'tagħmel + =, inti tista 'ukoll tagħmel << =. Kważi xejn tista 'tmur qabel ugwali, + =, | =, = &, << =. Char * ġdid huwa blokk ġdid tagħna ta 'memorja. Oh, hawn fuq. What do nies jaħsbu dwar it-tip ta 'blokk ġdid tagħna ta' memorja? [Istudenti] Għandu jkun ** char. Thinking lura għall Struct tagħna up here, kordi huwa dak li aħna qed allokazzjoni mill-ġdid. Aħna qed jagħmlu ħażna kollu dinamiku ġdid għall-elementi fil-kju. Dak li aħna qed tmur biex tkun tagħti lil kordi tiegħek huwa dak li aħna qed mallocing dritt issa, u għalhekk l-ġdida se tkun ta '** char. Huwa ser ikun firxa ta 'spag. Imbagħad dak li huwa l-każ taħt liema aħna qed tmur biex jirritornaw falza? [Student] Jekk aħna jkun qed jagħmel l-* char? [Rob B.] Iva, sejħa tajba. [Student] Liema kienet li? [Rob B.] Ridna li jagħmlu daqs tal * char għaliex aħna m'għadhomx- dan fil-fatt ikun problema kbira ħafna minħabba sizeof (char) ikun 1. Sizeof * char se tkun 4, hekk ħafna drabi meta int jittrattaw ints, inti għandek tendenza li jitbiegħed magħha minħabba d-daqs ta 'int u d-daqs ta' * int fuq sistema 32-bit ser ikunu l-istess ħaġa. Iżda hawnhekk, sizeof (char) u sizeof (char *) huma issa ser ikunu l-istess ħaġa. X'inhu l-ċirkustanza fejn nerġgħu lura falza? [Student] Ġdid huwa null. Yeah, jekk il-ġdid huwa null, nerġgħu lura falza, u jien ser tarmi stabbiliti hawn- [Student] [inaudible] [Rob B.] Yeah, dan huwa multa. Inti tista 'jew tagħmel 2 darbiet kapaċità jew bidla ta' kapaċità 1 u mbagħad biss sett l-isfel hawn jew ikun x'ikun. Aħna ser tagħmel dan kif aħna kieku. Kapaċità >> = 1. U int qatt ser ikollhom għalfejn tinkwieta dwar jitilfu l-post tal-1 ta għaliex inti xellug qalbu minn 1, għalhekk il-post tal-1 huwa neċessarjament 0, hekk dritt ċaqliq minn 1, int xorta ser tkun multa. [Student] Għandek bżonn biex tagħmel dan qabel ir-ritorn? [Rob B.] Iva, dan jagħmel assolutament ebda sens. Issa wieħed jassumi aħna qed tmur biex jispiċċaw jirritornaw vera għall-aħħar. Il-mod kif aħna qed tmur biex jagħmlu dawn memmoves, għandna bżonn li tkun attenta mal-mod kif nagħmlu minnhom. Ħadd ma jkollu xi suġġerimenti dwar kif nagħmlu minnhom? Hawn bidu tagħna. Inevitabbilment, irridu li tibda fil-bidu mill-ġdid u affarijiet kopja fil minn hemm, 1, 3, 4, 2. Kif inti tagħmel dan? L-ewwel, I għandek tfittex fil-paġna bniedem għall memmove mill-ġdid. Memmove, ordni ta 'argumenti huwa dejjem importanti. Irridu destinazzjoni tagħna l-ewwel, it-tieni sors, it-tielet daqs. Hemm ħafna ta 'funzjonijiet li jaqilbu sors u destinazzjoni. , Destinazzjoni sors tendenza li tkun konsistenti kemmxejn. Nimxu, x'inhu dan jirritorna? Hija prospetti pointer lejn id-destinazzjoni, għal kwalunkwe raġuni inti tista 'tixtieq li. I jistgħu stampa taqraha, iżda irridu li qed jersqu lejn id-destinazzjoni tagħna. X'inhu destinazzjoni tagħna se tkun? [Student] Ġdid. [Rob B.] Iva, u fejn huma aħna ikkupjar minn? L-ewwel ħaġa aħna qed ikkupjar hija din 1, 3, 4. X'inhu l-'dan 1, 3, 4. X'inhu l-indirizz ta 'dan 1? X'inhu l-indirizz ta 'dak 1? [Student] [inaudible] [Rob B.] Kap + l-indirizz ta 'l-ewwel element. Kif se nilħqu dawn l-ewwel element fil-firxa? [Student] kju. [Rob B.] Iva, q.strings. Ftakar, hawnhekk, ewlieni tagħna huwa 1. Darn dan. I biss naħseb li huwa magically ' Hawnhekk, ewlieni tagħna huwa 1. Jien ser bidla fil-kulur tiegħi wisq. U hawn huwa kordi. Dan, nistgħu jew tikteb kif għamilna matul hawn bl-irjus + q.strings. Ħafna nies wkoll tikteb & q.strings [kap]. Dan mhuwiex verament xi inqas effiċjenti. Għandek mnejn taħseb bħala inti dereferencing dan u allura jkollna l-indirizz tal- iżda l-kumpilatur se tittraduċi lilha għal dak li kellna qabel xorta, q.strings + ras. Jew il-mod inti tixtieq li jaħsbu dwar dan. U kemm bytes irridu li kopja? [Student] Kapaċità - ras. Kapaċità -. Head U allura inti tista 'dejjem tikteb eżempju biex insemmu jekk li d-dritt. [Istudenti] Jeħtieġ li jiġi diviż bi 2 dakinhar. Yeah, so I raden nistgħu jużaw daqs. Għad għandna daqs li- jużaw daqs, għandna daqs ugwali għal 4. Daqs tagħna hija 4. Ewlieni tagħna huwa 1. Aħna tixtieq li kopja dawn l-elementi 3. Dik hija l-sanità jivverifika li d-daqs - ras hija korrettament 3. U ġejjin lura hawn, bħal għidna qabel, jekk aħna użati kapaċità, allura aħna'd jkollhom iddividi 2 għaliex aħna stajt diġà imkabbra kapaċità tagħna, hekk minflok, aħna qed tmur għall-użu daqs. Li kopji dik il-parti. Issa, għandna bżonn li kopja l-porzjon l-ieħor, il-porzjon li jkun baqa 'tal-bidu. Li għaddej biex memmove fis f'liema pożizzjoni? [Student] Daqs Plus - ras. Iva, hekk aħna diġà kkupjati fid-daqs - bytes tar-ras, u għalhekk fejn irridu li kopja tal-bytes li jifdal huwa ġdid u mbagħad daqs minus-tajjeb, in-numru ta 'bytes konna diġà kkupjati pulzieri U allura fejn huma aħna ikkupjar minn? [Student] Q.strings [0]. [Rob B.] Iva, q.strings. Aħna jista 'jew ma & q.strings [0]. Dan huwa ferm inqas komuni minn dan. Jekk huwa biss se jkun ta '0, allura inti ser tendenza li tara q.strings. Li meta aħna qed ikkopjar minn. Kemm bytes nistgħu telqu kopja? >> [Student] 10. Dritt. [Student] Do irridu jimmultiplikaw 5-10 darbiet id-daqs tal-bytes jew xi ħaġa? Yeah, għalhekk dan huwa fejn 'eżattament dak li aħna ikkupjar? [Student] [inaudible] X'inhu t-tip tal-ħaġa aħna qed ikkupjar? [Student] [inaudible] Yeah, sabiex il-char * i li aħna qed ikkupjar, ma nafux fejn dawk huma ġejjin minn. Ukoll, fejn dawn qed tipponta lejn, bħall-kordi, aħna jispiċċaw timbotta lilha fuq il-kju jew enqueuing fuq il-kju. Fejn dawn huma ġejjin minn, aħna għandna ebda idea. Jinħtieġ li jżommu rekord ta 'l-* i char infushom. Aħna ma rridux li kopja daqs - bytes tar-ras. Aħna tixtieq li kopja daqs - head char * s, hekk aħna qed tmur biex immoltiplika dan billi sizeof (* char). Istess stabbiliti hawn, ras * sizeof (char *). [Student] Xi ngħidu dwar [inaudible]? Dan id-dritt hawnhekk? [Student] Nru, taħt dak, id-daqs -. Head [Rob B.] Dan id-dritt hawn? Aritmetika pointer. Kif aritmetika pointer ikun sejjer jaħdem huwa awtomatikament timmultiplika mid-daqs tat-tip li aħna qed jittrattaw. Eżatt bħal hawn fuq, l-ġdida + (daqs - ras) huwa eżattament ekwivalenti għall & ġodda [daqs - head] sakemm aħna nistennew li jaħdmu b'mod korrett, peress li jekk aħna qed jittrattaw ma 'firxa int, allura aħna ma indiċi mill int- jew jekk huwa ta 'daqs ta' 5 u trid li l-element 4, allura aħna indiċi fil- int array [4]. You don 't-[4] * Daqs tal int. Li mankijiet awtomatikament, u f'dan il-każ huwa litteralment ekwivalenti, sabiex l-sintassi bracket huwa biss se jiġu konvertiti għal dan hekk kif inti tiġbor. Dik xi ħaġa li inti jeħtieġ li tkun attenta ta 'dak meta inti żżid id-daqs - ras inti żżid ma wieħed byte. Inti żżid 1 * char, li jista 'jkun 1 bytes jew ikun x'ikun. Mistoqsijiet oħra? Okay, dequeue se tkun aktar faċli. I ser jagħtuk minuta biex jimplimentaw. Oh, u I raden dan huwa l-istess sitwazzjoni fejn dak il-każ enqueue, jekk aħna qed enqueuing null, forsi irridu li jimmaniġġjaw dan, forsi aħna ma. Aħna mhux se tagħmel mill-ġdid hawn, imma istess bħal każ munzell tagħna. Jekk aħna enqueue null, aħna tista 'tixtieq li jinjoraw dan. Kull min ikollu xi kodiċi I tista 'pull up? [Student] I biss għandhom dequeue. Verżjoni 2 huwa li l-okay. Inti tixtieq li tispjega? [Student] L-ewwel, inti tagħmel ċert hemm xi ħaġa fil-kju u li d-daqs hija ser tistabbilixxi sa l-1. Ikollok bżonn tagħmel dan, u allura inti tirritorna l-ras u mbagħad jimxu l-kap up 1. Okay, hekk hemm każ kantuniera għandna biex jikkunsidraw. Yeah. [Student] Jekk ras tiegħek hija fl-aħħar element, allura inti ma tridx ras għall-punt barra l-firxa. Yeah, dan malajr kemm jista kap hits-tmiem ta 'firxa tagħna, meta aħna dequeue, ras tagħna għandu jkun Modded lura għal 0. Sfortunatament, aħna ma tistax tagħmel dan fi stadju wieħed. I raden il-mod I d probabbilment tiffissa lilha huwa dan se jkun * char, dak li aħna qed jirritornaw, kwalunkwe isem varjabbli tiegħek jixtieq li jkun. Imbagħad irridu mod ras mill-kapaċità tagħna u mbagħad jirritornaw ret. Ħafna nies hawn huma jistgħu do- dan huwa l-każ tal-you'll tara nies jagħmlu jekk ras huwa akbar minn kapaċità, do ras - il-kapaċità. U li jinsab biss taħdem madwar huwa mod dak. Kap mod = kapaċità hija ħafna aktar nadifa ta 'tgeżwir madwar milli kieku ras akbar minn ras kapaċità - kapaċità. Mistoqsijiet? Okay, l-aħħar ħaġa li għandna xellug huwa lista marbuta tagħna. Inti jista 'jintuża għal xi wħud mill-imġiba lista marbuta jekk ma marbuta listi fil-tabelli hash tiegħek, jekk inti ma 'tabella hash. I jirrakkomanda bil-qawwa tagħmel tabella hash. Inti tista 'diġà għamlu trie, imma jipprova huma aktar diffiċli. Fit-teorija, dawn qed asimptotikalment aħjar. Iżda biss ħarsa lejn il-bord kbar, u tipprova qatt jagħmel aħjar, u li jieħdu l-memorja aktar. Kollox dwar tipprova jispiċċa jkun agħar għall-ħidma aktar. Huwa dak soluzzjoni David Malan dejjem hija huwa hu dejjem postijiet soluzzjoni trie tiegħu, u ejja ara fejn hu bħalissa. Liema kien hu taħt, David J? Huwa tal # 18, b'tali mod li mhux terriblement ħażin, u li għaddej biex tkun waħda mill-aħjar tipprova li inti tista 'taħseb jew wieħed mill-aħjar tipprova ta 'trie. Huwa lanqas soluzzjoni oriġinali tiegħu? Inħoss bħal soluzzjonijiet Trie tendenza li jkunu aktar f'din il-firxa ta 'użu RAM. Mur isfel għall-quċċata ħafna, u l-użu RAM huwa fil-ċifri wieħed. Mur isfel lejn il-qiegħ, u allura inti tibda tara jipprova fejn ikollok l-użu RAM assolutament massiva, u jipprova huma aktar diffiċli. Mhux kollox worth it, iżda l-esperjenza edukattiva jekk inti ma wieħed. L-aħħar ħaġa hija lista marbut tagħna, u dawn it-tliet affarijiet, stacks, kjuwijiet, u l-listi marbuta, xi ħaġa futur inti qatt tagħmel fil-xjenza tal-kompjuter ser jassumi ikollok familjarità ma 'dawn l-affarijiet. Huma biss hekk fundamentali għall kollox. Marbuta listi, u hawn għandna lista waħedhom marbuta se tkun l-implimentazzjoni tagħna. X'tagħmel waħdu marbuta jfissirx għall-kuntrarju doppjament marbut? Iva. [Istudenti] Huwa biss punti li l-pointer li jmiss aktar milli l-pointers, bħal dak ta 'qabel dan u dik ta' wara dan. Yeah, hekk fil-format stampa, dak li ma I biss do? Għandi żewġ affarijiet. Għandi stampa u stampa. Fil-format stampa, listi weħidhom tagħna konnessi, inevitabbilment, aħna għandna xi tip ta 'pointer lill-kap tal-lista tagħna, u mbagħad fi żmien lista tagħna, aħna biss għandhom pointers, u forsi dan jipponta lejn null. Huwa ser tkun tpinġija tiegħek tipiċi ta 'lista waħedhom marbuta. Lista doppjament marbut, inti tista 'tmur lura. Jekk I jagħtuk xi node fil-lista, allura inti tista 'neċessarjament tikseb kwalunkwe node oħra fil-lista jekk hija lista doppjament marbut. Imma jekk jien nikseb inti l-node terz fil-lista u huwa lista waħedhom marbuta, ebda mod int qatt ser tikseb l-lymph ewwel u t-tieni. U hemm benefiċċji u deteriment, u wieħed ovvju 1 huwa tieħu up daqs aktar, u inti għandek biex iżommu kont ta 'fejn dawn l-affarijiet huma tipponta issa. Iżda aħna biss jimpurtahom weħidhom marbuta. A ftit affarijiet li aħna qed tmur biex ikollhom biex jimplimentaw. Typedef Struct tiegħek għoqda, int i: Struct node * jmiss; node. Dan typedef għandu jiġi maħruq fis-imħuħ tiegħek. Quiz 1 għandhom ikunu simili tagħti typedef ta node lista marbuta, u inti għandek tkun kapaċi biex immedjatament scribble li jistabbilixxi mingħajr ma jaħsbu dwar dan. I raden mistoqsijiet koppja, għaliex għandna bżonn Struct hawn? Għaliex ma nistgħu ngħidu * node? [Student] [inaudible] Yeah. L-unika ħaġa li jiddefinixxi node bħala ħaġa huwa l-typedef innifsu. Iżda sa dan il-punt, meta nkunu tip ta 'parsing permezz ta' dan id-definizzjoni node Struct, aħna ma spiċċatx typedef tagħna għadhom, hekk peress li l-typedef ma lest, node ma teżistix. Iżda Struct node ma, u dan node fil hawn, dan jista 'jissejjaħ ukoll kull ħaġ'oħra. Dan jista 'jissejjaħ n. Dan jista 'jissejjaħ node lista linked. Dan jista 'jissejjaħ xejn. Iżda dan node Struct teħtieġ li tintuża l-istess ħaġa kif dan node Struct. Dak li inti sejħa dan għandu wkoll jkun hawn, u sabiex twieġeb ukoll it-tieni punt tal-mistoqsija u huwa għalhekk 'ħafna drabi meta tara structs u typedefs ta structs, tkun taf tara structs anonimu fejn inti taf biss tara Struct typedef, implimentazzjoni ta ', Struct dizzjunarju, jew ikun x'ikun. Għaliex hawnhekk għandna bżonn li jgħidu node? Għaliex ma jista 'jkun Struct anonimu? Huwa kważi l-istess risposta. [Student] Ikollok bżonn li jirreferu għaliha fi ħdan l-Struct. Yeah, fi ħdan il-Struct, ikollok bżonn li jirreferu għall-Struct innifsu. Jekk inti ma jagħtux l-Struct isem, jekk huwa ta 'Struct anonimu, inti ma tistax jirreferu għaliha. U fl-aħħar iżda mhux l-anqas dawn kollha għandhom ikunu kemmxejn sempliċi, u dawn għandhom jgħinu inti tirrealizza jekk int bil-miktub dan l isfel li qed tagħmel xi ħaġa ħażina jekk dawn it-tipi ta 'affarijiet ma jagħmlux sens. L-aħħar iżda mhux l-inqas, għaliex ma dan għandhom ikunu * node Struct? Għaliex ma jista 'jkun biss Struct node jmiss? [Student] Pointer għall-Struct jmiss. Dak inevitabbilment dak li rridu. Għaliex jista qatt ma jkun node Struct jmiss? Għaliex ma għandhom ikunu Struct node * jmiss? Yeah. [Istudenti] Huwa simili loop infinita. Yeah. [Istudenti] Ikun kollha jkunu fl-1. Yeah, biss jaħseb kemm aħna se nagħmlu daqs ta 'jew xi ħaġa. Daqs ta 'Struct hija bażikament + jew - xi mudell hawn jew hemm. Huwa bażikament se jkun is-somma tal-qisien ta 'l-affarijiet fil-Struct. Dan id-dritt hawn, mingħajr ma jinbidel xejn, id-daqs se tkun faċli. Daqs tal node Struct se tkun daqs ta 'daqs + i ta' li jmiss. Daqs ta 'i se tkun 4. Daqs tal jmiss se tkun 4. Daqs tal node Struct se tkun 8. Jekk aħna ma jkollhomx il-*, il-ħsieb ta 'sizeof, imbagħad sizeof (i) se tkun 4. Daqs tal node Struct jmiss se tkun daqs ta 'i + daqs tal node Struct jmiss + Daqs ta 'daqs + i ta node Struct jmiss. Ikun recursion infinita ta 'nodes. Dan huwa għaliex dan huwa kif l-affarijiet għandhom ikunu. Għal darb'oħra, definittivament memorize li, jew għall-inqas jifhmuha biżżejjed li inti tista 'tkun kapaċi li Raġuni permezz ta 'dak li għandu look like. L-affarijiet aħna qed tmur jridu jimplimentaw. Jekk it-tul tal-lista ' inti tista 'iqarrqu u żżomm madwar tul globali jew xi ħaġa, imma aħna ma tkunx qed tmur biex tagħmel dan. Aħna ser jgħodd it-tul tal-lista. Aħna fih, b'tali mod li bażikament bħal tfittxija, hekk għandna lista marbuta tan-numri interi biex tara jekk dan numru sħiħ huwa fil-lista marbuta. Prepend se daħħal fil-bidu tal-lista. Ehmeż se daħħal fl-aħħar. Insert_sorted se ddaħħal fil-pożizzjoni magħżula fil-lista. Tip Insert_sorted ta jassumi li int qatt jintużaw prepend jew tehmeż b'modi ħżiena. Insert_sorted meta int jimplimentaw insert_sorted- ejja ngħidu li għandna lista marbuta tagħna. Dan huwa dak li attwalment jidher qisu, 2, 4, 5. Irrid li daħħal 3, dan sakemm il-lista nnifisha hija diġà magħżula, huwa faċli li ssib fejn 3 jappartjeni. I tibda fil 2. Okay, 3 huwa ikbar minn 2, so I tixtieq li żżomm għaddej. Oh, 4 hija kbira wisq, so I know 3 huwa se jmorru fl bejn 2 u 4, u I għandhom jiffissaw pointers u dak kollu li Jittieħed. Imma jekk aħna ma strettament tuża insert_sorted, simili ejja biss jgħidu I prepend 6, imbagħad lista marbuta tiegħi se ssir din. Issa jagħmilx sens, hekk għal insert_sorted, inti tista 'biss wieħed jassumi li l-lista magħżula, anke jekk l-operazzjonijiet jeżistu li tista 'tikkawża li ma jkunux magħżula, u li hu. Sib utli daħħal-hekk dawn huma l-affarijiet ewlenin li int ser jkollhom jimplimentaw. Għal issa, tieħu minuta biex tagħmel tul u fih, u dawk għandhom ikunu relattivament malajr. Kważi ħin tal-għeluq, sabiex ħadd jkollhom xejn għat-tul jew li jkun fiha? Huma qed tmur biex tkun kważi identiċi. [Student] Tul. Ejja ara, reviżjoni. Okay. Inti tixtieq li tispjega? [Student] I biss jinħoloq node pointer u initialize din l-ewwel, li huwa varjabbli globali tagħna, u mbagħad I tikkontrolla biex tara jekk huwa null so I ma jsibux tort seq u r-ritorn 0 jekk dan huwa l-każ. Inkella, I loop permezz, iżżomm rekord ta 'ġewwa numru sħiħ kif ħafna drabi stajt aċċessati l-element li jmiss tal-lista u fl-operazzjoni inkrement istess wkoll aċċess dan l-element attwali, u mbagħad I kontinwament jagħmlu l-verifika biex tara jekk huwa null, u jekk huwa null, allura aborts u jirritorna l-għadd ta 'elementi stajt aċċessati. [Rob B.] Ħadd ma jkollu xi kummenti dwar xi ħaġa? Dan jidher korrettezza multa għaqli. [Student] Ma naħsibx li għandek bżonn l-node == null. Yeah, hekk jekk node == 0 ritorn null. Iżda jekk == node null allura din il-oh, hemm kwistjoni korrettezza. Kien biss int jirritornaw i, iżda mhux fl-iskop dritt issa. Inti biss bżonn i int, hekk i = 0. Imma jekk node huwa null, allura i għadu għaddej biex ikunu 0, u aħna qed tmur biex jirritornaw 0, għalhekk dan il-każ huwa identiku. Ħaġa oħra komuni hija li d-dikjarazzjoni ta 'ġewwa node tal-linja għall. Tista 'tgħid-oh, no. Ejja jżommha kif dan. I probabbilment tqiegħed i int = 0 hawn, allura node node * = 1 fil hawn. U dan huwa probabbilment how-jwarrbu dan issa. Din hija probabbilment kif I kien miktub dan. Inti tista 'wkoll tħares lejn dan bħal dan. Dan għall-istruttura loop dritt hawn għandu jkun kważi bħala naturali li inti bħala għal INT i = 0 i huwa inqas mit-tul ta 'firxa i + +. Jekk dan huwa kif inti jtenni fuq firxa, dan huwa kif inti jtenni fuq lista marbuta. Dan għandu jkun tieni natura f'xi punt. B'dan f'moħħna, dan se jkun kważi l-istess ħaġa. Int ser jridu jtenni fuq lista marbuta. Jekk l-node-Għandi l-ebda idea dak il-valur huwa msejjaħ. Node i. Jekk il-valur f'dak node = i ritorn vera, u li hu. Avviż li l-uniku mod aħna qatt lura falza huwa jekk aħna ttenni fuq il-lista kollha marbuta u qatt lura vera, hekk dak hu li dan ma. Bħala ġenb nota aħna probabbilment mhux se tikseb biex tehmeż jew prepend. Aħħar nota Quick. Jekk tara l-keyword statiku, so ejja ngħidu statiku għadd int = 0, allura aħna nagħmlu għadd + +, inti tista 'bażikament jaħsbu li bħala varjabbli globali, anki jekk I biss qal dan mhux kif aħna qed tmur biex jimplimentaw tul. Jien tagħmel dan hawn, u mbagħad jgħodd + +. Kwalunkwe mod nistgħu jidħol node fil-lista linked tagħna aħna inkrementazzjoni għadd tagħna. Il-punt ta 'dan huwa dak li l-keyword statiku mezzi. Jekk I biss kellhom għadd int = 0 li tkun varjabbli regolari globali qodma. Liema statiku mezzi għadd int hija li huwa varjabbli globali għal dan il-fajl. Huwa impossibbli għal xi fajl ieħor, simili jaħsbu pset 5, jekk inti bdew. Inti għandek kemm speller.c, u inti għandek dictionary.c, u jekk inti biss tiddikjara ħaġa globali, allura xejn speller.c tista 'tkun aċċessata b'mod dictionary.c u viċi versa. Varjabbli globali huma aċċessibbli minn kwalunkwe fajl c., iżda varjabbli statiċi huma aċċessibbli biss minn ġewwa l-fajl innifsu, hekk ġewwa ta 'jespliċitaw kontrollur jew ġewwa ta dictionary.c, dan huwa tip ta 'kif nixtieq niddikjara varjabbli tiegħi għad-daqs tal-array tiegħi jew id-daqs ta 'numru tiegħi ta' kliem fil-dizzjunarju. Peress I ma jridux li jiddikjara varjabbli globali li xi ħadd ikollu aċċess għal, I really biss tinteressana għall-finijiet tiegħi stess. Il-ħaġa tajba dwar dan hija wkoll l-għalf kollu ħabta isem. Jekk xi fajl ieħor tipprova tuża varjabbli globali sejjaħ għadd, l-affarijiet imorru ħafna, ħafna ħażin, għalhekk dan nicely żżomm affarijiet bla periklu, u biss tista 'aċċess għaliha, u l-ebda wieħed inkella tista ', u jekk xi ħadd ieħor tiddikjara varjabbli globali sejjaħ għadd, allura mhux se jfixklu l-varjabbli statiku tiegħek imsejħa għadd. Dan huwa dak huwa statiku. Huwa varjabbli fajl globali. Mistoqsijiet dwar xejn? Kollha stabbiliti. Bye. [CS50.TV]