ANDI PENG: zote haki.
Karibu wiki nne za sehemu.
Ni siku nzuri nje hapa katika New Haven
hivyo kweli mimi nadhani sparse kutawanyika kwa watoto kwamba
alijiunga nami kwa sehemu leo, asante.
>> Kwa hiyo kwa haraka, kabla tu kuanza, ajenda ya leo.
Sisi ni kwenda juu chache fupi matangazo.
Tuna ratiba kweli wacky kuja juu katika wiki mbili zijazo
au hivyo hivyo tunakwenda kwenda juu kwamba.
Pili, najua kila mtu favorite topic--
Nina hakika hii melted akili yako wakati wa hotuba, msiwe na wasiwasi,
Mimi bado aina ya si kupata.
Ni faini.
Hiyo ilikuwa ni mzaha.
Mimi kwa kweli kufanya kupata hiyo.
Lakini mimi kuhakikisha kwamba nyie kupata, pia.
Hivyo sisi ni kwenda kutumia kweli, kiasi mzuri
muda kuzungumza juu ya pointer leo.
Kama unaweza kuona, pipi ya Majadiliano ni kubwa leo.
Sisi ni kweli kwenda kuweka that-- yeah, hiyo ni haki.
Kuweka pipi kuchukua.
Mimi nina kwenda kupita wao kuzunguka hivi sasa.
Hakuna wasiwasi.
Tunakwenda kweli kujaribu kuweka damu ya watu sukari
up kwa sababu kwamba ubongo ni kwenda kuchoma baadhi leo oksijeni kwa sababu kuyatumia
ni kweli, ngumu kweli kweli.
Kisha sisi ni kwenda kuzungumza kuhusu kumbukumbu ya usimamizi ambayo ni aina ya
katika ulimwengu wa sawa.
Na tunakwenda hoja kwenye redirection na faili
I / O ambayo ni syntax tu, nzuri mambo ambayo tunapaswa kuzungumzia.
Na kisha mwisho, mimi nina kwenda kwa mara nyingine tena kujaribu
kuondoka kama 10, 15 dakika kwa pset4.
Hiyo ni kutokana katika siku chache hivyo sisi ni kwenda kwa kweli aina ya kukupa
baadhi mwanga msaada kama wewe tayari got kuanza juu ya jambo hilo.
Baridi.
SAWA.
Hivyo baadhi matangazo kwa wiki hii ya ujao.
Grading.
Mimi si kweli kujua katika hatua hii ni wangapi kati yenu
guys ni kweli katika yangu section-- wewe OK huko?
SAWA.
Lakini, kwa wale walio katika sehemu yangu,
michache tu maoni juu ya grading.
>> Kwanza, kazi nzuri kwa kweli ya kutoa maoni.
Wale ambao hawana kutoa maoni, wewe kujua wewe ni nani kwa sababu wewe pengine
got baadhi pointi style dinged wiki hii.
Tu kuhakikisha kwamba katika wote wa yako Mipango kuongeza maoni wanandoa.
Kwa kweli, mtindo ni kweli rahisi kupata pointi sahihi kama wigo.
Hivyo kwa ajili yetu, tu kufanya kuhakikisha kwamba wewe ni aina
ya kuongeza maelezo mafupi katika yote mipango yako juu ya nini unafanya.
>> Secondly-- hili ni suala kubwa kwa mengi ya TAS week-- hii iliyopita
hivyo kuhakikisha wewe ni kuweka kwa folder sahihi na kwa usahihi
aitwaye mipango.
Na sababu ni kwa nini tunaomba huu ni kwa sababu sisi, katika mwendo wa grading,
kweli kuendesha script juu yako kificho kwamba downloads moja kwa moja
wote wa psets yako, anaendesha vipimo usahihi juu ya wote,
na kisha uploads alama yako moja kwa moja kwenye gradebook.
Hata hivyo, katika hatua yoyote, kama wewe aitwaye mpango wako kimakosa,
ni screws up nzima mpango kwa ajili ya kila mtu.
>> Na hivyo, kihalali, Muswada hii nzuri
kwamba tumekuwa imeandikwa kwamba hana yote haya kwa ajili yetu, kabisa
shambulio kama huna mpango wako aitwaye usahihi.
Hivyo tu kupakia na sahihi folder, na wao aitwaye usahihi,
na kisha maisha ni nzuri.
Mimi kupata psets yako nyuma kwa nyie mapema
kwa sababu mimi kupata daraja yao haraka.
Naam.
SAWA.
Na pia sisi ni kwenda kuzungumza about-- Yale ina kweli, kweli
wacky ratiba katika wiki hizi mbili.
Hivyo wale wa wewe guys katika Harvard, hii haina kuomba.
Lakini kwetu sisi watoto nzuri katika Yale tuna kitu kinachoitwa kuanguka break-- pole,
Harvard-- ambapo tuna siku tano mbali la shule.
Na wakati huu ni nzuri, ni aina ya messes up pset yetu dansi
kwa sababu psets ni kutokana Alhamisi, Ijumaa.
Na hivyo kama sisi siyo hapa Alhamisi, Ijumaa, sisi
Huwezi kuwa na kazi kwa nyie kutokana Alhamisi, Ijumaa.
>> Hivyo nini tunakwenda kufanya is-- tuko kama 99% uhakika kama hii ni nini kinatokea,
kuna inaweza kuwa baadhi mabadiliko lakini nadhani ni
subtle-- ni tunakwenda have-- wiki hii ni kawaida.
Hivyo tuna sehemu yetu juu ya Jumanne ikifuatiwa na masaa ya ofisi
katika mapumziko ya wiki na kisha pset4 ni kutokana siku ya Ijumaa.
Basi, kama nyie wote tunajua, kama Mimi aliwakumbusha nyie wiki iliyopita,
tuna jaribio yetu 0 kuja juu ya Jumatano.
>> Na hivyo, kuwa mwanafunzi mwenyewe, Mimi najua kuwa sana wachache wenu
guys kweli kuwa kazi ya pset5 siku mbili kabla ya jaribio lako.
Kwa hiyo kile tunakwenda pengine kuishia kufanya ni,
kwamba Jumatatu usiku, tunakwenda kwa kweli, 5:30-7:00,
na mapitio mafupi kikao juu ya mada mifuniko.
Haieleweki kama ni kupitia kikao au Maswali na Majibu.
Itakuwa aina fulani ya mapitio namna ambayo tutaweza cover
baadhi ya mada husika kwa nyie.
>> Na kisha Jumatatu na Jumanne usiku mwa wiki kwamba 8:00-11:00,
tunakwenda kuwa na masaa ya ofisi.
Masaa wale ofisi mapenzi zaidi uwezekano kuwa zaidi ya kuja tu katika,
kuuliza maswali yako kuhusu TAS dhana yoyote wewe ni kuchanganyikiwa kuhusu,
na wao itabidi aina ya kwenda juu na wewe na mapitio ya dhana kwa jaribio.
Jaribio 0, kama wewe ni katika Jumatatu, Jumatano sehemu,
itakuwa Jumatano wakati wa class-- Jumatano wakati wa darasa.
Na kisha kama wewe ni katika Jumanne, Alhamisi sehemu,
itakuwa pia wakati wa darasa Alhamisi.
Huwezi kweli kuchagua ambayo moja ya kwenda.
Kama uko Jumatatu, Jumatano, una kwenda kwa Jumatano.
Kama wewe ni juu Jumanne, Alhamisi una kwenda kwa Alhamisi.
Lakini basi usiku huo, sisi wafanyakazi nzuri, itakuwa
na jaribio kubwa grading chama katika ambayo tutaweza kupata alama yako nyuma yenu
kwamba usiku.
Kwa nini wakati?
Wazi, ambaye anajua, lakini itakuwa kuwa nyuma yenu ndani ya masaa 24
ili nyie hopefully kuwa na baadhi ya maoni na Ijumaa.
>> Na kisha tuna wiki kweli Wacky.
Hivyo pset5 ni moja ya psets gumu ya mwaka.
Hivyo pole guys.
Nini sisi ni kwenda kujaribu kufanya ni tunakwenda na
baadhi ya msaada halisi mwishoni mwa wiki hiyo.
Kwa sababu, kama wewe guys unaweza kuona, pset ni kutokana kabla ya kuanguka mapumziko.
Hatuna msaada kwa ajili ya nyie wakati wa kuanguka mapumziko
na hivyo sisi kweli aina ya wanataka msemo huu kama,
hebu kupata hii juu na, hebu kazi kweli, kweli ngumu
wiki hizi mbili, kupata Jaribio hii na kuongeza psets hizi mbili kufanywa na
na kisha nyie kuwa nzuri kufurahi muda wa siku saba bila kufikiri kuhusu CS.
>> Hivyo ili kwa kuwa kwa kutokea, sisi ni pengine
kwenda hoja ya kifungu yangu kwa Jumapili mchana.
Itakuwa zingine hivyo hakuna wasiwasi kama huwezi kuja.
Lakini sinema online mapenzi kuwa huko na kupatikana
ili nyie na Jumapili, Jumatatu, Jumanne, kufanya kazi ya pset5.
Na kisha ni kuanguka kuvunja na hakuna CS na kisha
sisi kurudi na kurudi kwake mwaka saga.
>> Lakini itakuja kuwa wiki nzuri kwa ajili ya mapumziko kuanguka
na sisi kweli wanataka kufanya hivyo kama mkazo bure kwa kila mtu iwezekanavyo ambayo
Hii ndiyo sababu sisi wakiongozwa pset kuwa kutokana kabla ya kuanguka mapumziko badala ya baada.
Kwa sababu it's-- I mean, mimi aina ya kujisikia kama ni kushindwa madhumuni ya kuwa na
tarehe ya mwisho baada ya kuanguka mapumziko kama kuna hakuna msaada anyways wakati wa kuanguka mapumziko.
Hivyo ni rather-- Nadhani tunatarajia kuelekeza nguvu zaidi katika hali hiyo sasa.
Je, mtu yeyote una maswali kuhusu ratiba hiyo?
Chochote utata?
Naam.
>> Watazamaji: Je bado tuna hotuba ya 21?
ANDI PENG: Naam.
Hivyo tarehe 21, pale ni kwenda kuwa hotuba kwamba ni moja kwa moja kutoka Harvard.
Sijui kama Daudi ni sinema au kama yeye kweli mhadhiri,
lakini ni kwenda kuwa inapatikana online kwa nyie kupata.
Hivyo tu kuhakikisha kuchonga saa nje mahali fulani katika kuanguka mapumziko
hivyo nyie wanaweza kupata juu ya kwamba hotuba.
Yeah?
>> Watazamaji: Naam.
Pole.
I got hapa couple--
>> ANDI PENG: Hakuna wasiwasi.
Hapa, kuchukua baadhi ya pipi.
>> Watazamaji: Hey, mimi hawakupata hiyo.
Hivyo tu kwa kurejea, si kesho lakini Jumatano baada ya hapo, tuna jaribio.
ANDI PENG: Sahihi.
Watazamaji: Na itakuja be-- nini muundo wa jaribio?
ANDI PENG: Oh.
Hivyo tutaweza kutuma nje email kwamba inashughulikia kwamba zaidi ya yote kwa kina.
Lakini, kimsingi, ni tu inashughulikia mada za msingi tayari kufunikwa
katika nusu ya kwanza ya muhula.
Kutakuwa na vikao mapitio na swali na majibu hivyo hakuna wasiwasi juu ya hilo.
Lakini tutaweza kuwa kwenda juu ya kwamba pia.
Watazamaji: Je, ni kwenda kuwa, sisi kuleta kompyuta yetu na kanuni there--
ANDI PENG: Hapana
Ni kwenda kuwa nyie kuandika na kujibu maswali kwa mkono.
>> Watazamaji: Oh.
>> ANDI PENG: Hivyo tutaweza kutoa mazoea nje na mambo
hivyo nyie kutaka labda kwenda nyuma na kuandika upya Mario kwa mkono tu
kuhakikisha wewe guys kuwa wazo la jinsi ya kufanya hivyo.
Kwa sababu wakati mwingine wakati kuandika kwa mkono wewe
kusahau semicolons na mambo na kwamba ni mbaya.
Watazamaji: Je, si kwamba kuwa [inaudible]?
Kama, wewe ni kupata semicolon juu ya your--
>> ANDI PENG: Ndiyo na hapana.
Tutaweza majadiliano zaidi katika kina kuhusu jinsi mpangilio jaribio ni
na jinsi tunakwenda daraja.
Lakini kimsingi, tu kujua kwamba ujumla format ni kwenda kuwa wewe
guys ama kutafsiri code-- kujibu maswali ya msingi.
Kama mimi aliuliza wewe, ni nini maktaba?
Nyie lazima kujua nini a maktaba gani na kuandika kwamba chini.
Au mimi anaweza kusema, kuandika mpango huo Prints Hello World kwa screen.
Nyie bila kuandika, int kuu utupu printf hujambo dunia semicolon.
Naam.
>> Watazamaji: Hivyo si kwenda kwa kuwa mahali popote [inaudible]
kiwango cha ugumu wa tatizo kuweka?
>> ANDI PENG: Hapana
Hakuna
Sisi won't-- yeah.
Kuandika ukamilifu wa mchezo wa 15 katika dakika 20, kwenda.
Hapana, huwezi kuwa na kwamba.
Hakuna
Watazamaji: Sawa.
Hivyo kwamba ni Jumatano.
Wakati kwamba wiki sisi pia kuwa tatizo gumu kuweka?
ANDI PENG: Hapana
Hivyo tatizo hilo kutokana kuweka siku moja kabla ya kuanguka mapumziko.
Schedule-- barua pepe kwa kweli kutuma nje
Dakika 20 iliyopita kuhusu yote haya.
Hivyo nyie tu kuangalia barua pepe yako.
Ni utakuwa huko.
Naam.
Hakuna wasiwasi.
Baridi.
>> Maswali yoyote ujumla kuhusu matangazo, grading, Quizzes,
kabla ya sisi kupiga mbizi haki ndani kuyatumia ambayo itakuwa hutumia
Wengi wa sehemu yetu wakati leo?
Baridi.
Sawa.
Hivyo, nyie wote kuangalia lovely-- hii Sijui nini simu yake.
Jambo ambapo claymation akapiga yenyewe up kwa sababu
hakutumia pointer kwa usahihi.
Naam, mpango wako ni kwenda pengine pigo yenyewe up kama wewe
hawatumii kuyatumia kwa usahihi vile vile.
Hivyo sisi ni kwenda kufanya kuhakikisha kwamba haina kutokea.
>> Leo tunakwenda kufanya baadhi ya furaha pointer.
Mimi nina kwenda juu ya mambo kama vizuri kama Nadhani
Inawezekana katika sura ndogo wakati.
Lakini kuna kiasi tu ili kufidia kwamba kwa kweli mimi nataka nyie,
kama huna kuelewa kitu, na siyo tu napenda kuendelea.
Kwa sababu kama huna kuelewa kitu,
pengine wewe si kwenda kuelewa chochote nasema baada ya hapo.
Hivyo tafadhali kuacha yangu na kuuliza swali.
Kwa sababu kila aina ya snowballs pamoja.
Kama, kuyatumia kuongoza katika kumbukumbu kuongoza katika mambo mengine.
Na hivyo kama huna kuelewa kuyatumia, kunizuia na tutaweza ukafikirie
na maisha itakuwa vizuri.
>> Baridi.
Hivyo ni jinsi wengi wenu guys katika hotuba, Daudi zilizotajwa kuyatumia,
akili yako aina ya yamegeuka Jell-O?
Naam.
Nzuri.
Sisi ni kwenda kujaribu kwa de-Jell-O akili yako leo.
Tunakwenda kweli utaratibu kwenda kwa njia ya nini hasa pointer ni,
kile yake, na jinsi sisi matumizi yao.
>> Basi wote pointers-- hivyo kawaida na vigezo
tumekuwa kutumia katika coding, kama vigezo kama vile integers au masharti
au ikifungwa, wao ni wote kimsingi thamani kwa ajili yao
kama vile anuani akizungumzia thamani hiyo.
Hivyo nina kwenda kuteka haki hii sasa.
Tuna karibu hakuna chaki lakini hiyo ni sawa.
>> Hivyo kwa mfano, kwa kawaida njia ambayo tumekuwa
wamekuwa wakitumia vigezo ni sisi kujenga jina la kutofautiana wa aina int, hebu
kusema tu.
Hivyo hapa sisi tumepewa int x na tuko initializing kwamba int 50.
Hivyo hapa katika hii block ya kumbukumbu juu ya yetu kompyuta tumekuwa kuhifadhiwa idadi ya 50.
Hivyo ambapo kuyatumia kuja kucheza ni kwamba kompyuta yako itself-- kama, hapa,
kimwili katika gari ngumu katika RAM ya computer-- yangu
ni tu ina kiasi kidogo cha kumbukumbu.
Huwezi tu kuendelea kuhifadhi vitu juu ya mambo juu ya mambo
na kuwa nao wote.
>> Hivyo njia kwamba sisi allot dynamically kumbukumbu ya kuwa na uwezo wa kuhifadhi nini tunataka
na upatikanaji hilo, ni kwa kuwa na kuyatumia.
Hivyo kufikiria katika kumbukumbu nafasi yako, sawa.
Kama hii ni RAM ya yako kompyuta, una bits hizi kidogo
au vitalu au ka ya kumbukumbu katika which-- hizi ni kidogo tu
vitalu kwamba zimetengwa nje ya gari ngumu au RAM ya kompyuta yako,
na ndani ya kila mmoja vitalu wale unaweza kuhifadhi mambo mbalimbali.
Hivyo kwa mfano, moja safu katika mfano huu
hapa ni byte moja ambayo ni yenye bits nane.
Idadi hubadilika kutegemea mfumo wa uendeshaji wa kompyuta yako.
Kwa mfano, jinsi wengi wenu kuwa kusikia 32-bit dhidi uendeshaji 64-bit
mifumo?
Hasa.
>> Basi wote kwamba ni kusema ni kwamba memory--
kwa njia hiyo kwamba kompyuta yako itaweza kumbukumbu ni tofauti.
Ambayo ni kwa nini ni kweli muhimu kuelewa
nini majukumu ya kumbukumbu yenyewe badala kuliko makini na namba.
Kwa hiyo sisi si kweli huduma jinsi kubwa safu hii
ni, sisi tu haja ya huduma kuhusu jinsi kubwa tunahitaji int kuwa,
jinsi kubwa kufanya tunahitaji kamba kuwa, jinsi kubwa ni pointer?
SAWA.
Hivyo ni kwenda kuwa mengi ya nzito, mnene habari.
Mimi nina kwenda kukupa guys a wanandoa Comic wakati misaada hapa.
Nyie lazima wote kuwa na uwezo kuelewa sasa.
Kwa sababu tunajua kwamba kuyatumia ni anwani,
na wale ni tofauti na vigezo.
SAWA.
Baridi.
CS utani ni bora, ndiyo?
>> Hivyo njia twende juu ya kuunda pointer
ni aina maalumu sana ya syntax.
Kama ilivyo kwa kujenga yoyote aina ya kutofautiana, ni
kwenda kuwa maalum syntax sisi kutumia ili kujenga yake.
Hivyo wakati akitangaza pointer wowote, pointer ni essentially--
Nadhani muhimu sehemu ya kuyatumia ni
kwamba wakati kutofautiana ina wote thamani na mitaani,
pointer ni mahali.
Thamani yake ni mahali.
Hivyo ni kuhifadhiwa anuani katika anwani tofauti.
Kama kwamba inafanya hisia yoyote.
Tutaweza kwenda juu hili kwa undani zaidi, lakini hiyo ni aina ya kurefusha maisha
ya why-- ya jinsi mashine ni kuhifadhiwa.
>> Hivyo njia kwamba kujenga pointer ni kwa kufanya aina yoyote ya data
kwamba pointer ni kwenda kuwa referencing na then--
na star-- na kisha jina la pointer.
Hivyo hapa, kama sisi alitaka kujenga pointer kwamba
Alisema kuelekea integer, na sisi alitaka jina la pointer kuwa x,
tunataka kufanya int x nyota.
Yeah?
>> Watazamaji: Na hivyo kama line zifuatazo wewe
kufanya int x, mapenzi int x nyota zinaonyesha eneo la x
wewe ni kufafanua baadaye?
>> ANDI PENG: Swali Kweli nzuri.
Tutaweza kwenda juu katika hii wanandoa slides baadaye.
Naam.
Na jambo moja na kisha char na sawa ikifungwa kitu.
Tu kujua kwamba katika hatua hii tumeunda pointer,
sisi si kweli kuweka ni kwa sawa chochote bado.
Sisi si kweli inatazamwa yake.
Kitu kimoja hapa wakati kujenga kutofautiana,
umeunda jina la kutofautiana, wewe si kweli kuweka thamani yake.
Same kitu hapa.
>> SAWA.
Hivyo ni jinsi gani sisi kuweka maadili kwa kuyatumia?
Ni kwa referencing na dereferencing.
Hivyo njia kwamba tunaweza rejea a varia-- pointer, kwa asili
sisi kurudi anuani katika kumbukumbu ambao kutofautiana ni kuhifadhiwa.
Hivyo kama mimi alikuwa pointer mimi itabidi kuteka hii mara moja sisi kupata slide ijayo,
lakini tu kujua kwamba, kimsingi, and-- ampersand
na kutofautiana yote anafanya ni kukuambia anuani
ya ambapo kitu ni kuhifadhiwa.
Na dereferencing ni kinyume ya kwamba, ambayo ni tu nyota.
Nyota tu anatoa halisi data kuhifadhiwa katika anwani hiyo.
>> Hivyo moja anatoa anuani kuhifadhiwa katika mitaani,
mengine anatoa halisi thamani kuhifadhiwa katika mahali.
Hivyo wawili kati yao kutoa wewe mambo mbalimbali.
Kwa mara nyingine tena, slides ni yote online hivyo hakuna wasiwasi
kama nyie hawawezi nakala chini hii kwa wakati.
>> Hivyo hebu tuangalie katika mfano huu hapa.
Hivyo sisi tumepewa kubwa kumbukumbu safu hapa, sawa?
Ambapo sisi tu vitalu ya , au kumbukumbu ka ya kumbukumbu,
ambayo tunaweza kuhifadhi vitu mbalimbali.
Hebu sema tu hizi ni anuani pointi katika kumbukumbu.
Hivyo wakati wowote una - tazama 0x, kwamba wote ni nawaambia ni kwamba
hiyo ni ya tarakimu hexadesimoli.
Kama nyie wote tunajua, idadi inaweza kuwa msingi katika misingi mbalimbali.
Msingi 10 ni jinsi sisi kawaida kutafsiri namba.
Kuna pia msingi 2, ambayo ni mapacha.
Na katika kesi hii, hexadecimal ni msingi 16.
Ni tu njia tofauti ya kusema kutoka sifuri kwa 10-- au sifuri hadi tisa
na kisha pia, B, C, D, E, F. Pia marejeo namba mbalimbali.
Daudi akaenda ng'ambo hii katika hotuba kwa ufupi.
Kama nyie ni kuchanganyikiwa, tu Google ni.
Kuna njia kweli rahisi kujifunza nini tarakimu hexadesimoli ni.
Wote kwamba ni kweli muhimu sasa hivi ni kwa ajili yenu
guys kujua kwamba a hexadecimal tarakimu katika C
anaelezea you-- kwamba kwa kawaida atakwambia kwamba ni pointer.
Au kwamba ni mahali.
>> Hivyo katika mfano huu hapa, int x sawa 5.
Sisi ni kujenga integer-- pole, kutofautiana wa aina
integer na sisi ni initializing yake kwa 5.
Hivyo hapa juu ya kumbukumbu bodi yetu, tunaweza kuona kwamba x ni kwa anwani ya 0x0
na thamani kwamba wameweza kuhifadhiwa ndani yake ni 5.
Kwamba lazima kufanya maana kwa kila mtu, sawa?
SAWA.
>> Na kisha kile ambacho tumefanya katika mstari wa pili wa kanuni
ni kwamba tumeunda pointer ya aina int.
Hiyo ni nini int nyota pointer ni kufanya.
Na kwamba ni sawa na kwamba ampersand x ni kutoa pepe ya kitu fulani.
Hivyo pepe ya x katika mfano huu ni 0x0.
Na hivyo anwani hiyo ni kuwa kuhifadhiwa katika kwamba pointer.
Je, hiyo mantiki kwa kila mtu?
>> Hivyo kufikiria Haya kufikiria pointers-- hapa
katika Yale tuna mfumo SLP ambapo kila mwanafunzi ana barua
kushughulikia ambapo unaweza kwenda ndani ya basement ya LW
na unaweza tu kwenda na kunyakua chochote unahitaji kutoka anwani hiyo.
Kitu kimoja kinachotokea hapa katika kompyuta.
Una ka hizo kumbukumbu kwamba unaweza kuhifadhi habari katika,
lakini ili kujua ambayo vipande vya taarifa
match up ya kile wewe ni kujaribu kupata na wapi, unahitaji pointer kwamba
anaelezea jinsi ya kwenda huko.
>> Hivyo kwa mfano, kwa ajili yangu, PO wangu sanduku, Nina maalum tano tarakimu idadi.
Hiyo ni anwani yangu.
Hivyo siwezi kimwili kwenda kumbukumbu, Siwezi kuangalia mitaani,
Naweza kwenda kuwa SLP na kupata data ndani.
Je, hiyo mantiki Kila mtu Kompyuta yako ni kimsingi
kufanya exact kitu.
>> Basi wote pointer ni kufanya ni kwamba ni kujenga kumbukumbu tu
na takwimu zake kumbukumbu ni kweli pepe ya kitu kingine.
Basi unaweza kwenda na kupata hiyo.
Kila mtu mwema?
Kila mtu mzuri na mimi hadi sasa?
SAWA.
Baridi.
Sawa.
Hivyo karibu kitu kimoja kama kabla.
Hivyo tuna, kwanza, kutofautiana kuitwa x ambao case--
Mimi nina kwenda na mabadiliko ya thamani huu kwa 5.
Hebu tu kusema anuani ya hii katika kumbukumbu ni 0x0.
00.
Kubwa.
>> Hivyo basi, juu ya pili yetu mstari wa kanuni, tuko
kwenda kujenga pointer aitwaye PTR pointer.
Na anuani ya kwamba, hebu tu kusema kwamba ni 0x01 katika kumbukumbu.
Na sisi kweli wanataka store-- ampersand
x anatoa pepe ya nini x alikuwa.
Na anuani ya x ilikuwa 0x00.
Hivyo pointer hii sasa kweli ina anuani
kuhifadhiwa kama thamani yake ya kile x ilikuwa.
Kila mtu na mimi hadi sasa?
Baridi.
>> Na kisha, kwa njia hiyo tunataka nakala hiyo,
ni kama tunataka kutangaza na initialize kuzuia nyingine ya kumbukumbu ya aina int.
Sawa?
Hii itakuwa int.
Itakuwa kuitwa nakala.
Na wewe ni kwenda get-- hivyo nyota pointer anatoa
data halisi kutoka anwani hiyo.
Ampersand anatoa mitaani, nyota anatoa data.
Hivyo data kwenye pointer.
Pointer hii ni akizungumzia 5.
Na hivyo kazi hii here-- nyota pointer
unaendelea, anapata vilivyomo katika kuzuia hili na maduka hapa.
Kila mtu wazi juu ya jinsi yaliyotokea?
>> Hivyo waendeshaji mbili haki there-- ampersand na star--
tu kufanya mambo mbalimbali wakati kutumika juu ya kuyatumia.
Moja anapata mitaani, moja anapata thamani halisi.
Ili kuhakikisha wakati nyie ni coding kwamba usiwachanganye mbili
kwa sababu wao ni tofauti kabisa.
Hapa tuna mfano mzuri wa 0x01.
Hiyo ni kweli nzuri idadi ndogo kukumbuka.
Katika kompyuta yako halisi wewe ni kwenda na
kubwa punda idadi hiyo ni kitu si kwamba nzuri, si mazuri.
Ni kwenda kuwa baadhi ya thamani ya takataka.
Na hivyo ni kwenda kweli, kweli fujo up programu yako.
Ni muhimu sana sasa hivi kwamba tuna
misingi chini kwa why-- kama, kile kinachotokea wakati kimwili
wewe ni mbio vitalu wale wa kanuni.
Everyone-- yeah?
>> Watazamaji: Hivyo int x sawa int nakala?
>> ANDI PENG: Hakuna sababu, katika kesi hii, int x-- thamani ya x-- sawa na 5, sawa?
Na kisha int nakala sawa na 5.
Hivyo kama ungekuwa equate yao kwa kila mmoja kwa sababu wao ni integers,
ndiyo, wangeweza kutathmini kwa kweli.
Lakini kama walikuwa masharti katika kumbukumbu, kama moja kwamba Daudi alifanya wakati wa mfano,
hiyo ni tofauti kwa sababu re referencing
anwani ya maeneo katika kumbukumbu na wangeweza equate na uongo.
>> Hivyo hapa itakuwa kweli kwa sababu wewe ni moja kwa moja kulinganisha values-- integers--
lakini kwa wengine uko referencing pointi.
Kwa sababu kamba ni katika safu, na all-- tutaweza majadiliano juu ya hii later--
lakini safu ni kimsingi tu pointer kwa kundi la chars katika kumbukumbu.
Basi hizo tofauti kidogo.
Lakini katika kesi hii, ndiyo, unaweza kufanya hivyo.
>> Watazamaji: Je, unaweza kueleza pepe ya nakala?
ANDI PENG: Naam.
Hivyo hiyo ni just-- mimi hakuwa kujaza thamani
lakini ni baadhi tu random mengine takataka thamani kwamba hatuna huduma ya juu.
Kwa sababu mara tu kuanza mpango wewe kutambua kwamba sisi si kweli
kweli huduma nini anwani halisi ni,
sisi tu haja ya kujua nini katika anwani.
Naam.
>> Watazamaji: nyota karibu na int juu ya mstari wa pili, hiyo ni than-- tofauti
ANDI PENG: Naam.
Watazamaji: --the dereferencing na referencing nyota?
ANDI PENG: Naam.
Hivyo waandishi wa C-- yeyote aliamua kuandika lugha ya C--
Haikuwa smart sana.
Hawakuwa smart sana katika kujaribu kufikiri kwa nini tunapaswa kufanya hivyo.
Kama ilivyokuwa kwangu, napenda dhahiri kutumia herufi mbili tofauti.
Lakini waliamua kutumia moja moja.
>> Hivyo nyota baada int, kwamba anaelezea kompyuta
kwamba wewe ni kuhusu kuunda pointer.
Lakini kama wewe ni kujaribu dereference something-- kwa maneno mengine,
kwenda anwani na kuvuta data kutoka somewhere--
nyota ni kutumika kwa njia tofauti.
Hivyo nyie tu kuwa makini kuhusu si messing up matumizi mawili.
Baridi.
Yeah?
>> Watazamaji: Hivyo tu kurudia kwa kuhakikisha kwamba mimi nina following--
>> ANDI PENG: Kabisa faini.
>> Watazamaji: --in upande wa mkono wa kushoto wa kwamba slide, tunafanya jambo ambalo tunajua.
Tunatangaza integer [Inaudible] ambazo ni sawa na 5.
ANDI PENG: Naam.
Watazamaji: Haki.
Na kisha tuna kitu int nyota na inayosema kwamba, sawa, aina ya kama sisi
alitangaza integer, sasa sisi ni kutangaza pointer.
ANDI PENG: Usahihi.
Sahihi.
>> Watazamaji: Haki?
Na pointer wetu ni PTR.
>> ANDI PENG: Yep.
Jina la pointer ni PTR.
Pointer.
Watazamaji: Na kisha sawa nx kwamba tu anasema C
kwamba anataka kupata thamani katika integer x-- thamani kwamba integer x
ilikuwa kwa ajili.
>> ANDI PENG: Kuwa makini kwa sababu ampersand x kweli
anasema kompyuta you-- kwamba wanataka kuvuta pepe ya nini x ni.
Hivyo ampersand anatoa mitaani, nyota anatoa thamani.
>> Watazamaji: Hivyo tunataka mahali.
Hebu sema x ilikuwa at--
ANDI PENG: Sisi kwa kweli kujua nini x ni, sawa?
Kwa sababu tunajua kwamba x was-- mimi nina kufanya hii juu lakini hebu sema tu,
kiholela, ilikuwa 0x00.
Sawa?
Hivyo tunajua anwani ni 0x00, na hivyo wakati sisi kwenda na ampersand x,
Tunajua kwamba kuwa lazima kutathmini kwa 0x00.
Ambayo ni kwa nini sisi kuhifadhiwa kwamba kama thamani ya pointer yetu.
Je, hiyo mantiki?
>> Watazamaji: Ndiyo.
Na nakala huenda kwa dereference ptr--
ANDI PENG: Haki.
Watazamaji: --which ni pointer kwamba tumekuwa
alitangaza kwamba inatuambia pepe ya integer x.
>> ANDI PENG: Naam.
>> Watazamaji: Na katika hili kesi moja, nyota PTR ni
sawa na thamani ya x ambayo ni sawa na 5.
>> ANDI PENG: Sahihi.
>> Watazamaji: Moto.
Na kwamba ni njia rahisi ya kupata kuwa au ni kwamba tu way--
ANDI PENG: Kwa hiyo hivi sasa ni haionekani mantiki sana kwa ajili yetu
kwa kutumia yote ya wakati huu kufanya hii kitu super ngumu wakati
zote tumefanya ni kuunda wawili tu integers kwa thamani ya 5, sawa?
Ni haina mantiki.
Lakini mara tutaweza kwenda juu mgao kumbukumbu and-- tutaweza
kwenda juu kwa nini hii inaweza kuwa Handy na manufaa baadaye.
Matumaini yangu wakati mimi kusema hatuna tu kujenga kazi hizi holela kwa wewe
guys kujifunza kwa sababu tuko kujaribu kwa fujo na wewe.
Kuna kweli anatumia kwa yote haya mambo na sisi majadiliano kuhusu wao.
>> Watazamaji: Ajabu.
>> ANDI PENG: Naam.
>> Watazamaji: [inaudible].
>> ANDI PENG: Swali Mwema.
>> Watazamaji: [inaudible].
>> ANDI PENG: Siyo.
Ni kweli si.
Watazamaji: vigezo --two kwamba pia sawa [inaudible].
SAWA.
>> ANDI PENG: Naam.
SAWA.
Kabla ya kusonga mbele, ni wote wa wazi?
Najua Taylor, wewe got katika kidogo marehemu.
Ni sawa.
Ni online.
Itabidi kuangalia kwanza 20 dakika na wewe utakuwa na kila tendo jema.
SAWA.
Baridi.
>> Sawa.
Hivyo hii ni kimsingi aina ya jambo kama hilo kwamba sisi tu alivyofanya.
Ni tu katika fomu graphical.
Kama ungekuwa na kufuatilia nini ilitokea tu, int x sawa 5,
zote tumefanya katika hatua hii ni kujenga kutofautiana aitwaye x ya aina int.
Tunakwenda kuhifadhi thamani ya 5 ndani yake.
Hakuna pointer kwa sababu tuna si kweli kuundwa pointer bado, sawa?
Na kisha katika ijayo mstari, int nyota pointer,
hapo ndipo sisi ni kweli kimwili kujenga pointer
na sisi ni kuweka kwamba sawa na, au referencing
pointer, kwa ampersand x.
Ambayo ni ambapo popote katika kumbukumbu hii ilitokea kuwa.
Sikuwa kweli kujisumbua maamuzi juu ya thamani wakati huu.
Lakini katika kesi hii, hatua hiyo ungekuwa sawa na ile.
>> Na kisha chini huko, nyota pointer ni dereferencing.
Hiyo ambapo sisi ni kuunganisha habari.
Hivyo kwamba thamani katika x ni kweli kwenda kuwa sawa na 35.
Hivyo katika hatua hii, tumekuwa kimsingi tu reinitialized x kwa 35
bila ya kweli kugusa x.
Tu kwa njia ya pointer kwamba alikuwa akizungumzia x,
sisi kweli unaweza kubadilisha nini x alikuwa.
Mimi nina kwenda kuteka hii nje pia.
>> Hivyo hapa tumeunda baadhi anuani random hapa.
Hebu tu kusema 0x00 tena.
Hebu tu kusema kwamba ni mahali.
Na tumeunda integer aitwaye x na thamani nimekuwa ajili ya ni 5.
Katika mstari wa pili, int pointer hivyo sasa tumekuwa
got jambo hili la pili hapa aitwaye pointer
na tunakwenda to-- hebu sema tu ni baadhi ya wengine bila mpangilio kumbukumbu ya mahali.
>> Hivyo sisi ni kwenda kuweka hii sawa na chochote kwamba alikuwa.
Na pointer hii ni kwenda kuelekezea thamani ya x
Na kisha, kama sisi mabadiliko the-- kama sisi kufanya nyota pointer,
ambayo inaenda thamani ya pointer yetu.
Katika kesi hiyo, ni kwenda kufuatilia huu mshale juu ya thamani hii ya x
na ni kwenda mabadiliko hayo kwa 35.
Kwa ufanisi, sisi tu iliyopita x bila kugusa x.
Kupitia referencing tu kuyatumia, tunaweza kwenda na mabadiliko ya thamani ya x.
Je, hiyo mantiki?
>> Hivyo kwa njia hii, tunaweza kweli kubadili jina na rechange na reassign maadili
kwa mambo ambayo hatukuwa kweli kufanya sisi wenyewe.
Je, hiyo mantiki kwa kila mtu?
Baridi.
SAWA.
Hivyo tata mchoro hapa.
Kwenda mstari kwa mstari.
Kimsingi, tu kufanya halisi kitu kimoja kwamba mimi tu alifanya.
Kabla ya kusonga mbele, mimi kweli wanataka tu kufanya
kuhakikisha kwamba kila mtu kweli wazi juu ya hili.
Hivyo hapa, kanuni na kwamba tuna ni int a sawa na 3, b sawa na 4, c sawa na 5.
Hivyo tumeunda integers tatu aitwaye a, b na c kwamba ni sawa na 3, 4 na 5.
Na kisha sisi ni kujenga kuyatumia tatu hatua hiyo kwa kila moja ya vigezo hizo.
>> Na sasa tunakwenda kwenda juu ya kimsingi
kile kinachotokea wakati kazi juu yao.
Hivyo kuteka yao nje.
Kuchukua karatasi ya paper-- mimi si kujua kama nyie wote wana karatasi,
lakini wale ambao hawana, labda kukopa kutoka wale ambao kufanya.
Kuchukua karatasi na kwenda mstari kwa mstari.
Na katika kila kazi kwamba kufanya, Nataka nyie kweli kuandika nje
kile ni, b na c katika hatua hii.
Na nini ni anwani, nini ni kuyatumia kwamba uhakika na b na c
katika hatua hii?
>> Na kisha hopefully hii itakuwa aina ya hatua nyie
kupitia jinsi ya kufikiri juu ya kuyatumia.
Sisi siyo kwenda njia zote za kwao.
Labda mimi nitakupa five-- kama, dakika tatu.
Kupata kuanza juu ya kwanza wachache.
Loo.
Oops.
>> Watazamaji: Katika mstari wa pili, kwa nini si nyota [inaudible] kutofautiana?
>> ANDI PENG: Kumbuka katika waendeshaji, katika wiki ya kwanza,
kuongelea jinsi mkifanya sawa pamoja,
kwamba tu ina maana sawa na pamoja c.
Katika hili case-- hivyo hii ni mwingine njia ambayo nyota zinaweza kutumika.
Mbali na referencing na kutangaza kuyatumia,
kukumbuka kwamba pia ina maana kuzidisha.
Hivyo katika kesi hii, ni d tu kuwa sawa na nyakati c.
Hiyo tu kama tofauti njia ya kuandika kwamba.
>> Watazamaji: sawa mara c.
ANDI PENG: Naam.
>> Watazamaji: Ni nini maana ikiwa inasema ampersand barua?
>> ANDI PENG: Ampersand njia wewe ni kwenda that-- uko
kwenda mahali pointer ni akizungumzia na kuunganisha mahali.
Hivyo ampersand anatoa mitaani, nyota anatoa thamani halisi huko.
>> Watazamaji: Je, sisi kujenga juu ya mstari kwa mstari?
>> ANDI PENG: Wewe kujenga juu ya mstari kwa mstari.
Hivyo tu kwenda mstari mmoja katika muda na then-- wewe
si kuwa na wasiwasi kuhusu kumaliza jambo zima.
Hebu jaribu kupata kupitia labda mbili, mistari mitatu
na kisha tutaweza kuitisha na kumaliza hii.
>> Ni kabisa OK ikiwa nyie ni waliopotea.
Hii ni dhana ngumu kweli kweli.
Kama nyie ni wasiwasi kwamba daraja la huenda kama hii kama Daudi alikuwa akisema,
haina.
Sisi ni kufikia dhana kilele cha ugumu
na kisha itakuja kuwa kushuka sloping.
Hivyo nyie ni karibu na hapo.
Sisi wana kura ya pipi kupata nyie kupitia nundu.
Nadhani pretty much baada ya kuanguka kuvunja tutaweza kuwa juu ya nundu
na maisha itakuwa vizuri tena.
Hivyo hakuna wasiwasi wakati wote.
Sawa.
Mimi nitakupa guys 20 sekunde zaidi wa kufuta.
SAWA.
Sawa.
Hebu kuchukua kumchoma katika hili.
Kama nyie nipe majibu, Mimi tu kwenda kwa aina yao katika.
Na pengine we-- Unaweza mimi?
Mimi kwa kweli hawawezi aina yake katika.
Mimi itabidi kuteka ni juu ya bodi.
>> Hivyo hapa katika mstari huu kwanza tuna sawa na b nyota c.
Pia Elliot kulelewa kweli, hatua nzuri kwa kweli.
Kwa sababu mimi nilimsahau kwamba zaidi ya njia mbili tunaweza kutumia nyota alama,
kuna kweli njia tatu.
Kuzidisha.
Na hivyo si tu kupata kuchanganyikiwa kwa sababu kuwa ni njia ya kwanza ya kutumia nyota.
Ni kuwaambia tu kompyuta kwamba mimi nina kuhusu kujenga pointer.
>> Njia ya pili kwa kufanya nyota wa pointer yako,
kwamba anaelezea pointer kwamba unataka kupata data wakati huo pointer.
Na kisha, bila shaka, kuna kuzidisha rahisi tu
kati ya namba mbili kwamba anasema kuwa nataka kuzidisha mbili.
Hivyo kuna mengi ya njia tunaweza kutumia nyota alama.
Je, si kupata kuchanganyikiwa.
Tu kuhakikisha kwamba nyie kuelewa nini hasa zote tatu wao
unafanya.
>> Hivyo katika mstari huu wa kwanza, a sawa na mara b c.
Basi hebu kwenda kwa njia ya kile ni, ni nini b, ni nini c?
Na ni nini pointer ya, pointer b, na c pointer?
Je, ni sawa na wale wote?
SAWA.
>> Hivyo sisi kuanza mbali na ni sawa na 3, b sawa na 4, na c ni sawa na 5, sawa?
Kwa hiyo baada ya kuwa mstari wa kwanza, unaweza mtu kuniambia nini a ni?
Naam.
Kujisikia huru na haki kuita majibu.
20.
Nzuri.
Nini b?
>> Watazamaji: 4.
ANDI PENG: Nini c?
Watazamaji: 5.
ANDI PENG: Yay.
Nzuri.
Je, ni pa, AS, na pc?
>> Watazamaji: 000001 na 002?
ANDI PENG: Naam.
Hivyo aina ya swali hila lakini si kweli kwa sababu mimi hapa
akatoa kumbukumbu halisi.
Lakini kwa sababu, kwa mfano, hatufanyi kweli kujua nini wale idadi ni,
tunaweza tu kusema ampersand.
Mimi wala hata kujua kama mimi wanaweza kuteka ampersand.
Ni like-- ni jinsi gani unaweza kufanya hivyo?
>> Watazamaji: Kama kuchora nane.
>> ANDI PENG: Kama nane.
Kama hiyo.
SAWA.
Watazamaji: Bingo.
>> ANDI PENG: Mauaji hayo.
Hivyo ampersand, unaweza tu kufanya hivyo.
Kwa sababu sisi si kweli huduma ya kile thamani ya kwamba
ni, na ni baadhi ya muda mrefu thamani punda anyways,
sisi ni kutumia giông tu kusema ampersand a.
Kisha nini PB?
Watazamaji: [inaudible].
ANDI PENG: Naam.
Baridi.
Sawa.
Easy kwanza line.
Tulipata hii.
Kuyatumia ni rahisi.
Ni sawa.
>> Pili line.
Na hivyo nyota ni sawa na ni sawa Jambo akisema ni sawa na mara c.
Ni tu njia rahisi ya kuandika.
Hivyo sisi siyo kujaribu kufanya hatua au kitu chochote hapa.
Hivyo kufanywa na mstari wa kwanza.
Ni nini juu ya mstari wa pili baada ya kufanya sawa na mara c?
>> Watazamaji: 100?
ANDI PENG: Ni 100.
Nzuri.
Vipi kuhusu b?
>> Watazamaji: [inaudible].
>> ANDI PENG: Vipi kuhusu c?
>> Watazamaji: [inaudible].
>> ANDI PENG: Na vipi kuhusu kuyatumia?
Je, they-- huo, sawa?
SAWA.
Sasa mstari wa tatu.
Kidogo trickier.
b sawa na nyota pa.
Je, mtu kuniambia, kwanza, nini nyota pa sawa?
>> Watazamaji: Ni thamani ambayo imehifadhiwa katika.
ANDI PENG: Hasa.
Na ni nini thamani ambayo imehifadhiwa katika?
>> Watazamaji: 100.
>> ANDI PENG: Sawa.
Hivyo nini itakuwa baada ya utekelezaji kuwa mstari wa kanuni?
>> Watazamaji: [inaudible].
>> ANDI PENG: Je kuhusu b?
>> Watazamaji: 100.
>> ANDI PENG: Naam.
Na kisha kila kitu kingine ni pretty much unchanged, sawa?
Kwa sababu hatukuwa kugusa yake.
Baridi.
Mstari wa nne.
Kidogo ngumu zaidi.
Hivyo pc-- kwa mara nyingine tena, ni pointer pc kwamba alisema kwa c-- sawa na pa.
Ni nini?
>> Watazamaji: 100.
ANDI PENG: ni b ni nini?
Watazamaji: 100.
ANDI PENG: c ni nini?
Watazamaji: 5.
ANDI PENG: Nini pa?
Watazamaji: ampersand.
ANDI PENG: PB?
Watazamaji: Ampersand b.
ANDI PENG: Na gumu, ni nini pc sasa?
Watazamaji: ampersand.
ANDI PENG: Yay.
Woo hoo.
Nyie kuona kitu gani?
Hii ni sawa.
Ni si mbaya sana.
Tuna pipi zaidi kama siyo zote haki, lakini nadhani ni sawa.
Na tunakwenda kwenda juu moja tu zaidi kabla ya sisi kugonga ndio ngumu.
Majibu nina hapa.
>> Kimsingi, kujua kwamba hii ni kama hesabu katika hatua hii.
Wakati una equations rahisi kama pamoja na b, c mara, hiyo ni rahisi kufanya.
Na wakati wa kuanza kupanua juu ya hivyo, tu kwenda utaratibu wa shughuli.
Kitu kimoja kama kabla.
>> Kuweka wimbo wa kama yako nyota ni kabla ya kitu fulani.
Kwamba anaelezea thamani.
Kama una na kabla kitu, atakwambia mahali.
Na unapaswa kuwapa ama kuyatumia au thamani hiyo.
Basi hebu kwenda juu ya hii mwisho moja ya haraka ya kweli.
Si hii moja ya mwisho, pole.
Kwa kweli, nyie anaweza kuchukua.
Ambayo moja je, guys wanataka kwenda zaidi nje ya tatu iliyobaki
kwamba tuna?
Sidhani kama tunaweza tu kufanya hivyo kwa sababu hatuwezi tu kuruka kwa mstari.
SAWA.
Nyie hawana uchaguzi, ni tu ya tatu kwa mara ya mwisho moja.
>> Star pc sawa na mara b c.
>> Watazamaji: Star PB?
>> Watazamaji: Star PB.
ANDI PENG: Sorry?
Watazamaji: Star PB.
ANDI PENG: Star PB.
Oh, mbaya wangu.
Star PB sawa na mara b c.
Mimi nina kwenda kukupa guys sekunde 10.
Haraka tu kufikiri.
Hii ni kwamba tuna hivyo mbali, nini kinatokea baada ya sisi
kutekeleza kwamba mstari wa tano pale pale?
SAWA.
Ni nini?
>> Watazamaji: 100.
>> ANDI PENG: 100.
Ni nini b sasa?
>> Watazamaji: 500.
>> ANDI PENG: Good.
Je, mtu unataka kueleza kwangu kwa nini hii ni 500?
Sijisikii kama sisi kweli milele kuguswa b.
Jinsi gani sisi kusimamia na mabadiliko thamani ya b bila kugusa b?
Yeah?
>> Watazamaji: Kwa sababu nyota PB ina maana thamani kwenye pb--
ANDI PENG: Hasa.
Watazamaji: --which ni b.
ANDI PENG: Hasa.
Hivyo hapa katika mchoro wetu, pointer yetu PB ni kweli akizungumzia haki hii
hapa, ambayo ni halisi ya kimwili b.
Na hivyo kama wewe kwenda na kufanya nyota AS, hiyo ni
kufuatia mshale yako ya pointer yako na kimwili kubadilisha thamani ya b.
Hivyo ndiyo sababu tuna b iliyopita na 500 bila kweli kugusa b.
Na kisha kila kitu kingine bado sawa kwa sababu hatukuwa kugusa hiyo.
Hiyo ni b.
Baridi.
Na then--
>> Watazamaji: Mimi tu swali.
>> ANDI PENG: Yeah?
>> Watazamaji: Kwa kuwa we've-- hakuna tena ampersand c,
Hiyo ina maana ampersand a kuelekeza kwa kitu kimoja sasa?
>> ANDI PENG: Yep.
So--
Watazamaji: Hivyo mshale aina ya tu hatua and--
ANDI PENG: Kwa hiyo essentially--
Watazamaji: --now hatuwezi access--
ANDI PENG: --when sisi dereference c on-- mimi mzushi.
Nini ilikuwa hivyo?
Mstari wa tatu?
Nne.
Mstari wa nne.
Wote sisi alifanya alikuwa, kimsingi, mabadiliko mshale huu
na kuwa ni muelekeo wa badala.
>> Watazamaji: Hivyo sisi hawawezi kupata c tena.
>> ANDI PENG: Kama ulikuwa hii halisi idadi, unaweza kupata huduma hiyo.
Lakini, hakuna.
Hatuna pointer akizungumzia kuelekea c tena.
Nadhani kama alitaka upya upatikanaji hilo,
ingekuwa kujenga mwingine pointer kwamba re-alisema kwa c
au dereferenced hii na alisema nyuma.
Hivyo, hakuna, kama ya sasa hivi, tatu kuyatumia, hakuna hata mmoja wao uhakika na c.
>> Kila mtu mwema?
Majibu ni online.
Kujisikia huru, baada ya kifungu cha, kwenda juu mbili na mtihani wa mwisho wenyewe.
Dhana hiyo, tu kidogo trickier kidogo.
Kufuata tu kwa njia ya mantiki ya kwa nini mambo ni mambo mbalimbali.
Na ladha, kuyatumia ni mada kwamba tunapenda
kufunika juu ya Quizzes kwa sababu wao ni conceptually sana changamoto.
Hivyo napenda kupendekeza kwamba wewe guys wote kupitia mchoro huu
au kufyeka dhana sawa na hii kabla ya jaribio yako wiki ijayo.
>> Watazamaji: Samahani.
>> ANDI PENG: Yeah?
Watazamaji: [inaudible] mwisho one-- [inaudible].
>> ANDI PENG: 50,000?
Napenda haja ya kufuata nyuma chini.
Lakini somewhere-- Nadhani mstari kabla, wewe uliumba thamani kubwa c.
c sawa na jambo hili kubwa ambayo ni 100 mara 500.
Hakuna
>> Watazamaji: [inaudible].
>> ANDI PENG: Ndiyo.
100 mara 100 ambayo ni 10,000.
Ambayo ni 10,000.
Hivyo nyuma chini huko uko kuzidisha b na c.
Hivyo pointer kwamba pointi kwa b-- ambayo ni thamani ya mara 500-- a--
>> Watazamaji: [inaudible].
ANDI PENG: Labda hilo ni kosa.
Watazamaji: Hapana, hapana, siyo. [Inaudible] pointer katika c sasa akionyesha a--
ANDI PENG: Naam.
Yeye ni haki.
>> Watazamaji: --it ni katika wake katika usawa a times-- ni thamani ya c.
ANDI PENG: Je, unaweza kusema kwamba kidogo kidogo nguvu zaidi ili kila mtu anaweza kusikia wewe?
Watazamaji: Hivyo pointer katika c sasa anasema kwa nini pointer kwa uhakika wa kutumika
to-- na bado does-- lakini wao uhakika na kitu kimoja ambayo ni a, sawa?
Thamani a, hata hivyo imekuwa ni wapya inavyoelezwa.
Na mwanzoni mwa kwamba wewe ni akisema awali alikuwa mara 100
thamani katika b ambayo ni 500.
Na hivyo ndiyo hata hivyo, kwamba ni.
50,000.
Wao uko reassigning kwamba kwa nini kumbukumbu nafasi katika c is-- pointer katika c
ni akizungumzia ambayo ni.
Hivyo wewe ni upya na kuwa 50,000.
ANDI PENG: Yeye anaweza kufundisha kifungu kwa ajili yangu.
Wakati mwingine ni yako yote.
Hapa.
Hapa ni pipi zaidi kwa ajili hiyo.
Unastahili pipi kwa ajili hiyo.
>> Watazamaji: Mimi karibu hawakupata hiyo.
>> ANDI PENG: Wewe karibu hawakupata hiyo.
Hiyo ni sawa.
Naam.
Lakini yeye alikuwa sahihi kabisa.
Kwa hiyo kile una kufanya ni that-- Nadhani sisi
una kufuata ukweli kwamba kuyatumia ni sasa
akizungumzia maadili tofauti.
Hivyo value-- pole, pointer ya c repointed kwa.
Na hivyo kuwa kubadilishwa yote ya idadi yetu.
Na hii ndiyo maana, wakati wewe kupata thamani kuhifadhiwa huko, ni tofauti.
Je, hiyo mantiki?
SAWA.
Baridi.
Kila mtu mwema, kabla ya mimi kuondoka?
>> Watazamaji: Je, the-- wakati wewe ni kwenda chini ya safu katika safu ya kushoto,
haina safu ya kwanza kuathiri safu ya pili na kisha second-- kama, ni all--
ANDI PENG: Naam.
Hivyo kufikiria ni kanuni ambapo mimi tu typed katika sawa b nyakati c, nyota ni sawa na c.
Hebu fikiria kwamba nimekuwa tu mbio kificho hii
na sikuweza magazeti nje nini mambo yote haya walikuwa.
Kama ningekuwa tu magazeti kwanza Jambo juu, itakuwa hapa.
Kama baada ya mimi mbio zote za wale mistari ya kificho,
nini maadili haya lazima kuwa mwishoni ni kwamba.
>> Hivyo nimekuwa kweli imeandikwa mpango hapa.
Mimi sina kosa yote ya kuzidisha.
Lakini tu kufikiria.
Hivyo hapa mimi tu na mpango ujulikanao kuyatumia.
Mimi nina kwenda kuvuta kama wewe guys-- sawa.
Hivyo nimekuwa kuundwa vigezo, b, na c.
Nimekuwa kuweka yao sawa na 3, 4, na 5 na nimekuwa
umba kuyatumia yao sambamba.
Na kisha hapa mimi nina kwenda tu magazeti nje nini kwamba ni.
Hivyo basi mimi kukimbia huo.
>> Je, guys see-- crap.
Je, guys kuona jinsi, b na c ni maadili hayo
lakini kuyatumia yao ni kubwa hii takataka thamani kwamba hatuna huduma ya juu?
Hivyo kama ningekuwa kweli kuziba katika kuzidisha zote
na kisha kikachapishwa wote wa huu, ingekuwa kutekeleza nje
kwa nini kuwa ni chini.
Hivyo kama wewe guys wanataka kucheza karibu kwa kweli kimwili coding,
nyie unaweza kuziba tu wale wote katika.
Kificho itakuwa online na kisha yako maadili lazima magazeti kwa kuwa baadaye.
>> Na kisha utaona jinsi pointer anwani kwa kweli reassigned.
Hivyo utaona jinsi pepe ya c kweli inakuwa
kwa sawa chochote pepe ya mara.
Na wao itabidi mechi chochote idadi hiyo kubwa ni.
Nzuri swali.
Kila mtu sawa?
Moja wito wa mwisho kwa maswali.
SAWA.
Sawa.
Ili kujiandaa kuwa na akili yako barugumu kidogo kidogo zaidi.
Arrays ni kweli kuyatumia tu.
Hayo ni yote walipo.
Na kumbuka, ni masharti?
Wao ni pia arrays.
Kwa hiyo kile ni masharti kweli?
Wao ni kama kuyatumia kwa mwanzo wa char ya chars zaidi.
>> Hivyo ni dhana tu kwamba kuanza kujenga juu ya kila mmoja.
Hivyo hiyo ni why-- wewe kumbuka katika hotuba, Daudi,
wakati yeye alikuwa na kwamba kulinganisha ya int kamba mama
ni kitu na kisha mwingine kamba mama na wewe
kujaribu equate mbili kwa kila mmoja, wao kukupa maadili tofauti.
Ni kwa sababu masharti wenyewe si maadili.
Wote hao ni watu anwani kumbukumbu char-- wao ni arrays ya chars na arrays
ni kuyatumia tu.
>> Hivyo, kwa asili, wakati Daudi alikuwa comparing--
je, ni sawa kama mimi kufuta yote haya?
Hivyo katika hotuba wakati Daudi alikuwa mama sawa sawa na mama,
kwetu kwamba inaonekana kuwa kitu kimoja.
Sawa?
Lakini, katika kompyuta chini kofia, nini ni kweli yanatokea
ni kwamba kamba hii, yote ambayo ni safu.
Kwa ampersand-- au, pole, pamoja null Terminator mwishoni.
Sawa?
Backslash 0.
Vibaya backslash.
>> Basi wote hao were-- zote masharti hayo mawili were--
ni safu ya ukubwa fours kwa barua ya mama na mama.
Lakini nini arrays kwa kweli ni watu tu kuyatumia kwa mahali maalum katika kumbukumbu
kwamba anaelezea kuanza safu yako.
Hivyo katika kesi hii, yote hii ilikuwa Ilikuwa baadhi tu ya thamani ya takataka,
baadhi pointer bila mpangilio.
Na yote hii ilikuwa ilikuwa baadhi ya wengine takataka thamani.
Hebu tu kusema 0x200.
>> Na hivyo wakati wewe kujaribu sawa nao wawili kwa kila mmoja,
wao kutathmini kwa uongo kwa sababu addresses-- kuyatumia
kuwa wao were-- yalikuwa tofauti.
Wakati ni tofauti kama wewe ni kujaribu kulinganisha integers halisi.
Kama kama alitaka compare-- katika mwisho example-- int a b,
wangeweza kutathmini kwa kweli kama Elliot alisema
kwa sababu walikuwa integers kwamba walikuwa kuhifadhiwa
na wewe ni kutathmini tu maadili.
Hapa, kwa sababu masharti ni arrays na arrays wote ni kuyatumia,
hiyo ndiyo sababu wao si sawa kwa kila mmoja.
>> Hivyo aina ya utata, kwamba graphic.
Lakini hebu tu kufikiria.
Tumekuwa kujenga safu ya ukubwa 3 na ripoti kutoka 0 kwa 2-- 0,
1, 2 na maadili ya 1, 2, na 3 kuhifadhiwa katika wao.
Safu zote kweli does-- hapa, hebu tu
kusema mimi nina kujenga pointer kwa kuwa safu hiyo ni
kupata thamani katika kwanza ripoti ya safu hii.
Hivyo hapa itakuwa 0.
Sawa?
Je, kila mtu kuelewa jinsi kuwa mstari wa kwanza tathmini?
Kubwa.
>> Na hivyo kama alitaka initialize maadili ziada baada ya hapo,
wote sisi ni kufanya ni reassigning.
Hivyo 0, 1, 2, 1.
Hivyo pointer hii kwamba mara kwa mara akizungumzia hapa, kila tuko kufanya
ni kusonga chini.
Hilo ndilo pamoja na 1 ni kufanya.
Na kisha tunaweza kuweka 2 huko.
Kama sisi alitaka kuweka 3 katika moja baada, tunataka kufuta pointer hii,
kuweka 3 katika huko.
Je, hiyo mantiki kila mtu?
Naam.
Je, una swali?
Watazamaji: Ni [inaudible] na swali, mimi itabidi kusema hivyo.
Sidhani kama ni kweli swali but-- kwa Kiingereza, safu
sawa na 1 hufanya akili.
Sisi ni kama, sawa, kitu cha kwanza.
Lakini mambo 0 ripoti [Inaudible] safu sawa na 0
zinaonyesha doa kwanza.
ANDI PENG: Naam.
Hivyo kweli nini mimi kufanya hapa ni Mimi si kupata ripoti ya kwanza.
Wote nilikuwa doing-- hivyo kwanza ya yote, kuniambia nini nyota safu nini?
Je nyota kabla pointer nini?
>> Watazamaji: Inaonyesha pointer.
Kuwa wewe ni kutangaza pointer.
Ni de--
>> ANDI PENG: Ni dereferences ambayo ina maana unaendelea na kwa kweli anapata thamani.
Sawa?
Hivyo katika kesi hii, unataka kupata thamani hapa na kuweka kwamba kwa 1.
Yeah?
Hivyo mimi nina si actually-- mimi si kweli huduma kuhusu ripoti hii,
zote mimi nina kufanya ni iterating chini tu na kusonga pointer yangu chini safu.
Na kisha hatimaye mimi kuwa na kuacha hayo, haki?
Na kwa njia hiyo mimi kuacha ni wakati mimi kugonga, katika kesi
ya kamba, null Terminator.
Najua, loo, kama mimi hit back-- kama mimi kuona backslash 0, najua mimi nina kufanyika kwa hii
na najua kwamba siwezi tu kuacha iterating kupitia.
Mzuri swali.
>> Na tutaweza kweli kwenda mbali zaidi kwa kina katika wiki hii ijayo
kwa sababu kipande ambayo inaenda kuhusisha mengi ya matumizi ya kuyatumia.
Lakini tu kujua kwamba hivi sasa, hiyo ni more-- tofauti
hiyo ni njia tofauti kwa kompyuta kuandika, kimsingi,
nini tumekuwa kufanya.
Kama Daudi alisema katika hotuba, kwa njia hiyo sisi
kupata safu ni tu kwa kufanya safu 0, mabano 0, kama sisi tu
alitaka kupata thamani kwanza.
>> Kompyuta zote ni kufanya ni kugeuka kwamba katika kuwa na iterating yenyewe.
Hivyo sisi kuiita kisintaksia sukari ambayo ni haki
njia dhana ya kusema user kirafiki njia ya sisi kujua jinsi ya mpango.
Lakini kompyuta chini, nini ni kufanya,
ni kweli kuwa tu pointer hiyo kurekebisha.
Lakini njia hiyo sisi kuandika, kwa sababu ni rahisi kwa sisi
kufikiri juu ya mambo katika suala la masanduku na jinsi ya kusonga chini masanduku,
ni kwa kuwa na mabano.
Samahani, kwamba alikuwa kweli, kweli hafifu but-- yeah.
Watazamaji: Hivyo ni jinsi gani kulinganisha masharti mawili
kuona kama uko sawa kwa kila mmoja?
>> ANDI PENG: Kwa hiyo Daudi aliandika mpango huu katika hotuba
hivyo mimi nina kwenda tu kwenda zaidi ya haraka na kwa ufupi.
Namna gani kufanya hivyo ni kwamba wewe ungekuwa kweli
haja ya kwenda na kulinganisha addresses-- au maadili
zilizopatikana kutoka kuyatumia.
Basi kumbuka, jinsi gani unaweza kupata thamani hapa?
Sijali kuhusu anuani hapa.
Je, mimi kwa kweli kupata thamani ya chochote hapa?
>> Watazamaji: [inaudible].
>> ANDI PENG: Hasa.
Hivyo kulinganisha nyota hapa dhidi ya nyota hapa.
Ni wale sawa.
Na kisha kwenda chini.
Ni nyota hapa na nyota hapa sawa?
SAWA.
Wao ni sawa.
Na wewe tu kuendelea kwenda chini mpaka umefanya kugonga mwisho wa wote.
Na kama wote ni sawa, basi unajua kamba yako ni sawa.
Na C kwa kweli ina kazi kuandikwa inaitwa
Kamba Comp ambayo kwa kweli tu anafanya hivyo kwa ajili yenu hivyo huna '
kuandika hivyo mwenyewe.
Yeah?
>> Watazamaji: Nadhani katika hotuba ni wakati hatuna kulinganisha.
Sisi si kweli haja kukabiliana na kama pi, sawa?
>> ANDI PENG: Je, si kwa sababu sisi si kweli huduma
jinsi masanduku mengi tumekuwa iterated kupitia.
Wote sisi huduma ni kwamba tunakwenda kuendelea mpaka Najua kuacha.
Na unajua kuacha wakati kuna aina fulani ya dalili
kuwa uko katika null Terminator.
Naam.
So--
Watazamaji: [inaudible].
ANDI PENG: Naam.
Hivyo katika kesi ya kulinganisha masharti, mimi si kweli
huduma barua ni wangapi are-- nahitaji kulinganisha
kama uko kweli au uongo iwapo wao uko sawa kwa kila mmoja.
Sijali barua ni wangapi ni katika kila mmoja wao, sawa?
I just huduma ya kwamba hii mechi na hii na moja
baada ya mechi na moja baada ya mechi njia yote hadi mwisho.
Sawa?
Je, hiyo mantiki?
>> Hivyo mimi si kweli huduma barua ni wangapi, I just huduma ya kwamba wote wa barua
mechi.
Naam.
SAWA.
Je, mimi hoja juu ya kutokana na hili?
Kubwa.
Sisi ni mbio fupi juu kidogo wakati hivyo mimi nina kwenda kwa kuruhusu tu
guys kwa ufupi kuangalia hii.
Kukimbia ndani ID wako kama nyie ni wadadisi.
Na nyie unaweza kuona nini hii itakuwa uchapishaji nje.
SAWA.
>> Hivyo kitu ambacho tutaweza pia zinagusa kidogo ni wazo la pointer hesabu.
Ambayo, kila ilivyo, ni badala ya kurekebisha
maadili ya nini ni kuhifadhiwa katika anuani ya pointer yako,
ni tu kwa kweli kubadilisha anuani yenyewe.
Hivyo kama wewe kama binadamu alitaka kurekebisha pointer yako mwenyewe,
namna gani kufanya hivyo ni tu kufanya n mara ukubwa wa pointer.
Sawa?
>> Hivyo int.
Int ka wangapi katika kumbukumbu ni int?
Ni wanne, sawa?
Hivyo kama mimi kujua nina safu ya yote ints na mimi nataka kwa uhakika na moja
baadaye, Ningependa kujua mimi tu na hoja ya pointer yangu chini ka nne, sawa?
Na hivyo n mara ukubwa ya ka pointer
ni ka hata hivyo wengi uko tu kwenda hoja pointer yako chini kwa.
>> Hivyo kwa mfano, kama tuna safu ya ints, moja ya kwanza, hebu sema tu,
ni kuhifadhiwa kama 0x00.
Unajua moja ijayo ni kwenda kuwa katika 0x04 kwa sababu hiyo ni ka nne baadaye.
Na moja baada ya ambayo inaenda kuwa 0x08 na kadhalika na kadhalika.
Na hivyo, guys, tuangalie.
>> Wote unafanya hapa ni kwamba una pointer y
na wewe ni kuongeza kwamba kwa yako kumbukumbu ili uweze hoja chini
vitalu ya kumbukumbu zilizotengwa.
Aina ya dhana ngazi za juu.
Nyie si haja kujua kwa wiki hii,
lakini hiyo yote ni kufanya huko chini.
SAWA.
>> Utani wakati mwingine.
Masharti mawili kutembea ndani ya bar.
Mmoja wenu anaposema, Ningependa rom na Coke maadili takataka.
Wengine anasema, itabidi udhuru rafiki yangu, yeye si null kukoma.
Nyie kupata.
Pole.
Hii ni jinsi mimi kuweka mwenyewe kwenda wakati mimi prep kwa sehemu
ni mimi kuingiza slides wanandoa mzaha.
Anyways.
SAWA.
Kabla ya mimi hoja on-- hivyo, kimsingi, tumekuwa
kufunikwa zote dhana masuala yanayohusiana na kuyatumia.
Na kisha tunakwenda talk-- kusonga zaidi, majadiliano juu ya nini hiyo ni muhimu
na jinsi inafaa katika wazo la usimamizi wa kumbukumbu.
Lakini kabla ya kusonga mbele, haina mtu yeyote una maswali
kuhusu matumizi pointer, nini kinaendelea juu ya wakati wewe ni kujenga kuyatumia,
jinsi ni referencing kila mengine, jinsi ndio dereferencing?
Maswali yoyote kuhusu kwamba kabla mimi hoja juu ya?
SAWA.
Kubwa.
>> Hivyo hii inatuleta katika hii kubwa dhana ngazi za juu
ya kumbukumbu ya usimamizi kwa ujumla.
Hivyo, kimsingi, katika kompyuta yako, kuna
aina mbili za msingi za kumbukumbu au mikoa ambayo kumbukumbu ni kuhifadhiwa.
Una hapa kile kinachoitwa lundo na una chini hapa
kile kinachoitwa stack.
Na sisi ni kwenda kuzungumza kuhusu stack kwanza kwa sababu ni
moja zaidi finagley kwamba kuwa na aina ya conceptually
kuelewa nini kinaendelea.
>> Hivyo stack zote is-- kufikiria kama stack kimwili ya kumbukumbu
ambapo una block ya kumbukumbu hiyo ni kuweka kando kwa ajili ya mpango wako
wakati ni mbio.
Na hii ni mahali ambapo, kimsingi, kila ya vigezo lako ni kuhifadhiwa.
Hivyo hii ni tu zoomed katika picha ya kwamba stack.
Stack chini huko, mimi nina zooming tu katika kidogo zaidi.
>> Hivyo, kimsingi, katika mkusanyiko una rundo la kazi katika mpango wako.
Basi hebu tu kwenda nyuma kwa mfano wiki mbili
ambapo tulikuwa na kazi yetu kuu kama vile mchemraba kazi
ambapo sisi alijaribu kujenga kazi ambayo cubed-- kwamba alichukua vigezo kama pembejeo,
cubed yao na kurudi kuwarejesha kwenye kuu.
Hivyo njia kwamba hiyo ni kuhifadhiwa katika kumbukumbu ni kwamba una kazi yako kuu
hapa chini.
Na kisha kwa kazi kila ziada kwamba wewe piga na kuongeza juu ya kwamba,
kumbukumbu tu mwingi juu.
Fikiria kama stack kimwili.
>> Na hivyo kuwa nyote kuu vigezo ya kazi yako kuu,
kila kitu ambacho kinaendelea hapa, kuhifadhiwa.
Na kisha wakati wewe kuitwa mchemraba, unaendelea na
inajenga nakala za wale wote vigezo na ni maduka yao
juu katika nafasi mbalimbali.
Na hivyo kwa nini sisi huduma?
Sababu sisi huduma ni kwamba hatuwezi tu kutumia vigezo here-- vigezo
here-- na sisi kuwabadilisha, tunatarajia wao pia inaweza kubadilishwa hapa, sawa?
>> Wazo ni kwamba wao ni kuokolewa katika maeneo mbalimbali katika kumbukumbu
hivyo kwamba, wakati wewe ni kupata mbalimbali kazi, nini unafikiri kinachotokea
si kweli yanatokea kwa sababu bits kumbukumbu si yanahusiana.
Na hivyo swali kwamba ni kweli muhimu kwetu aina ya kuelewa
ni, nini kama, wakati sisi ni mbio Mpango, ukubwa wa kazi
stack frame-- hivyo kimwili, jinsi kumbukumbu kiasi gani tuna kuwapa?
Labda ni kazi kubwa hivyo sisi na kuwapa kumbukumbu kwamba mengi.
Lakini kama ilivyokuwa ndogo tunatarajia haja ndogo kidogo.
>> Hivyo wazo ni kwamba wakati sisi ni mbio Mpango ukubwa wa kazi ambayo
unategemea jinsi wengi vigezo na aina ya vigezo
kwamba tunataka kuwapa.
Lakini nini kama idadi ya variables-- na ukubwa wao,
hiyo niliamua na wewe encoder lakini
imedhamiria kwa halisi mtumiaji wa programu yako.
Hivyo kama mimi alitaka kujenga kazi kwamba alichukua masharti kutoka kwa mtumiaji,
lakini mimi si kweli kujua jinsi kubwa masharti hayo ni, ni vigumu kwa mimi
kwa allot maalum kiasi cha kumbukumbu inahitajika.
Sawa?
>> Kwa sababu kama hii function-- kama mtumiaji huyu pembejeo kamba kubwa,
itakuja kujenga makosa ya kile kinachoitwa kimsingi
stack kufurika ambapo kwenda zaidi mipaka ya kumbukumbu kwamba wewe.
Na hivyo basi tunafanya nini?
Kama hatuwezi tu kujenga kubwa hii stack ambayo inaweza kuokoa kila kitu,
tunafanya nini ili kutatua tatizo hilo?
>> Hivyo sisi ni kwenda kuendelea na majadiliano kuhusu aina hii ya pili ya kumbukumbu
na kisha tunaweza kuongea kuhusu jinsi tunaweza kutumia pamoja mawili
kutatua swali hilo.
Hivyo sasa tunakwenda hoja juu kwa sehemu mbalimbali za kumbukumbu
katika kompyuta yetu.
Hiyo inaitwa lundo.
Hivyo chungu yote ni bwawa ya inapatikana kumbukumbu kwamba
inaweza kuwa zilizotengwa dynamically.
Hivyo kwamba anaweza kubadilisha wakati mpango wako ni mbio.
>> Na hivyo mkoa wa outnyttjade kumbukumbu ambayo inaweza
kuwa allowed-- ambayo inaweza kuwa kura na kazi
aitwaye malloc, au mgao kumbukumbu.
Hivyo, kimsingi, wakati wewe ni mbio mpango,
unaweza dynamically kuunda kumbukumbu kutoka lundo na kutumia yote chini hapa.
Na hivyo basi, yote ya kazi yako hapa unaweza kupata lundo.
>> Na hivyo malloc, wazo hili ambalo Daudi aina ya haraka, kwa ufupi glossed juu
katika hotuba, ni njia tu kwa kudhibiti kumbukumbu yako.
Kama, wakati wewe ni kujenga tu stack kazi, wakati uko tu
kuwa kazi yako kuu na kazi yako bila mpangilio,
unafikiri wao kama watoto kwamba tu walikimbia wakati yalifanyika pamoja nao.
Walikuwa watoto ni mbaya.
Wewe kujenga yao, kuwafundisha jambo fulani,
na kisha wakati unataka kuzipata tena wao uko
si pale kwa sababu yako kumbukumbu tu walikimbia.
>> Lakini malloc, au chungu, ni njia ya kuwa na watoto bora, ambapo
unaweza aina ya kuunda nao, hawawajui yao maadili,
kutumia them-- aliyepiga kweli bad-- kuzitumia hata hivyo alitaka,
lakini kisha kuwa na uwezo wa kudhibiti yao na kisha bure juu ya kumbukumbu
wakati wowote unahitaji yao.
Hivyo basi, wakati wewe ni kosa na yako kazi, watoto kuja nyuma yenu
na bado una data kwamba kuna.
>> Hivyo njia kwamba sisi malloc, au kuunda, kumbukumbu ni kwa kazi batili nyota
malloc ukubwa katika ka.
Hivyo hiyo ni mfano kwa nini sisi kufanya hivyo.
Hivyo mfano ni sisi kujenga pointer ya aina int int nyota pointer sawa
malloc ukubwa wa int.
Hivyo sababu tunafanya ukubwa ya na si tu number--
kwa sababu sisi wote tunajua kwamba int ni ka nne,
right-- lakini int ni nne tu ka juu ya mifumo ya uendeshaji fulani.
>> Wazo kwa ajili yetu kama programmers ni kwamba sisi
unataka kujenga kificho kwamba wanaweza kukimbia kwenye kompyuta wote, siyo tu
rahisi wetu kompyuta.
Na hivyo ndiyo sababu sisi kama kutumia ukubwa wa na si tu namba nne.
Je, hiyo mantiki kwa kila mtu?
Hivyo ukubwa of-- yote ni C kazi au alama kwamba
anaelezea jinsi wengi ka ya kumbukumbu gani aina fulani ya kutofautiana kuchukua.
Hivyo katika kesi hii, ukubwa wa int ni nne.
Nne ka.
Na malloc ni kwenda bure up ka nne katika chungu yako,
basi unaweza kisha kutumia katika kuu yako kazi na kuwa na uwezo wa kuhifadhi kumbukumbu.
Ni kila mtu wazi juu ya kwamba hadi sasa?
Yeah?
>> Watazamaji: mimi nina wazi lakini tu kuwa juu ya clear--
ANDI PENG: Sawa.
Kabisa faini.
Watazamaji: --size ya ni [inaudible] Unaweza kweli [inaudible]
na itakuwa kweli kufanya jambo ambalo sisi unataka kwa.
Siyo baadhi pseudocode.
>> ANDI PENG: Hapana
>> Watazamaji: Ni kama thing-- halisi
>> ANDI PENG: Hii ni kanuni ya kweli.
>> Watazamaji: --we anaweza kuitumia.
Ni halisi.
Baridi.
ANDI PENG: Michezo ya kuja na C.
Watazamaji: Kwamba inafanya maisha yangu furaha.
ANDI PENG: Naam.
Hivyo kama wewe ni programu wavivu kama mimi aina ya niko wakati mwingine,
Mimi si kama kukariri nini ukubwa wa int
yaani, sipendi kukumbuka na ukubwa wa kuelea ni.
Ukubwa wa tu anakwambia nini ni na hiyo ni rahisi sana.
>> Sawa.
Kwa hiyo, jambo muhimu kwamba nyie wote wanataka
kukumbuka wakati uko kutumia malloc ni kwamba daima
kuwa na kuangalia kuona kama ni null.
Hivyo kama nilivyosema, nyuma ya kwamba picha ya lundo.
Lundo ni kubwa hii mkusanyiko wa kumbukumbu kwamba nimepata.
Na unataka kuwa na uwezo wa kuchukua bonge ya kumbukumbu kutoka humo na matumizi yake, sawa?
>> Lakini nini kama wewe huna kumbukumbu zaidi katika kuwa chungu?
Nini kama nimekuwa tayari kutumika zote yake na mimi kujaribu malloc zaidi?
Hiyo haipo.
Naam, hiyo ni kwa nini uko kwenda kupata kosa.
Wewe ni kwenda kosa seg. Wewe ni kwenda kuwa na segmentation kosa ambapo
kujaribu kupata mambo ambayo si huko.
Na hivyo njia ya sisi kufanya kuwa na njia hiyo sisi
kuzuia kwamba ni kwamba sisi kuangalia ili kuona kama pointer ya null.
>> Hivyo kama ningekuwa malloc kitu na nilikuwa kumbukumbu tena,
ambayo ingeweza magazeti makosa kwa sababu pointer akarudi wewe ni tu null.
Na hivyo njia ya sisi kufanya Haya hii ni mpango mkubwa,
tu kukariri Haya ni kwamba yoyote wakati wewe kujaribu malloc chochote,
wewe ni kwenda haja ya kuangalia kuona kama ni null.
Kwa sababu wakati wowote kujaribu kupata kumbukumbu kutoka lundo,
daima kuwa kwa kufanya kuhakikisha kwamba una kumbukumbu.
Hayo ni yote ni.
>> Hivyo pretty much wale watatu mstari wa kanuni, kukariri.
Kila wakati malloc, plop yao katika.
Wewe ni kwenda haja yao.
Kwa sababu Mimi kuhakikisha, tunakwenda mtihani wewe juu ya kesi na kompyuta yako
ni kwenda kulipuka kwa sababu wewe ni kwenda kujaribu kupata kumbukumbu hiyo ni
si pale na mambo ni kwenda ajali na si kwenda kuwa nzuri.
Hivyo tu kuchimba kwamba ndani ya ubongo wako.
Malloc, null.
Nzuri.
Sawa.
>> Basi hii unasababisha Suala la nini kinatokea
baada ya sisi ni kosa kutumia kwamba kumbukumbu.
Kwa sababu wazo zima ya kuwa na malloc ilikuwa
kwamba tuna rundo hili kwamba tunaweza kuchukua kumbukumbu kutoka na kisha tunaweza kuitumia.
Sawa?
Na kisha nini tuna kukumbuka ni kwamba, baada ya sisi ni kosa na hilo,
sisi kisha unaweza bure hilo.
Basi ni kwenda.
Tunaweza basi ni kwenda.
Au mwingine ni pia kwenda kuvuja kumbukumbu na mambo zaidi mbaya kutokea.
>> Kimsingi, wakati wowote wewe ni kugusa kumbukumbu,
mambo mabaya kitatokea kama wewe hawafanyi mambo kwa usahihi.
Hivyo kuwa na kuangalia kuona, kwanza, kama una kumbukumbu za kutosha.
Na kisha baada ya wewe ni kosa, unataka bure ni na kuruhusu mfumo wa uendeshaji wako
kuchukua nyuma.
Hivyo njia sisi kufanya hivyo ni tu kwamba kazi, utupu bure, na pointer
kwa kuwa chungu ya kumbukumbu.
>> Hivyo mfano ni bure pointer.
Ni rahisi, rahisi, hawataki kusahau hayo.
Hivyo kuangalia kuona kama ni null, bure.
Kila mtu mwema?
Hivyo mara nyingine tena, kanuni na kwamba nyie Unaweza aina ya haraka kuchukua mtazamo saa.
Najua ni mengi ya syntax mpya na ni sawa kama wewe ni kama, ah,
hiyo ina maana gani tena?
Hakuna wasiwasi.
Haya yote ilikuwa na maana kuwa ni kuonyesha hatua, jinsi mambo yote haya
inaweza kutumika kwa pamoja.
Hivyo kwamba ni kuweka pamoja kama kundi la zamani
slides sisi tu akaenda kupitia katika programu moja.
Watazamaji: Kwa njia tuweze actually--
ANDI PENG: Kwa njia hiyo tunaweza kweli matumizi.
Unaweza plop kwamba katika ID yako, unaweza kukimbia na ingekuwa kazi.
Watazamaji: Sawa.
Hivyo hiyo ni kweli?
>> ANDI PENG: Hiyo ni kweli.
Naam.
Mimi kujaribu kufanya hivyo hivyo fonts ni tofauti hivyo
kwamba wakati wowote mimi aina halisi kificho herufi ni herufi kificho
na kwamba kumbuka kificho wangu ni tofauti, lakini Sijui kama kwamba kweli kazi.
Watazamaji: Hapana
Nadhani that--
>> ANDI PENG: Sawa.
>> Watazamaji: --sometimes [Inaudible] na mimi nina
kama, kwamba itakuwa kweli cute kama ilikuwa kweli jambo zinatumiwa
lakini basi si jambo inatumika.
Mimi kama kwamba hili ni jambo la inatumika.
>> ANDI PENG: Sawa.
Naam.
Mimi itabidi kupita kwamba pamoja.
Kuwa kama Daudi, watoto ni kweli huzuni wakati wewe kuandika kanuni bandia.
Sawa.
Yeah?
>> Watazamaji: Hivyo PTR hapa ni kweli si pointer,
ni kuzuia wa kumbukumbu?
>> ANDI PENG: Kwa hiyo wewe kuzungumza juu mstari wa kwanza au moja chini hapa?
Je, wewe ni kuzungumza juu ya hii moja hapa?
>> Watazamaji: PTR ni mambo mbalimbali in--
>> ANDI PENG: Naam, hivyo hapa nini mimi doing-- kweli,
hebu tu kwenda kwa njia ya hapa.
Aina hii ya mahusiano katika vizuri wote wa dhana.
Hivyo hapa tuna int nyota PTR.
Hivyo int pointer, hapo ndipo sisi ni kweli kujenga
pointer kwamba pointi kwa integer.
Vizuri, ni kwenda kwa uhakika na integer.
Na tunakwenda malloc, au kuwapa, kumbukumbu ya kutosha kura
kuhifadhi integer.
Hivyo ka nne katika kesi hii.
>> Na kisha kama kuwa sawa sawa NULL sawa NULL tunakwenda magazeti.
Oh, una makosa kwa sababu uko nje ya kumbukumbu, sawa?
Vinginevyo moja kurudi, kwamba tu anasema mpango wako
kwamba nimepata kosa.
Na kisha kama huna na kwamba kumbukumbu, ni
kwenda kuhifadhi chochote kupata int anatoa katika eneo
na kuweka kama thamani ya pointer.
Hivyo ni kweli kwenda kimwili kufuta thamani huu
na kuweka chochote kupata faida int.
Na kisha utaenda magazeti chochote aliingia.
>> Watazamaji: Na hiyo ndiyo kwenda kuwa katika chungu?
>> ANDI PENG: Hiyo inaenda kuwa katika chungu.
>> Watazamaji: Na ili itakuwa kupatikana.
ANDI PENG: Hasa.
Nzuri.
>> Watazamaji: Hivyo wakati sisi bure PTR katika hii Hatua ya mwisho, sisi ni kumkomboa pointer
au tuko kumkomboa kuzuia?
ANDI PENG: Naam.
Hivyo sisi ni kumkomboa pointer vizuri, kumkomboa block ya kumbukumbu.
Hivyo njia pekee tunaweza hata kupata kumbukumbu ni kwa kuwa pointer.
Kama huna pointer, uko kama, loo, sijui ni wapi,
sawa?
Hivyo kama wewe ni bure, wewe ni kimsingi kumkomboa kuzuia kwamba nzima.
Kisha kompyuta yako anajua, loo, kuna kitu zinatumiwa hapa,
Naweza tu kuweka takataka maadili nyuma ndani yake tena.
>> Watazamaji: Hivyo integers kufanya kuwepo katika suala hilo?
>> ANDI PENG: Je, integers zipo?
Pole.
Je, unaweza rephrase swali lako?
Watazamaji: Mimi maana, baada ya wewe bure pointer, integer kwamba kupata,
kwamba bado zipo?
>> ANDI PENG: Hapana, haiwezekani.
Au angalau kutakuwa na zipo katika yako kumbukumbu kabla kompyuta yako anafanya
chochote kwa hayo, lakini kuna hakuna njia kwa ajili ya kupata hiyo.
Kwa sababu wewe huru pointer.
Huwezi kujua ambapo ni tena.
Naam.
>> Mimi nina kwenda kuendelea na hapa.
Phew.
Hivyo sisi ni kupitia kura ya dhana matatizo ya usimamizi wa kumbukumbu
na tunakwenda tu kimsingi kutumia
5, dakika 10 kwenda zaidi ya syntax mambo ambayo
itakuwa inatumika na manufaa kwa nyie, lakini kitu pia conceptually huko nje.
SAWA.
>> Hivyo sisi ni kabisa kubadilisha gia hapa.
Kumbukumbu usimamizi, vigumu. Kuyatumia, magumu. Ndiyo.
Ni kweli, ngumu kweli kweli.
Kabisa faini.
Hiyo ni kwa nini kipande yako ni kwenda kuwa ngumu kweli kweli.
Lakini kama wewe kwenda na kufanya mambo ambayo tuko
wanatakiwa kufanya, kufanya mambo hakika ni null,
kuhakikisha kuangalia kama mambo ni null, kuhakikisha bure kumbukumbu,
kufanya mambo uhakika si kuvuja, wewe utakuwa na nzuri.
Utakuwa kuweka.
Sawa.
Hivyo sisi ni kwenda kuhamia katika hii dhana mpya kabisa ya redirection.
Na hivyo kabla ya sasa, njia kuu kwamba tumekuwa
wamekuwa mazungumzo na yetu mipango ni kupitia pembejeo kiwango
na pato standard.
Sawa?
Sisi kama pembejeo mtumiaji mambo na kompyuta
mtemi ni nyuma na sisi katika wastaafu.
>> Lakini kuna wengine njia kwa sisi kuingiliana
na kompyuta na yetu mipango ambayo si mimi tu
mambo kimwili kuandika katika wakati mimi nina ilisababisha.
Na njia ya sisi kufanya hivyo ni kupitia mkubwa kuliko karoti
na bomba alama.
Ili tuweze pia kusoma na kuandika kwa files kutumia hiyo.
>> Hivyo njia kwamba sisi kufanya hivyo ni mkubwa kuliko karoti, wote ni kufanya
anaandika chochote yako faili ana faili tofauti.
Hivyo kwa mfano, kama mimi alitaka kukimbia hujambo dunia
na nilitaka pato kwa kuokolewa katika faili mwingine
na si tu kuchapishwa na mimi, mimi Unaweza tu kufanya kubwa zaidi kuliko karoti,
output.txt.
Hivyo yote anafanya ni kuchukua hello.world mpango wangu,
na chochote pato ni, ni kuokoa katika faili inayoitwa output.txt.
Hivyo njia kwamba Daudi alifanya .csv na majina ya wanafunzi,
ni sawa kwamba nyie wanaweza kufanya.
>> Na nini hasa muhimu hapa ni mkubwa
than-- mbili kubwa kuliko karoti ishara ambayo unaweza append kwa pato
file, ambayo ina maana kwamba unaweza tu kuongeza juu yake.
Unaweza tu kuendelea kuongeza kwa output.txt wa kila kitu ziada
kwamba unafanya.
Au, kama kuanza kuingia katika zaidi mipango ngumu, mbili zaidi
kuliko karoti, kwamba tu prints nje ujumbe wa makosa.
Hivyo kusema kuwa kampuni kubwa Kiasi cha ujumbe wa makosa
na unataka kusoma kupitia wote na wewe
hawataki kuwa na kitabu kupitia terminal yako,
unaweza kweli tu kufanya mkubwa kuliko output.txt
na ni kwenda kuokoa wote wa makosa yako
katika faili inayoitwa output.txt kwamba unaweza kwenda kupitia na kusoma.
Watazamaji: wapi faili maandishi kuokolewa?
ANDI PENG: Ni kuokolewa katika moja directory kwamba mpango wako ni.
Hivyo wewe tu kwenda nyuma na kuangalia kwa ajili yake.
Na kitu kimoja sisi anaweza kufanya kwa ajili ya pembejeo ni
tuweze kweli kuchukua yaliyomo ya baadhi ya faili
na tunaweza pembejeo kwamba katika mpango wetu.
Hivyo badala ya kuwa na kufanya amri hoja mstari wa wapi kimwili
kuwa na aina ya mambo kila wakati, wewe
unaweza kweli tu na faili inayoitwa input.txt kwamba tu kuiweka wote katika.
>> Na kisha bomba ni hasa kwa sababu ya baridi inaweza kuchukua pato la mpango moja
na kuitumia kama pembejeo ya mpango mwingine.
Hivyo kwa mfano, katika guys wako Vigenere, kuna mstari wa kanuni kwamba
guys ni mbio kwamba labda labda si kweli kujua nini ilikuwa doing--
hii ./generate 1000 bomba ./42.
Sawa?
>> Hivyo yote anafanya, kama sisi tu tuangalie hatua kwa hatua,
./generate, hiyo ina maana mimi nina kuendesha programu yangu kuzalisha.
Hiyo ni kuchukua katika 1000 katika mchango wake.
Hivyo nataka kuzalisha 1,000 random idadi na mimi nina kwenda kwa bomba that--
au mimi nina kwenda kutumia pato that-- kama pembejeo kwa mpango wangu aitwaye kupata.
Na mimi nina kwenda kujaribu kupata 42 nje ya idadi yanayotokana na wale 1,000
namba.
Je, kuwa mstari wa kanuni hufanya maana kila mtu mwingine?
>> Hivyo kwa njia hii sisi ni kuokoa sisi wenyewe tani ya hatua.
Hatuna kuendesha kuzalisha, ila faili na kisha kuiweka katika kupata.
Tunaweza tu kufanya hivyo wote katika mstari mmoja.
Kwa hiyo chochote kuzalisha ni outputting, plop ni haki ya nyuma katika kupata.
Yeah?
>> Watazamaji: Na katika suala la amri hoja mstari, ni that-- hiyo ni
tatu hoja mstari amri?
Ni kuzalisha, find-- hapana, four-- kuzalisha, 1000, kutafuta na 42?
Au ni the--
ANDI PENG: Kwa hiyo bomba kweli haina kuhesabu kama hoja mstari amri
kwa sababu compiler au wastaafu anajua kwamba filimbi,
loo, najua kwamba lazima kuangalia kabla bomba kwa sababu hiyo ni pato langu
na ni lazima kuwatunza bomba kwa sababu hiyo ni pembejeo yangu.
Hivyo anajua that-- ./generate na 1000,
wale ni wawili amri kisha hoja tu kwa ajili ya mpango wa kwanza.
Na kisha ./find 42 ni amri mbili hoja mstari kwa ajili ya mpango wa pili.
Naam.
Kila mtu mzuri juu ya hili?
>> Hivyo tu halisi haraka, je, mistari hii mitatu ya maadili ya nini?
Haki rahisi.
Mtu yeyote wanataka kuniambia nini mstari wa kwanza anafanya?
Watazamaji: [inaudible].
>> ANDI PENG: Fikiria kama just-- nini zaidi kuliko karoti kufanya?
>> Watazamaji: Ni unaweka kitu ndani ya mstari wa pili.
ANDI PENG: Kwa hiyo kile ni kinyume cha hayo?
Watazamaji: Ni unaweka ijayo Jambo katika jambo la kwanza.
ANDI PENG: Naam.
Hivyo yote anafanya ni uko kuendesha programu .hello--
wewe ni mbio mpango aitwaye hodi.
Wewe ni kwenda kuwapa pembejeo aitwaye input.txt.
Sawa?
Kwa sababu kufikiria kama tu kimwili kwenda katika hodi.
Na kisha wewe ni kwenda kuokoa pato katika faili inayoitwa output.txt.
Vipi kuhusu mstari wa pili?
Unataka kuniambia nini mstari wa pili gani?
Watazamaji: [inaudible].
ANDI PENG: Sorry.
Kusema kwamba tena.
Elliot.
>> Watazamaji: Hivyo unaweka orodha ya namba katika kupata.
>> ANDI PENG: Naam.
Hivyo kupata, kumbuka, katika Ili kuendesha kupata
haja ya kujua ambapo wewe ni kutafuta.
Na hivyo kila kitu ni kufanya hapa ni kwamba ni kuwapa ninyi
kabla kupewa seti ya idadi, kisha kupata ni kwenda
kutafuta wale kwa idadi ya 42.
Na kisha 15.
Kumbuka, nyie mbio huu wakati kupimwa kanuni yako.
Sasa je, kuelewa nini alikuwa akifanya?
>> Watazamaji: Ni kuweka katika seti ya maelekezo
kwa [inaudible] kwa njia ya tatu na tatu kupata the-- kushinda mchezo.
>> ANDI PENG: Naam.
>> Watazamaji: Ni pembejeo wale maelekezo katika mpango.
>> ANDI PENG: Pretty sana.
Hivyo CS50 tilde. / Pset3 / 3x3, wote alikuwa akifanya ni kwamba sisi aliumba asilia
faili kwamba walikuwa wote vyeo tayari kwa nyie.
Na hivyo kwa mchezo wako kucheza, wewe just-- sisi tu ya kuweka kwamba katika mpango wako.
Hivyo tulikuwa na umba hii ubao na kisha sisi ni
kuweka bodi kwamba katika mpango wako kwamba mbio ni na kuundwa tile ya tatu
na tatu.
Hayo ni yote kwamba alikuwa akifanya.
>> Na hivyo kulikuwa na kweli uchawi kinachoendelea nyuma ya pazia
kwamba nyie hakuwa Mpango kwamba sisi iliyowekwa.
Lakini sasa nyie kuelewa kwa nini sisi alifanya hivyo hivyo ni yote mema.
Sawa.
>> Hivyo wakati redirection ni sana muhimu, C ina utaratibu ujumla
kwa kusoma na kuandika mafaili ya peke yake.
Hakuna kitu conceptually ngumu hapa hivyo mimi nina
tu kwenda kupitia kweli, kweli haraka.
Wote ni baadhi ya kukariri na kuhakikisha nyie
ni syntactically kutumia kwa usahihi.
Njia ambayo tunatarajia kufanya hivyo ni kujenga kumbukumbu ya faili,
tunatarajia kufungua faili, na kisha sisi atafanya zote kusoma na kuandika
na kisha kufunga faili.
Wakati kitu nyie wanataka kukumbuka ni
kwamba wakati akifanya hivyo, kwa sababu sisi ni kufunga na kufungua faili,
amri zote za wale ni pamoja na katika standard-- kiwango I / O
maktaba.
Ili kuhakikisha wakati wowote uko kufanya hivyo kwa kuwa umefanya included--
# included-- kiwango I / O nukta h.
>> Hivyo halisi haraka.
Hatua moja, unataka kujenga kumbukumbu ya faili hilo.
Na sasa kwamba tumekuwa kuyatumia done, wewe guys unaweza kuniambia nini kuwa mstari wa kanuni
ni kufanya.
Sawa?
Yote ni kufanya ni kujenga pointer aitwaye faili la aina ya faili.
Kwa sababu unajua kwamba ni kwenda kwa uhakika na faili na uko
kwenda kufungua faili.
Basi uko f open-- zote haina ni kufungua faili.
>> Hii ni jina la faili.
Na kuna mambo matatu unaweza kufanya.
Unaweza kusoma, kuandika au append.
Wengi kwa ujumla, nyie Itakuwa kusoma au kuandika
kwa sababu wewe ni ama kwenda kuwa inputting faili au outputting moja.
R hivyo pretty much na w mambo mawili mambo wewe ni kwenda kuwa na kutumia zaidi.
>> Hivyo katika kesi hii, kila nafanya ni kujenga pointer faili inayoitwa faili.
Mimi kufungua na mimi nina reading-- mimi nina kufungua faili hii inaitwa file.txt
na mimi nina kusoma hiyo.
Hayo ni yote mimi nina kufanya katika hatua hii.
Na kisha hizi ni baadhi tu ya kazi zake katika ambayo unaweza kusoma mambo mbalimbali
au kuandika mambo mbalimbali au kutofika kwa maeneo mbalimbali
ambapo unataka kuangalia.
Zote hizi ni online.
Yote haya unaweza tu Google.
Hakuna haja ya kukariri yao.
Wao ni tu pale, ziada kwa ajili ya matumizi yako
kama ungependa kuwa na uwezo wa kuzitumia.
>> Hivyo kama nilitaka kusoma tu katika tabia moja kwa wakati mmoja,
Napenda kufanya faili fgetc.
Au kama nilitaka kusoma katika mstari wa Nakala wakati huo, napenda kufanya fgets.
Na kadhalika na kadhalika.
Yote haya tu kufanya tofauti mambo nyie unaweza kutumia.
>> Na kisha mwisho, baada ya mimi nina kosa kusoma au kuandika,
Mimi tu kwenda kwa fclose faili hilo.
Na kumbuka, hii ni moja ya wale, kumbuka, tafadhali
kufanya hivyo au mwingine faili yako si kwenda kufanya kazi.
Daima kufungua faili kabla kusoma au kusoma,
una daima kulifunga kama wewe kuufungua.
Same kitu na kumbukumbu, sawa?
Una daima kuchukua kumbukumbu na bure yake.
Hapa una daima kufungua faili kabla ya kujaribu kusoma
na wewe daima kuwa na kulifunga baada kuufungua.
>> Hivyo hii ni pia online.
Mimi nina kwenda changamoto nyie aina ya kuandika mpango kwamba Prints
hello.world na faili.
Ni kweli ni rahisi.
Ni kimsingi inahusisha tu mistari michache ya kificho
kwamba walikuwa tu imeandikwa hapo awali.
Wewe ni kwenda kuziweka pamoja na kuandika kwamba.
>> Hivyo baadhi ya mambo muhimu kukumbuka wakati nyie ni kujaribu kutumia hii.
Kama hii yote ni muhimu sana kwa pset yako wiki hii,
ni kwamba fopen inajenga faili pointer.
Siyo kweli ya faili kimwili.
Wote ni akizungumzia faili unataka kufungua.
Na wewe ni kimsingi, wakati wowote unatumia yoyote ya kazi nyingine
kama fread au fwrite au fgetc au fgets, ni
kwamba wewe ni kupita tu kuzunguka huu pointer kwa wote wa kazi hizo.
Hivyo wewe si kweli kuchukua kwamba faili na kutumia kwa ajili ya kazi yako,
wewe ni kuchukua tu pointer na kuweka kwa kazi hizo
ili uweze kutumia.
>> Na kama wewe kusahau kwa karibu faili yako baada ya matumizi yake,
Mpango wako ni kwenda kuvuja kumbukumbu.
Kimsingi, njia kwamba wote ni kwamba mambo mabaya yatatokea
na mpango wako mapenzi si kazi ipasavyo.
Na kadhalika pset katika mwanzo, nadhani
kuna short ambako explained-- Nate explained-- nini Valgrind alikuwa.
Wote Valgrind ni njia kwa ajili ya wewe kuhakikisha wewe si kuvuja kumbukumbu.
Hivyo nyie wanataka kufanya kuhakikisha kuangalia kwamba fupi
kwa sababu kwamba anaelezea ni vizuri nini kinatokea.
SAWA.
Basi, mimi nikaenda kupitia kwamba kweli, kweli haraka kwa sababu mimi kwa kweli
wanataka kupata kuzungumza juu pset kabla nyie kuondoka.
Je, mtu yeyote una maswali conceptually?
Wengi wao wakiwa yote haya ni syntax tu kwamba unaweza kutumia kusoma wala kuandika mafaili.
>> Hatimaye, favorite ya kila mtu.
Tunakwenda kuzungumzia pset sasa.
Hivyo, show ya mikono, ni wangapi kati nyie kusoma spec wiki hii?
Oh, hiyo ni nusu.
Hiyo ni nzuri.
Hivyo hii ni kweli kweli, kweli na furaha pset kwa maana ya
kwamba wewe kujisikia kama upelelezi kwa sababu wewe ni
kufanya haya mambo ya kweli ya baridi zote kuwa sikujua kwamba unaweza kufanya
lakini sasa ni kweli baridi ambayo unaweza kufanya nao.
Na ni kweli mengi rahisi kuliko nyie kufikiri.
>> Hivyo nusu ya msingi ya mpango huu ni uko
kwenda kushusha chanzo kanuni au usambazaji sheria iliyoandikwa na sisi.
Na wewe ni kwenda na folder moja aitwaye BMP na folder mwingine
aitwaye JPG.
Ndani ya BMP yako, wewe ni kwenda na mipango ya tatu.
Mmoja wao ni tayari imeandikwa kwa ajili yenu.
Hivyo copy.c ni mpango tumekuwa tayari imeandikwa
kwa kuwa wewe ni kwenda kupakua.
Wote kwamba hana ni kuchukua kama pembejeo picha na hufanya nakala yake kama pato.
Hiyo ni faili kwamba wote ni kufanya.
>> Lakini nini unataka kufanya kwa whodunit-- hivyo jinsi wengi wenu
guys kumbuka katika darasa la tano au maybe-- wewe ni younger-- daraja labda tatu,
wakati nyie alikuwa ujumbe siri na alikuwa na kuweka kipande cha karatasi juu yake
kusimbua ujumbe?
Yeah?
Hivyo kwamba wote sisi ni kufanya isipokuwa wakati huu kwa kompyuta.
Hivyo tumekuwa kupeni picha hii nzuri.
Haina kuangalia kama chochote lakini chini
ni fununu kwamba itakuja kusaidia kwa kujibu swali tunakuomba.
>> Kimsingi nini unataka kufanya ni pembejeo kwamba faili,
tweak baadhi ya mambo kote, labda kurekebisha rangi,
kuhama mambo, ili lo lote Ujumbe ni wanaweza kuja kwa njia ya.
Hivyo ndani ya huko ni siri saizi na taarifa
kwamba kama wewe kuandika kanuni yako kwa usahihi kinaenda Decode na kukuambia
nini fununu hii ni.
Na baadhi hivyo mwanga msaada wa jinsi d kwenda juu inakaribia hii.
>> Kweli unataka familiarize mwenyewe na faili I / O
kwa sababu sisi ni kusoma kutoka mafaili na kuandika kwa files.
Sawa?
Na hivyo wakati sisi kufanya kwamba, ambayo inahusisha
faili I / O. Wewe ni kwenda na familiarize mwenyewe
pamoja, jinsi gani unaweza kufungua files picha?
Jinsi gani unaweza kuandika kwa files kama picha?
Jinsi gani unaweza kufanya mambo yote hayo?
Hiyo inaenda kuwa na manufaa kwa kweli.
>> Pili, una hali gani kwenda kuwa na uwezo wa kubadilisha
rangi ya kwamba wazi juu ya picha hii?
Ni pengine kwenda kuhusisha kurekebisha saizi yako au maadili yako RGB
mahali fulani huko, kimsingi.
Hakuna njia ya haki kutatua hii kwa muda mrefu kama wewe
can-- kama muda mrefu kama unaweza aina ya kurekebisha saizi wale ili iwe
kuangalia kama kitu ambacho unaowajali.
Hayo ni yote sisi huduma ya juu pia.
Hivyo kuna njia nyingi za kufanya hivyo.
Tu kucheza karibu na hayo mpaka kupata kitu ambacho kazi.
Na wewe itakuwa kweli kushangaa mistari michache ya kificho jinsi
unahitaji kwa kweli kufanya hili.
Mimi kuzungumza kama tatu mstari wa kanuni jumla
kwamba unahitaji kuandika ili kufanya hivyo.
Hivyo kama wewe mwenyewe kupata kuandika 40, mistari 30 ya kificho,
pengine wewe kufanya hivyo vibaya.
Wote una kufanya ni aina ya kucheza karibu na rangi
na kuona ni jinsi kwamba kazi nje.
>> Hivyo basi sisi kichwa katika kidogo kwa bidii ya tatizo.
Hapa tuna resize ambapo sisi ni kuuliza wewe
to-- sisi ni kutoa kama mchango picha na resizing yako
picha hii katika kitu kubwa au kitu kidogo
kutegemea vipimo sisi kukupa.
Basi kumbuka katika hotuba Daudi haraka
akapiga juu jinsi habari ni wanaona na kompyuta yako
kwa maana ni aina ya faili.
Hivyo faili Neno ina maalum wahusika mbele ya kwamba
kuwaambia kompyuta yako ni faili Neno.
Same kitu na JPEG.
Katika kesi hiyo tunakwenda kukupa JPEG faili.
Tunachojua ni kwamba JPEG faili ni picha, sawa?
Lakini tofauti kati ya kompyuta hivyo kwa njia maalum sana.
Hivyo mwanzoni mwa faili yoyote JPEG, uko
kwenda na kile kinachoitwa bitmap Maelezo kichwa na bitmap faili header.
Wote wale ni watu vipande mbalimbali ya data
kwamba kuwaambia kompyuta yako, hey, kusikiliza up, JPEGs kuja juu
na hizi ni vipimo au tabia ya kuwa JPEG.
>> Hivyo nyie kweli unataka kujua nini habari ni kuhifadhiwa ndani ya
ya vichwa vya wale na kile ni kawaida miongoni mwao.
Kwa sababu wakati wewe ni mbio kupitia mpango wako,
wewe ni kwenda kutaka ruka juu ya kiwango hicho.
Sawa?
Kwa sababu huna huduma kuhusu kubadilisha kichwa,
unaowajali kubadilisha nini baada.
Sawa?
Ili kuhakikisha guys kujua jinsi kubwa mambo hayo ni.
>> Pili, kabla ya kuanza kujaribu resize picha yako,
pengine wewe kwenda kutaka kuokoa vipimo ya awali.
Sawa?
Kwa sababu kama mimi nawaambia picha hii ni 100 saizi na 100, saizi
na mimi nataka kufanya ni mara nne kubwa,
unajua kwamba una kuzidisha vipimo wale na watu wanne.
Hivyo basi unataka pato faili 400 na 400 saizi, kwa mfano.
Hivyo ni muhimu kweli kweli kwa nyie kwa kuokoa vipimo ya awali.
Na kisha baada ya hapo, baada ya wewe ni kosa resizing,
unaweza kuandika vichwa vya mpya na vipimo wale mpya baada ya resizing.
>> Na kwa njia hiyo wewe kimwili Unaweza kuunda katika saizi kubwa
ni kwamba unaweza kuandika mpya RGB-- kumbuka, RGB,
yote anasimama kwa ni nyekundu, kijani, na saizi blue-- na faili nje.
Na wewe ni kwenda kutaka na kiasi tofauti ya yale
tunatoa wito padding.
Padding ipo zote ni nafasi kabla na baada ya picha
kwamba kuwaambia your-- kimsingi kwamba kuwaambia picha yako jinsi kubwa ni
lazima kuwa na kuchukua up.
Hii ni abstract sana kwa mengi ya wewe kama wewe si kusoma spec pset,
lakini itakuja kuwa muhimu sana kwa wakati
wewe ni kweli kusoma kwa njia hiyo.
Wewe ni kama, loo, yeah, kwamba inafanya hisia.
Kwa nini mimi kufanya hili?
Hufanya akili.
>> Mwisho, hii pengine ni moja ya programu nyingi frustrating
milele kwa sababu tu huwezi kuwaambia kama ni kazi au la.
Mpango huu wote, kupona, ni kufanya ni kwamba, kama kuendesha vizuri,
ni lazima kuwa na uwezo wa ghafla kuokoa 50 picha kwamba
walikuwa wamepoteza kwenye gari kwa bidii.
Na hivyo tatizo na mpango huu ni kwamba unaweza si kweli mtihani
kwa sababu ama wewe zinalipwa nao au wewe hakufanya hivyo.
Na hivyo aina ya tu una kucheza karibu na hayo,
na kama mpango wako ni kazi vizuri, itabidi
ghafla kuona kwamba katika saraka yako wameweza
got kiasi kubwa ya picha kwamba ni sasa huko.
>> Hivyo ni jinsi gani mbinu mimi tatizo hili ni, tuko
kwenda kukupa nini aitwaye faili card.raw.
Kimsingi, hiyo ni tu faili kupotoshwa
kwa picha zote kuhifadhiwa kwamba wewe ni kwenda haja ya kupona kutokana na.
Hivyo pengine wewe kwenda kutaka pembejeo card.raw yako, au wazi,
card.raw faili yako na wewe ni atataka kuendesha
kuwa ni uwezo wa kuhifadhi JPEGs.
>> Hivyo napenda kuanza kwa kufuatilia na kuhifadhi kila JPEG mtu binafsi kama wewe kupata hiyo.
Wewe si kwenda kwa mtu mmoja mmoja yote Kwa ghafla tu kujenga JPEGs yote 50.
Wewe ni kwenda unataka kuweka wimbo wa jinsi wengi wewe ni kufungua.
Na kisha unataka kuhakikisha, wakati uko
kuandika buffer-- nyie kujua nini mimi kuzungumza juu
mara moja kusoma spec-- unataka kuhakikisha kwamba unatumia unsigned
char buffer.
>> Na kisha unataka kuuliza mwenyewe swali la,
jinsi wengi ka ni katika CF-- ni katika kadi faili?
Hiyo ni wangapi wewe ni kwenda unataka kusoma katika buffer yako.
Wewe ni kwenda unataka kuhakikisha align mbili kwa sababu basi
Huwezi kuwa random kumbukumbu kuvuja nje.
Kujua hasa ni wangapi ka unahitaji na jinsi wengi
ka kwamba unataka yao kuwa nayo.
>> Na kisha hatimaye, unataka kutumia kazi kuitwa sprint--
s magazeti f-- kuzalisha faili desturi majina kwa kila JPEG mpya kwamba kupata.
Hivyo kama wewe kujenga na kupata JPEGs katika kadi yako,
wewe ni kwenda kutaka kuhifadhi yao na jina yao.
Sawa?
Na hivyo wewe ni kwenda wanataka kutumia kazi ambayo
kujenga majina wanaweza kuhifadhi wote wa JPEGs yako.
>> Na mwisho, usisahau karibu kila JPEG baada ya wewe ni kosa.
Kwa sababu gani uko kwenda kufanya ni uko
kwenda pengine aina fulani ya kitanzi kwamba
iterates kwa njia zote za JPEGs yako.
Wewe ni kwenda kuandika JPEG na kubadili jina hilo kama wewe kupata hiyo.
Lakini baada ya wewe ni kosa kwa kila JPEG moja,
unahitaji kuifunga hivyo unaweza kuanza zaidi na hoja juu ya picha ya pili.
Na hivyo kitu ambacho ni kweli na furaha kwamba sisi kama kwa kufanya,
kwa sababu hili ni tatizo weird kama kuweka lakini pia tatizo weirdly kuridhisha
kuweka, ni kwamba wote wa picha sisi na kwa wewe, kama wewe kupona vizuri,
picha zote ni picha za wafanyakazi wako ajabu kufundisha, wote
ya Harvard, katika here-- na hapa katika Yale.
Na kama kutokea kwa kuokoa picha zote hizi
na kubaini wafanyakazi wanachama katika kadi hizo,
na kuchukua selfies na sisi kama unakuta sisi karibu chuo,
kwa kila picha wewe kuwasilisha kwetu, tutaweza kukupa gigabyte ya Dropbox nafasi.
>> Basi hebu kufanya hesabu hapa.
Kama kuna picha 50 na Wanachama 50 wafanyakazi wa kufundisha,
kama kutokea kwa kupata yote 50 ya sisi, hiyo ni 50 gigabytes ya Dropbox,
kimsingi, tutaweza kuwa na kutoa nyie.
Hivyo baadhi motisha ya ziada aliongeza kama wewe guys alifanya si tu
huduma ya juu ya kurejesha waliopotea picha.
Kuna pia baadhi motisha aliongeza.
Ni furaha tatizo seti.
Ni kweli ni.
Ni aina ya frustrating lakini basi inakuwa kweli na furaha wakati wewe kutambua,
wow, ni kazi na sasa mimi na wote wa picha hizi
kwamba nimekuwa tu kuundwa kwa mwenyewe.
>> Maswali yoyote juu ya pset?
Kwa mtu yeyote ambaye tayari kuanza, kama una maswali,
Nitakuwa hapa kwa dakika kadhaa baada ya sehemu kama unataka kuzungumza na mimi.
Vizuri, nyie.
Samahani, mimi taarifa kutupwa katika guys wewe.
Kuyatumia ni kweli, kweli changamoto na frustrating.
>> Na mimi nina furaha kweli kwamba nyie kukaa na mimi.
Tutaweza majadiliano zaidi katika kina kuhusu wiki ijayo
kama sisi kuanza kufanya meza hash na kazi zaidi ambazo zinahusisha yao.
Naam.
Hivyo kama mtu ana yoyote maswali, mimi itakuwa kote.
Shukrani kwa kuja na kuchukua zaidi pipi kwa sababu kuna pipi zaidi.
Baridi.