[Ag seinm ceoil] [VIDEO Archives] -He Tá atá suite. -About Cad é? -Níl a fhios agam. -Mar Sin cad a bhfuil a fhios againn? -Go Ag 09:15, Ray Bhí Santoya ag an ATM. -Yeah. Mar sin, tá an cheist, cad bhí á dhéanamh aige ag 09:16? -Shooting An 9 milliméadar ar rud éigin. B'fhéidir chonaic sé an sniper. Bhí -nó ag obair leis. -Wait. Téigh ar ais amháin. -Cad A fheiceann tú? -Bring A aghaidh suas scáileán iomlán. Spéaclaí -His. -Tá Tá léiriú. -Tá Sé Tá foireann baseball Nuevitas. Sin a n-lógó. -Agus Tá sé ag caint le whoever atá ag caitheamh go seaicéad. [END Archives] DAVID MALAN: Ceart go. Is é seo an CS50 agus tá sé seo le beagán níos de [inaudible] lena bhfuil tú dabbling le fadhb a leagtar ceithre. Sa lá atá inniu tús a chur orainn chun breathnú beagán níos mó go domhain ag na rudaí seo ar a dtugtar leideanna, a cé go bhfuil sé ábhar deas arcane, tharlaíonn sé go raibh sé ag dul a bheith ar na meáin trína linn a Is féidir tús a thógáil agus bhailigh Cláir bhfad níos sofaisticiúla. Ach rinne muid é ar Dé Céadaoin seo caite trí roinnt claymation ar dtús. Mar sin, seo, tá cuimhne, Binky agus a úsáid le linn dó a chur le breathnú ar chlár go ní raibh a dhéanamh i ndáiríre rud ar bith suimiúil, ach rinne sé nochtann roinnt fadhbanna. Mar sin, chun tús a lá atá inniu ann, cén fáth nach bhfuil muid ag siúl tapa trí roinnt de na céimeanna seo, iarracht a distill isteach téarmaí duine ar go díreach cad atá ar siúl anseo agus cén fáth go bhfuil sé seo olc, agus ansin bogadh ar aghaidh agus ar ndóigh, tús a thógáil rud éigin leis an teicníc? Mar sin, bhí na chéad dhá líne sa chlár seo agus i dtéarmaí layman, cad tá na dhá líne a dhéanamh? D'iarr duine éigin a tá réasún compordach le cad atá dearbhaithe ar an scáileán? Cad iad na dhá líne a dhéanamh? Níl sé go léir go difriúil ó sheachtain amháin, ach tá roinnt siombail speisialta nua. Yeah? Ar ais ann. LUCHT ÉISTEACHTA: threo Ag dearbhú? DAVID MALAN: Abair arís? LUCHT ÉISTEACHTA: threo Ag dearbhú? DAVID MALAN: threo Ag dearbhú agus a ligean ar bheachtú sé beagán beag níos mó. LUCHT ÉISTEACHTA: [inaudible] Seoladh x agus ansin y. DAVID MALAN: Agus ansin aghaidh a thabhairt. Mar sin, go sonrach cad tá ag éirí linn Tá tá muid ag dearbhú dhá athróg. Tá na hathróga, áfach, ag dul a bheith de chineál réalta slánuimhir, a ciallaíonn sonrach tá siad ag dul a stóráil an seoladh ar slánuimhir, faoi ​​seach, x agus y. Anois, tá aon luachanna ann? An bhfuil aon seoltaí iarbhír sna dhá athróg ag an bpointe seo in am? Uimh Tá sé seo ach mar a thugtar air luachanna truflais. Mura bhfuil tú a shannadh i ndáiríre athróg, cuma cad a bhí i RAM roimhe ag dul a líonadh le nialais agus na cinn dá cheann de na hathróga. Ach níl a fhios againn go fóill cad atá siad agus go bhfuil ag dul a bheith tábhachtach maidir le cén fáth Binky chaill sé a cheann an tseachtain seo caite. Mar sin, ba é seo an claymation incarnation seo ina bhfuil tú ach dhá athróg, beag píosaí ciorclach de chré, gur féidir le athróg a stóráil, ach de réir mar Tugann na saigheada fillte suas, ní bhíonn siad ag cur in iúl go hiarbhír go dtugtar aon áit per se. Mar sin, ansin bhí againn an líne seo, agus tá sé seo Ba tseachtain seo caite nua, malloc do chuimhne leithdháileadh, a bhfuil ach ar bhealach mhaisiúil insint an córas oibriúcháin, Linux nó Mac OS nó Windows, hug, a thabhairt dom roinnt chuimhne, agus go léir a bhfuil tú a insint an córas oibriúcháin bhfuil an méid nuair a iarraidh é do chuimhne. Níl sé ag dul chun aire a thabhairt ar cad tú ag dul a dhéanamh leis é, ach gá duit a rá leis an oibriúcháin Córas cad mhodh malloc. Yeah? LUCHT ÉISTEACHTA: Cé mhéad? DAVID MALAN: Cé mhéad? Cé mhéad i bytes, agus mar sin, seo, arís, sampla bréige, tá ach ag rá, a thabhairt dom an méid de ina slánuimhir. Anois, an méid de ina slánuimhir Is ceithre bytes nó 32 giotán. Mar sin, tá sé seo ach ar bhealach de ag rá, hug, córas oibriúcháin, a thabhairt dom ceithre bytes de chuimhne gur féidir liom a úsáid ar mo láimh, agus go háirithe, cad a dhéanann ar ais malloc maidir leis smután de cheithre bytes? LUCHT ÉISTEACHTA: Seoladh? DAVID MALAN: D'fhéadfadh an seoladh. An seoladh an smután de cheithre bytes. Go díreach. Agus mar sin go bhfuil an méid atá stóráilte ar deireadh thiar in x agus sin an fáth nach bhfuil againn i ndáiríre cúram cad é an líon de sin Tá seoladh, bíodh sé OX1 nó OX2 nó cuid díobh a seoladh hexadecimal cryptic. Linn cúram díreach go pictiúrtha go bhfuil an athróg x anois ag cur in iúl don smután de chuimhne. Mar sin, is ionann an tsaighead pointeoir, nó níos mó go sonrach, ar ainm na cuimhne. Ach arís, ní féidir linn cúram de ghnáth cad iad na seoltaí iarbhír. Anois, a deir an líne seo cad i dtéarmaí layman? Faigheann réalta x 42 leathstad. Cad a chiallaíonn sé seo? Ba mhaith leat dul? Ná scratch do mhuineál. LUCHT ÉISTEACHTA: Is é an seoladh ar x ar an 42. DAVID MALAN: Is é an seoladh ar x ag 42. Ní leor. Chomh gar, ach ní leor, mar níl an réalta go le línte seo a x. Mar sin, ní mór dúinn a tweak le beagán. Yeah? LUCHT ÉISTEACHTA: An luach go bhfuil an Tá pointeoir x dírithe ar é 42. DAVID MALAN: OK. An luach go bhfuil an pointeoir x dírithe ar, a ligean le rá, beidh 42, nó a chur ar bhealach eile, an réalta x deir, téigh go dtí cuma cad seoladh Is in x, bíodh sé 1 Oxford Sráid nó 33 Sráid Oxford nó OX1 nó ox33, is cuma cad go bhfuil seoladh uimhriúil, Is réalta x an dereferencing x. Mar sin, dul chuig an seoladh sin agus ansin a chur ar an uimhir 42 ann. Mar sin, bheadh ​​a bheith ina bhealach comhionann rá go. Mar sin, sin uile fíneáil agus ansin ba mhaith linn ar son an pictiúr mar seo a leanas i gcás ina tá muid leanas an 42 leis smután de cheithre bytes ar an thaobh na láimhe deise, ach líne seo a bhí nuair a chuaigh rudaí awry agus ceann Binky ar popped amach ag an bpointe seo, toisc go dtarlaíonn rudaí dona nuair tú téigh i luachanna truflais nó tú téigh i neamhbhailí leideanna, agus a rá liom neamhbhailí mar gheall ag an bpointe seo sa scéal, cad atá taobh istigh de y? Cad é an luach y bunaithe ar na céimeanna beaga anuas? Yeah? Cad é sin? LUCHT ÉISTEACHTA: An seoladh. DAVID MALAN: An seoladh. Ba chóir é a bheith ina seoladh ach tá initialized mé é? Mar sin, ní Tá mé go fóill. Mar sin, cad bhfuil ar eolas a bheith i ann? Tá sé díreach roinnt luach truflais. D'fhéadfadh sé a bheith ar aon seoladh ó náid go 2 billiún má tá tú dhá gigs de RAM, nó náid go 4 billiún má tá tú Fuair ​​ceithre ghigibheart de RAM. Tá sé roinnt luach truflais, ach tá an fhadhb go bhfuil an córas oibriúcháin, mura mbeidh sé tugtha agat go smután de chuimhne go sonrach go bhfuil tú ag iarraidh chun dul go dtí, tá sé ag dul go ginearálta a chur faoi deara an méid a atá feicthe againn mar locht deighilt. Mar sin, i ndáiríre, aon cheann de tú a bhfuil struggled ag fadhbanna ag uaireanta oifige nó i fadhbanna go bhfuil níos ginearálta le iarraidh a dhéanamh amach locht deighilt, ciallaíonn sin go ginearálta bhfuil tú ag touching le teascán de cuimhne nár cheart duit a bheith. Bhfuil tú ag touching cuimhne go nach bhfuil an córas oibriúcháin cead agat chun teagmháil, bíodh sé ag dul i bhfad ró i do eagar nó ag tosú anois, cibé acu tá sé toisc go bhfuil tú touching cuimhne go bhfuil ach cuid luach truflais. Mar sin, ag déanamh réalta x anseo saghas iompair neamhshainithe. Ní ba chóir duit é a dhéanamh mar gheall ar odds Tá, tá an clár ag dul díreach a tuairteála, toisc go bhfuil tú ag rá, téigh go dtí an seoladh agus nach bhfuil aon smaoineamh nuair is é sin seoladh ndáiríre. Mar sin, is dócha an córas oibriúcháin dul a tuairteála do chlár mar thoradh air sin agus go deimhin, go bhfuil cad a tharla ansin go Binky. Mar sin, ar deireadh thiar, Binky seasta an fhadhb leis seo. Mar sin, go clár a bhí lochtach féin. Ach má tá tú saghas bhrionnú chun tosaigh agus a fhorghníomhú an líne seo ina ionad sin, y ionann x díreach a chiallaíonn cuma cad Is seoladh an x, a chur freisin é i y. Agus mar sin go pictiúrtha, tá muid léirigh sé sin le dhá saighde as x agus y dírithe ó go dtí an áit chéanna. Mar sin semantically, tá x comhionann go y gheall ar an dá cheann de na Tá stóráil an gcéanna seoladh, ergo dírithe ar 42, agus anois, nuair a deir tú réalt y, téigh go dtí an seoladh i y, Tá sé seo i bhfeidhm taobh suimiúil. Dá bhrí sin tá an seoladh i y an rud céanna leis an seoladh i x. Mar sin, má deir tú dul go dtí an seoladh i y agus an luach a athrú go dtí 13, a bhfuil eile difear? X Tá, pointe D, mar a déarfá, Ba cheart go mbeadh tionchar chomh maith. Agus go deimhin, conas a tharraing Nick an pictiúr i claymation a bhí díreach mar sin. Cé lean muid ar an pointeoir y, dar críoch muid suas san áit chéanna, agus mar sin má bhí muid a phriontáil as x nó y ar pointee, ansin ba mhaith linn a fheiceáil ar an luach de 13. Anois, a rá liom pointee a bheith ag teacht leis an físeán. Ríomhchláraitheoirí, le mo Riamh eolas, i ndáiríre rá an focal pointee, go bhfuil Léirigh ag, ach le comhsheasmhacht leis an físeán, a bhaint amach sin uile a bhí Chiallaigh i staid sin. Mar sin, aon cheisteanna ar claymation nó leideanna nó malloc ach go fóill? Uimh? Ceart go leor. Mar sin, gan a thuilleadh gleo, a ligean ar ghlacadh le breathnú ag i gcás ina bhfuil sé seo i ndáiríre Baineadh úsáid le tamall. Mar sin, tá muid go raibh an leabharlann CS50 go bhfuair gach ceann de na feidhmeanna. Táimid tar éis a úsáidtear GetInt go leor, GetString, is dócha GetLongLong níos luaithe i mo PSet amháin nó mar sin, ach cad atá ar iarbhír ag dul ar? Bhuel, a ligean ar ghlacadh le breathnú tapaidh thíos an cochall ag clár a spreagann an fáth a thabhairt duit ar an CS50 leabharlann, agus go deimhin mar ar an tseachtain seo caite, thosaigh muid ag cur leis na rothaí oiliúna as. Mar sin, tá sé seo curtha in eagar anois de iarbháis ar cad a Tá ag dul ar taobh istigh den leabharlann CS50, cé go mbeidh muid ag tosú anois ag gluaiseacht ar shiúl ó sé do chláir mó. Mar sin, tá sé seo le clár ar a dtugtar scanf 0. Tá sé Super gearr. Tá sé díreach ar na línte, ach tá sé tugtar isteach feidhm a dtugtar scanf go bhfuil muid ag dul i ndáiríre a fheiceáil i nóiméad taobh istigh den leabharlann CS50, cé gur i bhfoirm beagán difriúil. Mar sin, an clár seo ar líne 16 Tá dhearbhú x athraitheach. Mar sin, a thabhairt dom ceithre bytes ar slánuimhir. Baineann sé le bheith ag insint úsáideoir, uimhir le do thoil, agus ansin is é seo an líne suimiúil go ceangail iarbhír le chéile an tseachtain seo caite agus tá sé seo. Scanf, agus ansin faoi deara a thógann sé teaghrán formáid, díreach cosúil le printf, % ciallaíonn liom ina slánuimhir, agus ansin a thógann sé an dara argóint a bhreathnaíonn beagán funky. Tá sé ampersand x, agus a thabhairt chun cuimhne, chonaic muid ach an tseachtain seo uair amháin caite. Cad a dhéanann ampersand x ionadaíocht a? Cad a dhéanann ampersand a dhéanamh i C? Yeah? LUCHT ÉISTEACHTA: D'fhéadfadh an seoladh ar. DAVID MALAN: D'fhéadfadh an seoladh ar. Mar sin, tá sé an os coinne an oibreora réalta, cé a deir an t-oibreoir réalta, téigh go dtí an seoladh, an t-oibreoir ampersand a deir, figiúr amach an Seoladh an athróg, agus mar sin tá sé seo eochair, mar gheall ar críche sin scanf sa saol is é a scanadh an úsáideora ionchur ón méarchlár, ag brath ar cibé sé nó sí cineálacha, agus ansin léigh ón ionchur sin úsáideora isteach i athróg, ach táimid Chonaic sa dá sheachtain anuas go feidhme sin babhtála go bhfuil muid iarracht effortlessly a chur i bhfeidhm briste díreach. Thabhairt chun cuimhne go bhfuil an fheidhm babhtála, má dhearbhú muid díreach A agus B mar ints, raibh muid babhtála go rathúil ar an dhá athróg taobh istigh de babhtála díreach cosúil leis an bainne agus IO, ach chomh luath agus babhtála ais, cad a bhí an toradh i ndáil x agus y, na luachanna bunaidh? Ní dhéanfaidh aon ní. Yeah. Ní dhéanfaidh aon ní a tharla an am sin, mar gheall ar babhtálacha athrú ach a cóipeanna áitiúla, atá le rá, gach an uair seo, aon uair a bhfuil muid curtha ag dul i argóintí feidhmeanna, tá muid ach dul cóipeanna de na hargóintí. Is féidir leat a dhéanamh leis sin is cuma cad ba mhaith leat leo, ach tá siad ag dul a bheith acu ar bith bhfeidhm ar na luachanna bunaidh. Mar sin, is é seo fadhbanna má tá tú ag iarraidh a bhfuil feidhm mhaith scanf sa saol, is é arb é is cuspóir a scanadh ionchur an úsáideora ón méarchlár agus ansin líon isteach na bearnaí, mar sin go labhairt, is é sin, a thabhairt athróg cosúil le x luach, mar má bhí mé a pas a fháil ach x chun scanf, má mheasann tú an loighic seo caite seachtain, is féidir scanf dhéanamh is cuma cad is mian leis le cóip de x, ach ní fhéadfadh sé buan athrú x mura bhfaighidh scanf léarscáil taisce, mar a déarfá, i gcás ina marcanna x an láthair, trína pas againn i seoladh an x ​​ionas go scanf féidir dul ann agus ar ndóigh, athrú a luach x. Agus mar sin go deimhin, gach go ndéanann an clár seo má dhéanaim scanf 0, i mo fhoinse 5m eolaire, scanf 0 dhéanamh, ponc Slais scanf, uimhir le do thoil 50, go raibh maith agat ar feadh 50. Mar sin, nach bhfuil sé go léir go suimiúil, ach cad atá ag tarlú go deimhin is é sin chomh luath agus is Iarraim scanf anseo, luach x á athrú go buan. Anois, is cosúil seo deas agus maith, agus go deimhin, tá sé Dealraíonn sé cosúil nach mór dúinn i ndáiríre an leabharlann CS50 ar chor ar bith níos mó. Mar shampla, a ligean ar siúl seo níos mó uair amháin anseo. Lig dom a athoscailt é le haghaidh an dara. A ligean ar iarracht a PO thoil agus in ionad a rá 50 mar a bhíodh, a ligean ar rá ar díreach aon. OK, tá go bhfuil beagán aisteach. OK. Agus ach cuid nonsense anseo. Mar sin, ní chuireann sé cosúil go láimhseáil cásanna earráideach. Mar sin, ní mór dúinn tús a minimally cur roinnt earráid á seiceáil chun a chinntiú go bhfuil an t-úsáideoir clóscríofa i líon iarbhír cosúil le 50, mar gheall ar na focail cosúil clóscríobh Níl bhraitear mar fadhbanna, ach ba chóir é a bheith dócha. A ligean ar breathnú ar an leagan seo anois go bhfuil mo iarracht a reimplement GetString. Má tá scanf seo go léir feidhmiúlacht a tógadh i, cén fáth go mór dúinn a bheith dabbling leis na rothaí oiliúna cosúil GetString? Bhuel, tá anseo mo chuid féin b'fhéidir Leagan simplí de GetString trína in aghaidh na seachtaine ó shin, d'fhéadfadh liom a rá, a thabhairt dom teaghrán agus glao sé Maolán. Sa lá atá inniu, tá mé ag dul chun tús a chur díreach ag rá réalta char, a, chun cuimhne, tá sé ach comhionann lena chéile. Breathnaíonn sé scarier ach tá sé an rud ceannann céanna. Mar sin, a thabhairt dom maolán athróg ar a dtugtar go bhfuil dul a stóráil ar shraith, rá leis an teaghrán úsáideora do thoil, agus ansin, díreach mar a bhíodh, a ligean ar iarracht a fháil ar iasacht an gceacht seo scanf % s an uair agus ansin pas i maolán. Anois, seiceáil sanity tapaidh. Cén fáth nach ag rá mé ampersand Maolán an am seo? Tátal a bhaint astu as an sampla roimhe seo. Is Char réalta pointeoir: LUCHT FÉACHANA. DAVID MALAN: Go díreach, mar gheall ar an am seo, char Is réalta cheana féin pointeoir, aitheasc, de réir sainmhínithe den réalta a bheith ann. Agus má scanf súil seoladh, suffices sé ach chun pas a fháil i maolán. Ní gá dom a rá maolán ampersand. Maidir leis an aisteach, d'fhéadfaí tú rud éigin mar seo a dhéanamh. Bheadh ​​sé a bheith brí éagsúla. Bheadh ​​sé seo a thabhairt duit pointeoir le pointeoir, a bhfuil i ndáiríre rud bailí i C, ach le haghaidh anois, a ligean ar a choimeád simplí agus a choinneáil ar an scéal ag teacht. Tá mé ag dul díreach chun pas a fháil i Maolán agus go ceart. Is é an fhadhb cé seo. Lig dom dul ar aghaidh agus a reáchtáil seo clár tar éis a thiomsú dó. Déan scanf 1. Damn é, mo tiomsaitheoir ar teacht ar mo earráid. Tabhair dom dara ceann. Clang. Ligean le rá scanf-1.c. OK. Tá muid ag dul. Teastaíonn sé uaim. Tá ID CS50 éagsúla socruithe cumraíochta a chosaint i gcoinne féin tú. Gá dom a chur ar ceal siúd ag ag rith clang láimh an am seo. Mar sin, le do thoil teaghrán. Tá mé ag dul chun dul ar aghaidh agus cineál i mo domhan Dia duit is fearr leat. OK, null. Ní sin an méid a chlóscríobh mé. Mar sin tá sé táscach de rud éigin a bheith mícheart. Lig dom dul ar aghaidh agus cineál i teaghrán ndáiríre fada. Go raibh maith agat as an margadh saothair agus níl a fhios agam má tá mé ag dul a bheith in ann a tuairteála air. A ligean ar iarracht cóip beag greamaigh agus a fheiceáil má Cuidíonn seo. Just a ghreamú ar a lán de seo. Tá sé cinnte níos mó teaghrán ná mar is gnách. A ligean ar díreach tar éis a scríobh i ndáiríre é. Uimh Diabhal é. Ní ordú le fáil. Mar sin, tá go unrelated. Sin mar gheall ar pasted mé roinnt carachtair olc, ach casadh seo amach nach bhfuil ag dul a bheith ag obair. A ligean ar iarracht seo níos uair amháin, mar gheall ar tá sé níos mó spraoi má tuairteála againn i ndáiríre é. A ligean ar cineál seo agus anois, tá mé ag dul a chóipeáil ar shraith i ndáiríre fada agus anois a ligean ar a fheiceáil má táimid ag Is féidir tuairteála rud seo. Fógra ar lár mé spásanna agus línte agus leathstadanna nua agus gach carachtar funky. Iontráil. Agus anois tá an líonra díreach a bheith mall. Siúl mé síos Command-V ró-fhada, go soiléir. Diabhal é! Ní ordú le fáil. OK. Bhuel, is é an pointe mar sin féin an méid seo a leanas. Mar sin, cad atá ar siúl i ndáiríre ar leis an dearbhú seo de Maolán réalta Char ar líne 16? Mar sin, cad tá mé ag fáil nuair Dearbhaím pointeoir? Gach Tá mé ag dul tá súil le ceithre beart ar a dtugtar Maolán, ach cad atá taobh istigh de sé i láthair na huaire? Tá sé díreach roinnt luach truflais. Mar gheall ar aon am a dhearbhú tú athróg i C, tá sé ach roinnt luach truflais, agus tá muid ag tosú a turas thar an réaltacht. Anois, nuair a deirim scanf, téigh go dtí an seoladh agus a chur cuma cad iad na cineálacha úsáideoir i. Má na cineálacha úsáideoir i Dia duit domhan, go maith, i gcás ina is féidir liom a chur air? Is Mhaoláin luach truflais. Mar sin tá go cineál cosúil le saighead ag cur in iúl go bhfuil a bhfuil aithne aige áit. B'fhéidir tá sé ag cur in iúl ar dheis anseo i mo chuimhne. Agus mar sin nuair a bheidh an t-úsáideoir cineálacha sa domhan Dia duit, déanann an clár a chur ar an teaghrán Dia duit ar domhan cúlslais 0 sa mhéid is go smután de chuimhne. Ach le dóchúlacht ard, ach soiléir nach 100% dóchúlacht, Tá an ríomhaire ag dul a tuairteála ansin an clár toisc nach bhfuil sé seo cuimhne ba chóir dom a mbeadh cead chun teagmháil. Mar sin, i mbeagán focal, tá an clár lochtach ar feadh díreach ar an gcúis sin. Tá mé ag déanamh an méid bunúsach nach bhfuil? Cad iad na céimeanna tá mé fágtha ar lár, díreach cosúil le ar lár againn le chéad sampla Binky Fir? Yeah? LUCHT ÉISTEACHTA: leithdháileadh Cuimhne? DAVID MALAN: leithdháileadh Cuimhne. Nach bhfuil mé i ndáiríre a leithdháileadh aon chuimhne don teaghrán. Mar sin, is féidir linn a shocrú seo i cúpla bealaí. Amháin, is féidir linn a choinneáil simplí é agus go deimhin, anois tá tú dul chun tús a fheiceáil blurring de na línte idir an méid Is sraith, cad is teaghrán, cad a Is réalta ruabhreac, cad le sraith de carachtair Is. Seo an dara sampla a bhaineann le teaghráin agus fógra gach mé a rinneadh ar líne Is 16, in ionad a rá Tá go maolán dul chun bheith ina ruabhric réalta, pointeoir le smután de chuimhne, Tá mé ag dul a thabhairt an-réamhghníomhach mé féin maolán ar feadh 16 carachtair, agus go deimhin, má tá tú eolach ar leis an téarma mhaolánaithe, is dócha as an saol na físeáin, i gcás ina bhfuil físeán buffering, mhaolánaithe, buffering. Bhuel, cad é an nasc anseo? Bhuel, Taobh istigh de YouTube agus taobh istigh na n-imreoirí físeán Is go ginearálta le sraith go bhfuil níos mó ná 16. D'fhéadfadh sé a bheith le sraith de mhéid amháin mheigibhirt, b'fhéidir 10 meigibheart, agus isteach go sraith a dhéanann do bhrabhsálaí íoslódáil a bunch iomlán de bytes, a bunch iomlán de meigibheart de físeán, agus an t-imreoir físeán, YouTube nó whoever atá Tosaíonn, léamh an beart ón eagar, agus am ar bith a fheiceann tú an buffering focal, mhaolánaithe, go ciallaíonn Tá an t-imreoir gotten go dtí deireadh an eagar. Tá an gréasán chomh mall sin nach bhfuil sé refilled an eagar le níos mó bytes agus mar sin tá tú as giotán a chur ar taispeáint don úsáideoir. Mar sin, tá Maolán téarma Apt anseo sa mhéid is go tá sé ach le sraith, le smután de chuimhne. Agus beidh sé seo a shocrú mar gheall ar casadh sé amach gur féidir leat cóireáil arrays mar cé go bhfuil siad seoltaí, cé go maolán ach siombail, tá sé ina ord na carachtair, Maolán, go úsáideach dom, an Ríomhchláraitheoir, Is féidir leat pas a fháil ar a ainm ar fud amhail is dá mba ina pointeoir, mar cé sé Bhí an seoladh ar smután de chuimhne ar feadh 16 chars. Mar sin tá sin le rá, is féidir liom a pas a fháil an scanf díreach focal agus mar sin anois, má dhéanann mé an clár seo, scanf 2 a dhéanamh, scanf Slais ponc 2, agus cineál i Dia duit ar domhan, Iontráil, go time-- Hmm, cad a tharla? Teaghrán thoil. Cad a rinne mé mícheart? Dia duit ar domhan, Maolán. Dia duit ar domhan. Ah, tá a fhios agam cad atá sé á dhéanamh. OK. Mar sin, tá sé ag léamh suas go dtí an chéad spás. Mar sin, a ligean ar cheat ar feadh nóiméad ach agus a rá Bhí mé díreach rud éigin chun cineál i ndáiríre fada mar tá sé seo le pianbhreith fada go ceann amháin, dhá, trí, ceithre, cúig, sé, seacht, ocht, naoi, 10, 11, 12, 13, 14, 15, 16. OK. Tá sé go deimhin pianbhreith fada. Mar sin, tá an abairt seo níos faide ná 16 carachtar agus mar sin nuair a bhuail mé Iontráil, cad atá ar siúl le tarlú? Bhuel, sa chás seo de na Maolán scéal, d'fhógair mé chun bheith i ndáiríre le sraith le 16 carachtair réidh le dul. Mar sin amháin, dhá, trí, ceithre, cúig, sé, seacht, ocht, naoi, 10, 11, 12, 13, 14, 15, 16. Mar sin 16 carachtair, agus anois, nuair mé léamh i rud éigin cosúil le tá sé seo le fada abairt, cad atá ar siúl le tarlú go bhfuil go bhfuil mé ag dul a léamh ar an is fada S-E-N-T-E-N-C-E, abairt. Mar sin, is é seo d'aon ghnó droch-rud go bhfuil mé choinneáil ag scríobh thar an teorainneacha mo eagar, thar theorainneacha mo Maolán. Raibh mé in ann a fháil t-ádh agus an clár Beidh a choinneáil ar a reáchtáil agus nach bhfuil cúram, ach tríd is tríd, seo Beidh tuairteála go deimhin mo chlár, agus tá sé a bug i mo cód an nóiméad chéim mé thar na teorainneacha den eagar, mar gheall mé Níl a fhios má tá sé gá go ag dul a tuairteála nó má tá mé ag dul díreach a fháil t-ádh. Mar sin, tá sé seo fadhbanna mar gheall ar chás seo, a dhéanann sé cosúil a bheith ag obair agus a ligean ar tempt cinniúint anseo, cé go is cosúil leis an IDE a fhulaingt go leor le beagán of-- Tá muid ag dul. Ar deireadh. Mar sin, tá mé an ceann amháin is féidir a fheiceáil seo. Mar sin, bhí mé díreach tar éis a lán de spraoi clóscríobh amach frása iarbhír i ndáiríre fada go bhfuil sé níos mó ná cinnte 16 bytes, mar gheall mé clóscríofa sa fada il-líne dÚsachtach frása, agus ansin faoi deara an méid a tharla. Rinne an clár priontáil air agus ansin fuair locht deighilt agus tá lochtanna deighilt nuair rud éigin mar seo a tharlaíonn agus deir an córas oibriúcháin aon ní féidir, teagmháil go chuimhne. Táimid ag dul a mharú an clár ar fad. Mar sin, is cosúil seo fadhbanna. Tá feabhas agam ar an gclár trína ar a laghad a bhfuil roinnt chuimhne, ach bheadh ​​sé seo cosúil go theorannú an GetString fheidhm chun dul teaghráin de roinnt fad críochta 16. Mar sin, más mian leat chun tacú níos faide Abairtí ná 16 carachtair, Cad a dhéanann tú? Bhuel, is féidir leat cur leis an méid seo Maolán go 32 nó is cosúil gur de chineál ar ghearr. Cén fáth nach féidir linn a dhéanamh ach sé 1,000 ach a bhrú ar ais. Cad é an freagra intuitively de ach a sheachaint an fhadhb seo trí mo Maolán níos mó, cosúil le 1,000 chars? De réir a chur i bhfeidhm GetString an mbealach seo. Cad atá go maith nó olc anseo? Yeah? LUCHT ÉISTEACHTA: Má tá tú ceangal suas go leor de spás agus ní gá duit a úsáid, ansin ní féidir leat a ath-leithdháileadh spás. DAVID MALAN: Absolutely. Tá sé amú sa mhéid mura bhfuil tú Ní mór 900 de na beart iarbhír agus fós go bhfuil tú ag iarraidh 1,000 san iomlán mar sin féin, bhfuil tú ag Tógann ach níos mó cuimhne ar ríomhaire an úsáideora ná mar is gá duit a, agus tar éis an tsaoil, roinnt de atá tú a bhíonn cheana sa saol go nuair a bhíonn tú ag rith leor de na cláir agus tá siad ag ithe suas go leor de chuimhne, is féidir é seo tionchar iarbhír feidhmíochta agus an úsáideora taithí ar an ríomhaire. Mar sin, go bhfuil de chineál ar ar réiteach leisciúil, do cinnte, agus os a choinne sin, tá sé ní hamháin amú, cén fhadhb fós, fiú amháin má dhéanaim mo maolán 1,000? Yeah? LUCHT ÉISTEACHTA: Is é an teaghrán fad 1,001. DAVID MALAN: Go díreach. Má tá do teaghrán fad 1,001, tá an fhadhb ceannann céanna agat, agus ag mo argóint, ba mhaith liom díreach a dhéanamh ansin é 2000, ach nach bhfuil fhios agat i cinn cé chomh mór ba chóir é a, agus fós, dóigh liom go bhfuil mo chlár a thiomsú roimh ligean daoine a úsáid agus a íoslódáil é. Mar sin, is é seo go díreach ar an chineál stuif go bhfuil na iarracht leabharlann CS50 chun cabhrú linn leis agus beidh muid ach Sracfhéachaint ag roinnt de chur i bhfeidhm is bun anseo, ach tá sé seo CS50 ponc C. seo an comhad a curtha ar CS50 IDE seo go léir seachtain go atá tú ag baint úsáide as. Tá sé réamh-le chéile agus tá tú ag baint úsáide as sé go huathoibríoch ag nádúr a bhfuil an Fleasc L bratach CS50 le clang, ach má scrollú mé síos tríd gach ceann de na feidhmeanna, a anseo GetString, agus díreach a thabhairt duit ar blas de cad atá ar siúl, ligean ar ghlacadh le súil thapa ar an chastacht choibhneasta. Níl sé ina fada Super fheidhm, ach ní raibh muid ag smaoineamh go léir go crua faoi conas a théann faoi teaghráin á fháil. Mar sin, tá anseo ar mo maolán agus mé cosúil thúsú é a margadh saothair. Seo, ar ndóigh, tá an rud céanna mar réalta ruabhreac, ach chinn mé i an leabharlann CS50 feidhme go má táimid ag dul chun a bheith go hiomlán dinimiciúil, Níl a fhios agam roimh ré cé chomh mór de úsáideoirí teaghrán ag dul a iarraidh a fháil. Mar sin, tá mé ag dul chun tús a chur a bhfuil ach an teaghrán folamh agus tá mé ag dul a thógáil suas an oiread cuimhne mar is gá dom a d'oirfeadh an teaghrán úsáideora agus más rud é nach dóigh liom go bhfuil leor, tá mé ag dul a iarraidh an córas oibriúcháin le haghaidh níos mó cuimhne. Tá mé ag dul chun bogadh ar a teaghrán isteach i smután níos mó de chuimhne agus tá mé ag dul a scaoileadh nó a saor in aisce na smután sách mór de chuimhne agus táimid ag dul díreach chun é seo a iteratively. Mar sin, Sracfhéachaint ar mear, anseo ach athróg lena bhfuil mé ag dul súil a choinneáil den toilleadh de mo Maolán. Cé mhéad beart is féidir liom oiriúnach? Seo athróg n le a bhfuil mé ag dul a choinneáil súil a choinneáil ar cé mhéad bytes atá iarbhír i an maolán nó go bhfuil an t-úsáideoir clóscríofa. Más rud é nach tá tú ag feiceáil seo roimh, tá tú Is féidir a shonrú go bhfuil athróg cosúil le slánuimhir Is gan síniú, a mar a léiríonn an t-ainm, ciallaíonn sé neamh-diúltach, agus cén fáth go mbeadh Ba mhaith liom riamh sonrófar a bodhraigh nach bhfuil ina slánuimhir ach slánuimhir, ach tá sé ina slánuimhir gan síniú? Tá sé ina slánuimhir neamh-diúltach. Cad a dhéanann an [inaudible] ciallóidh? LUCHT ÉISTEACHTA: Tá sé ag cur síos méid na cuimhne féidir a bheith [inaudible]. DAVID MALAN: Yeah. Mar sin, má rá liom gan síniú, tá sé seo i ndáiríre a thabhairt duit beagán ar cheann de chuimhne breise agus is cosúil sé de chineál ar amaideach, ach má tá tú tá beagán ar cheann de chuimhne breise, go chiallaíonn go bhfuil tú dhá oiread luachanna is féidir leat a son, mar is féidir é a bheith ina 0 nó 1. Mar sin, de réir réamhshocraithe, is féidir le slánuimhir a bheith thart ar diúltach 2 billiún léir ar an mbealach suas go dtí dearfach 2 billiún. Tá na raonta mór, ach tá sé fós de chineál ar wasteful má tá tú cúram ach thart méideanna, a díreach intuitively Ba chóir go mbeadh neamh-diúltach nó dearfach nó 0, go maith ansin, cén fáth a bhfuil tú ag wasting 2 billiún luachanna féideartha do uimhreacha diúltacha má riamh tá tú ag dul chun iad a úsáid? Mar sin, ag rá gan síniú, anois mo slánuimhir is féidir a bheith idir 0 agus timpeall 4 billiún. Mar sin, tá anseo ach ina slánuimhir C chúiseanna ní beidh muid ag dul isteach díreach anois mar go fáth go bhfuil sé ina slánuimhir ina ionad de ruabhric, ach anseo tá an gist cad atá ar siúl ar, agus roinnt de tú D'fhéadfadh bheith ag baint úsáide, mar shampla, an fheidhm fgetc fiú i PSet ceithre nó dá éis sin, beidh orainn é a fheiceáil arís i fhadhb a leagtar cúig, Tá fgetc deas mar gheall ar mar an t-ainm de chineál ar, le fios saghas arcanely, tá sé ina fheidhm a Faigheann carachtar agus mar sin, cad atá difriúil go bunúsach faoi ​​cad tá ag éirí linn i GetString nach bhfuil muid ag baint úsáide as scanf ar an mbealach céanna. Táimid ag creeping díreach chomh maith céim-ar-chéim thar cuma cad tá an t-úsáideoir clóscríofa i, mar is féidir linn a leithdháileadh i gcónaí ar cheann Char, agus mar sin is féidir linn i gcónaí go sábháilte féachaint ar ruabhric amháin ag an am, agus Tosaíonn an draíocht a tharlóidh anseo. Tá mé ag dul chun scrollaigh síos go dtí lár na feidhme seo ach a thabhairt isteach go hachomair an fheidhm seo. Mórán mar níl a feidhm malloc, níl feidhm realloc ina realloc ligeann tú a ath-leithdháileadh smután de chuimhne agus é a dhéanamh níos mó é nó níos lú. Scéal mar sin fada gairid agus leis tonn de mo lámh don lá atá inniu, Tá a fhios go bhfuil an méid GetString Is ag déanamh tá sé saghas ag fás magically nó crapadh an maolán mar an t-úsáideoir cineálacha ina sheilbh nó ina teaghrán. Mar sin, má na cineálacha úsáideoir teaghrán gearr, cód seo ach Dáileann leor cuimhne a d'oirfeadh an teaghrán. Má choimeádann an t-úsáideoir clóscríobh mar a rinne mé é arís agus arís eile agus arís, go maith, má tá an Maolán ar dtús seo mór agus tuigeann an clár, a fan nóiméad, tá mé amach as an spás, tá sé ag dul a dhúbailt an méid de na Maolán agus ansin dhá oiread an méid de na Maolán agus an cód a dhéanann an dúbailt, má táimid ar sé anseo, tá sé ach an cliste aon-liner. Ní D'fhéadfá a bheith le feiceáil ar an error roimh, ach má deir tú ionann réalta, is é seo an rud céanna mar ag rá amanna acmhainne 2. Mar sin, coimeádann sé ach dúbailt an cumas an mhaoláin agus ansin ag insint realloc a thabhairt féin go chuimhne i bhfad níos mó. Anois, mar leataobh, tá Tá feidhmeanna eile i anseo nach mbeidh muid ag breathnú isteach in aon mion seachas a thaispeáint i GetInt, úsáidimid GetString i GetInt. Seiceáil againn nach bhfuil sé null, a, chun cuimhne, Is é an luach ar leith a Ciallaíonn rud éigin a chuaigh mícheart. Tá muid amach as an chuimhne. Níos fearr a sheiceáil le haghaidh sin. Agus muid ar ais luach fairtheora. Ach beidh mé a chur siar le na tuairimí maidir leis cén fáth agus ansin dúinn a úsáid col ceathrar de scanf ar a dtugtar sscanf agus casadh sé amach go scanf sscanf, nó téad, ligeann tú le breathnú ar an líne go Tá an t-úsáideoir clóscríofa i agus lig tú anailís a dhéanamh sé go bunúsach agus cad tá mé ag déanamh anseo tá mé ag insint sscanf, anailís a dhéanamh ar is cuma cad tá an t-úsáideoir clóscríofa i agus a dhéanamh cinnte% i, tá slánuimhir ann, agus ní bheidh againn dul isteach sa lá atá inniu go díreach cén fáth níl freisin a% c anseo, ach gur i nutshell ligeann linn a bhrath má tá an t-úsáideoir clóscríofa i rud éigin bréagach i ndiaidh an uimhir. Mar sin, ar an gcúis go GetInt agus GetString insint duit a retry, retry, retry Is mar gheall ar gach ceann de na go cód againn scríofa, tá sé de chineál ar féachaint ar ionchur an úsáideora i dhéanamh cinnte tá sé go hiomlán uimhriúil nó tá sé ar snámh iarbhír luach pointe nó a leithéidí, ag brath ar cad luach feidhmiú tú ag baint úsáide. Whew. OK. Go raibh a mouthful ach is é an pointe anseo go bhfuil an chúis a bhí againn na rothaí oiliúna ar Is mar gheall ar an leibhéal is ísle, tá ach an oiread sin rudaí a Is féidir dul go mícheart gur bhíomar ag iarraidh a láimhseáil preemptively na rudaí cinnte sa seachtain is luaithe ar an rang, ach anois le PSet ceithre agus cúig PSet agus níos faide beidh tú a fheiceáil go bhfuil sé níos unto tú ach freisin go bhfuil tú in ann níos mó de réiteach na cineálacha sin fadhbanna duit féin. Ceisteanna ar bith ar GetString nó GetInt? Yeah? LUCHT ÉISTEACHTA: Cén fáth go mbeadh tú a dúbailte an cumas an mhaoláin seachas díreach ag méadú dó leis an méid cruinn? DAVID MALAN: Good question. Cén fáth go mbeadh muid dhá oiread an cumas an mhaoláin seachas go dtí díreach ag méadú air ag roinnt luach tairiseach? Bhí sé cinneadh a dhearadh. Shocraigh muid go díreach toisc go bíonn sé a a bheith beagán costasach am-ciallmhar a iarraidh an córas oibriúcháin do chuimhne, ní raibh muid ag iarraidh a suas go deireadh ag dul isteach staid do teaghráin mór go raibh muid ag iarraidh an OS arís agus arís agus arís agus arís eile i comharbas tapa do chuimhne. Mar sin, shocraigh muid díreach, beagán treallach ach tá súil againn go réasúnta, go bhfuil, tá a fhios agat cad, a ligean ar iarracht a fháil amach romhainn de féin agus díreach a choinneáil dhúbailt é ionas go táimid ag laghdú ar an méid na n-amanna ní mór dúinn malloc chun glaoch nó realloc, ach breithiúnas iomlán glaoch in éagmais a fhios agam cad a d'fhéadfadh úsáideoirí ag iarraidh a cineál i. D'fhéadfadh an dá thrá a bheith inargóinte. Fhéadfaí a rá go maith. Mar sin, a ligean ar ghlacadh le breathnú ar lánúin de fo-iarsmaí eile de chuimhne, rudaí is féidir a théann mícheart agus uirlisí gur féidir leat úsáid a ghabháil leis na cineálacha botúin. Casadh sé amach ar fad agat, cé go Nach bhfuil check50 inis tú an oiread, Tá ag scríobh Buggy cód ós rud é seachtain amháin, fiú má tá gach tástáil check50 a rith, agus fiú má tá tú féin agus do TF Tá Super muiníneach go Oibríonn do chód mar atá beartaithe. Tá do cód a bhí Buggy nó lochtach sa mhéid is go fad agat, i baint úsáide as an leabharlann CS50, curtha sceitheadh ​​chuimhne. Tá tú ag iarraidh ar an córas oibriúcháin do chuimhne sa chuid is mó de na cláir atá tú i scríbhinn, ach tá tú Riamh a tugadh i ndáiríre ar ais. Tá tú ar a dtugtar GetString agus GetInt agus GetFloat, ach le GetString, tá tú Riamh ar a dtugtar unGetString nó Tabhair Teaghrán Ar ais nó a leithéidí, ach atá le feiceáil againn go ndéanann GetString leithdháileadh cuimhne ar mhodh malloc nó an realloc fheidhm, a bhfuil ach an-chosúil i spiorad, agus fós, tá muid ag iarraidh ar an córas oibriúcháin do cuimhne agus cuimhne arís agus arís ach ní thugann sé ar ais. Anois, mar leataobh, tharlaíonn sé go raibh nuair Éirigh as clár, gach ceann de na chuimhne Tá freed go huathoibríoch. Mar sin, nach é a bhí le déileáil go mór. Níl sé ag dul a bhriseadh an IDE nó rudaí mall síos, ach nuair cláir go ginearálta sceitheadh ​​cuimhne agus tá siad ag rith ar feadh i bhfad. Má tá tú feicthe riamh an beag dúr liathróid trá i Mac OS nó an hourglass ar Windows áit a bhfuil sé de chineál ar moilliú síos nó ag smaoineamh nó ag smaoineamh nó a thosaíonn díreach i ndáiríre go mall le crawl, d'fhéadfadh sé a bheith an-, b'fhéidir, mar thoradh ar sceitheadh ​​chuimhne. Na ríomhchláraitheoirí a scríobh na bogearraí tú ag baint úsáide a iarraidh ar an córas oibriúcháin do chuimhne gach cúpla nóiméad, gach uair an chloig. Ach má tá tú ag rith an bogearraí, fiú má tá sé íoslaghdú i do ríomhaire le haghaidh uaireanta nó laethanta ar deireadh, d'fhéadfá a bheith ag iarraidh ar feadh níos mó agus níos mó cuimhne agus ní ag baint úsáide as i ndáiríre é agus mar sin d'fhéadfadh do chód a bheith, nó D'fhéadfadh cláir a sceitheadh ​​chuimhne, agus má thosaíonn tú cuimhne a sceitheadh, níl cuimhne níos lú do chláir eile, agus is é an éifeacht a mall síos gach rud. Anois, tá sé seo le fada ar cheann de na cláir is atrocious beidh tú go mbeadh deiseanna a reáchtáil i CS50 a mhéad mar is é a aschur níos esoteric ná clang nó ar a dhéanamh nó aon cheann de an t-ordú Cláir líne againn ar siúl roimh ach buíochas le Dia, neadaithe ina aschur Tá roinnt leideanna cabhrach a Super Beidh a bheith úsáideach le haghaidh na PSet ceithre nó is cinnte PSet cúig. Mar sin, tá valgrind uirlis gur féidir a úsáid chun breathnú do leaks cuimhne i do chlár. Tá sé sách simplí a reáchtáil. Ritheann tú valgrind agus ansin, fiú cé go tá sé ina verbose beag, Fleasc seiceáil Fleasc sceite ionann iomlán, agus ansin dot Slais agus ainm do chlár. Mar sin, beidh valgrind reáchtáil ansin do chlár agus ag an deireadh an-an do chláir ag rith sula Éirigh sé agus tugann tú pras eile, sé ag dul a anailís a dhéanamh do clár cé tá sé ag rith agus a insint duit go raibh tú sceite aon chuimhne agus níos fearr fós, raibh tú teagmháil cuimhne go Ní raibh mbaineann a thabhairt duit? Ní féidir é a ghabháil gach rud, ach tá sé maith go leor ag breith ar rudaí is mó. Mar sin, tá anseo sampla de mo reáchtáil a bhfuil an clár seo, a bhfuil reáchtáil valgrind, ar chlár ar a dtugtar chuimhne, agus tá mé ag dul chun aird a tharraingt ar na línte atá ar deireadh thiar spéise a chur chugainn. Mar sin, níl fiú níos mó seachráin go bhfuil mé a scriosadh as an sleamhnán. Ach a ligean ar a fheiceáil ach cad seo Tá clár ann ag insint dúinn. Tá sé in ann insint dúinn rudaí a cosúil le scríobh neamhbhailí de mhéid 4. I bhfocail eile, má tá tú teagmháil chuimhne, go sonrach 4 bytes de chuimhne nár chóir go mbeadh ort, Is féidir valgrind insint duit go bhfuil. Scríobh Neamhbhailí de mhéid 4. I dteagmháil léi tú ceithre bytes nár chóir go mbeadh ort. I gcás ina raibh tú sin? Is é seo an áilleacht. Tá cuimhne ponc líne c 21 áit a bhfuil tú screwed suas agus sin an fáth a bhfuil sé ina chuidiú. Mórán mar GDB, is féidir leis cabhrú pointe tú ag an earráid iarbhír. Anois, tá an ceann seo níos beag verbose, más rud é nach mearbhaill. Tá 40 bytes i 1 bloic cinnte caillte i taifead caillteanas 1 de 1. Cad is brí le sin? Bhuel, ciallaíonn sé ach d'iarr tú ar 40 bytes agus ní thug tú ar ais. Iarr tú malloc nó iarr tú GetString agus an córas oibriúcháin thug tú 40 bytes, ach tú riamh freed nó a scaoileadh go chuimhne, agus a bheith cothrom, riamh tá muid a thaispeáint agat conas a thabhairt ar ais cuimhne. Casadh amach níl a Super fheidhm simplí ar a dtugtar saor in aisce. Glacann argóint amháin, an rud ba mhaith leat saor in aisce nó a thabhairt ar ais, ach 40 bytes, is cosúil, sa chlár seo a bheith caillte ag líne 20 de chuimhne ponc c. Mar sin, a ligean ar féach an gclár seo. Tá sé Super useless. Léiríonn sé ach an earráid áirithe. Mar sin a ligean ar ghlacadh le breathnú. Seo is mó agus is mó, fógra, glaonna feidhm a dtugtar f agus ansin tuairisceáin. Mar sin, ní léir go suimiúil. Cad a dhéanann f dhéanamh? Fógra ní raibh mé bodhraigh le fréamhshamhail. Bhí mé a choinneáil ar an cód chomh íosta agus is féidir. Mar sin, chuir mé f thuas is mó agus go breá, cinnte, do chláir gearr mar seo. Mar sin ní dhéanann aon ní f ais agus a dhéanann gan aon rud a ghlacadh, ach é a dhéanamh. Dearbhaíonn sé, i bhfad cosúil sa sampla Binky, pointeoir ar a dtugtar x go bhfuil dul a stóráil an seoladh ina slánuimhir. Mar sin, go bhfuil an taobh clé. I mBéarla, cad é an thaobh na láimhe deise a dhéanamh? Duine ar bith? Cad atá á dhéanamh seo dúinn? Yeah? LUCHT ÉISTEACHTA: [inaudible] huaire an méid de ina slánuimhir a bhfuil 10 uair go [inaudible] DAVID MALAN: Maith agus lig dom achoimre. Mar sin, go leor spáis a leithdháileadh ar feadh 10 slánuimhreacha nó 10, cad é an méid de ina slánuimhir, tá sé ceithre bytes, mar sin 10 uair 4 40, ionas go mbeidh thaobh na láimhe deise a Tá mé Is aibhsithe a thabhairt dom 40 bytes agus stóráil an seoladh an chéad bheart i x. Agus anois ar deireadh, agus anseo an áit tá an clár Buggy, cad atá cearr le líne 21 bunaithe ar an loighic? Cad atá cearr leis an líne 21? Yeah? LUCHT ÉISTEACHTA: Ní féidir leat Innéacs isteach x [inaudible]. DAVID MALAN: Yeah. Ní chóir dom innéacs i x mar sin. Mar sin syntactically, sin ceart go leor. Cad atá deas é, i bhfad ar nós tú Is féidir a chóireáil an t-ainm eagar mar cé go tá sé ina pointeoir, dul céanna Is féidir leat a chóireáil le pointeoir mar cé go bhfuil sé sraith, agus mar sin is féidir liom syntactically rud éigin a rá x lúibín, x lúibín i, ach tá an 10 fadhbanna. Cén fáth? LUCHT ÉISTEACHTA: Toisc nach bhfuil sé taobh istigh. DAVID MALAN: Níl sé taobh istigh go smután de chuimhne. Cad é an luach is mó ba chóir dom bheith ag cur sna lúibíní cearnacha? 9, 0 trí 9. Mar gheall ar nialas innéacsú. Mar sin, bheadh ​​0 trí 9 go breá. Níl an lúibín 10 maith agus ach, chun cuimhne áfach, gach uair Is cosúil mé chun iarracht a dhéanamh CS50 IDE tuairteála ag clóscríobh i luachanna bréagach, ní chuireann sé comhoibriú i gcónaí, agus go deimhin, tú go minic fháil t-ádh ach toisc an Ní dhéanann córas oibriúcháin faoi ​​deara go bhfuil tú riamh mar sin beagán pas a fháil ar roinnt smután de chuimhne, toisc go fhan tú taobh istigh de go teicniúil do deighleog, ach tá níos mó ar sin i rang córais oibriúcháin, agus mar sin rud éigin mar seo D'fhéadfadh dul an-éasca ngan-fhios. Riamh do chláir ag dul a tuairteála comhsheasmhach ach b'fhéidir uair amháin i awhile. Agus mar sin a ligean ar iarracht valgrind ar seo, agus anseo tá i gcás ina mbainfidh linn a fháil faoi léigear ag an t-aschur momentarily. Sin a dhéanamh cuimhne seiceáil valgrind sceite ionann cuimhne ponc Slais iomlán. Agus anseo an fáth geallaim go mbeadh sé seo overwhelm. Seo an méid valgrind, anseo cad Ríomhchláraitheoir, roinnt blianta ago- chinn go mbeadh sé ag smaoineamh maith an t-aschur chun breathnú cosúil. Mar sin, a ligean ar a dhéanamh ar tuiscint ar seo. Mar sin, an bealach ar fad ar thaobh na láimhe clé-lámh taobh le haghaidh aon chúis mhaith Is é an ID próiseas an chláir táimid ag siúl ach, an t-aitheantóir uathúil don chlár ar siúl againn ach. Scriosadh muid go ó an sleamhnán, ach tá Tá roinnt eolais úsáideach i anseo. A ligean ar scrollú suas go dtí an barr an-. Seo nuair a thosaigh muid. Mar sin, nach bhfuil sé ar fad aschur go bhfuil i bhfad. Seo go scríobh neamhbhailí de mhéid 4 ar líne 21. Bhuel, cad a bhí ag teacht 21? Bhí líne 21 go díreach seo agus déanann sé ciall go bhfuil mé i go bailí scríbhneoireacht 4 bytes mar go bhfuil mé ag iarraidh a chur ar an slánuimhir, d'fhéadfadh a bheith rud ar bith, a tharlaíonn sé ach a bheith náid, ach tá mé ag iarraidh chun é a chur ag láthair nach mbaineann le dom. Ina theannta sin, síos anseo, 40 bytes i gceann bloic atá caillte cinnte i dtaifead 1. Sin mar nuair a ghlaonn mé malloc anseo, riamh mé saor in aisce i ndáiríre an chuimhne. Mar sin, conas is féidir linn a shocrú seo? Lig dom dul ar aghaidh agus a bheith beagán níos sábháilte agus a dhéanamh 9 ann agus lig dom anseo x saor in aisce. Is é seo an fheidhm nua don lá atá inniu. Má rerun agam anois a dhéanamh cuimhne ponc Slais, a ligean ar siúl valgrind ar sé arís, uasmhéadú mo fhuinneog agus brúigh Iontráil. Anois, tá sé go maith. Adhlacadh siad an dea-scéal i ngach ceann de aschur seo. Bhí gach bloic gcarn saor in aisce. Beidh muid ag teacht ar ais go dtí cad é an gcarn is é, ach aon leaks féidir. Mar sin, tá sé seo ach eile uirlis le haghaidh do threalamh uirlis leis ar féidir leat tús a teacht anois earráidí mar sin. Ach a ligean ar a fheiceáil cad a Is féidir le níos mó a dul go mícheart anseo. A ligean ar aistriú anois iarbhír fadhb a réiteach. Mar leataobh, más rud é beidh sé seo faoiseamh a beagán de mearbhall nó teannas, tá sé seo greannmhar anois. Yeah. Sin maith go leor. Toisc go bhfuil leideanna seoltaí agus seoltaí go ginearálta de réir an ghnáis i scríbhinn leis heicsidheachúlach. Ha, ha, tá sé seo greannmhar anois. Anyhow, agus mar sin a ligean ar anois i ndáiríre a réiteach ar fhadhb. Tá sé seo Super, Super íseal-leibhéal go dtí seo, agus is féidir linn a dhéanamh i ndáiríre úsáideach rudaí leis na sonraí íseal-leibhéil. Mar sin, thugamar isteach cúpla seachtain ó shin ar an nóisean de eagar. Bhí sraith deas mar gheall ar tá sé deacair a ghlanadh suas ár cód mar má bhíomar ag iarraidh a scríobh clár le mic léinn éagsúla nó ainmneacha agus tithe éagsúla agus dorms agus coláistí agus gach ceann de sin, d'fhéadfadh muid a stóráil gach rud níos cleanly taobh istigh de eagar. Ach a mholadh downside amháin de sraith go dtí seo. Fiú más rud é nach tá tú fhulaing é féin i gclár, ach instinctively, cad é an rud dona faoi ​​eagar, b'fhéidir? Cloisim roinnt murmurs. LUCHT ÉISTEACHTA: Tá sé deacair a athrú ar an méid. DAVID MALAN: Tá sé deacair a athrú ar an méid. Ní féidir leat a athrú ar an méid de sraith, i ndáiríre, per se i C. Is féidir leat a leithdháileadh eagar eile, bogadh gach rud as an amháin d'aois isteach sa nua, agus anois go bhfuil roinnt spás breise, ach nach bhfuil sé cosúil le teanga cosúil le Java nó Python nó aon líon na eile Teangacha lena roinnt de tú d'fhéadfadh a bheith ar an eolas i gcás ina tú Is féidir a choimeád ach rudaí a chur leis nauseam ad go dtí deireadh eagar. Nuair a bheidh tú le sraith de Méid 6, is é sin a mhéid, agus an oiread sin cosúil leis an smaoineamh níos luaithe a bhfuil maolán de mhéid áirithe, tá tú chun buille faoi thuairim amach as an geata cén méid ba mhaith leat é a bheith? Má buille faoi thuairim tú ró-mhór, bhfuil tú ag wasting spás. Má buille faoi thuairim tú ró-bheag, tá tú Ní féidir a stóráil sonraí, ar a laghad, gan saothar a lán níos mó. Mar sin, lá atá inniu ann, a bhuíochas sin do leideanna, is féidir linn tús a fuála le chéile ar ár saincheaptha féin struchtúir sonraí, agus i Go deimhin, tá anseo rud éigin go Breathnaíonn beagán níos mó cryptic ar an gcéad amharc, ach tá sé seo cad beidh muid ag glaoch ar nasctha liosta, agus a ainm de chineál ar achoimre é. Tá sé ina liosta de uimhreacha, nó i chás seo, tá liosta de uimhreacha, ach d'fhéadfadh sé a bheith ina liosta de rud ar bith, ach tá sé nasctha le chéile trí saigheada, agus díreach a ghlacadh buille faoi thuairim leis an méid a teicníc táimid ag dul a bheith in ann a stitch le chéile, saghas cosúil popcorn le snáithe, a nasctha liostaí dronuilleoga anseo? A líon? Cad é an gné teanga bunúsacha? LUCHT ÉISTEACHTA: A pointeoir. DAVID MALAN: A pointeoir. Mar sin, gach ceann de na saigheada ionann anseo pointeoir nó díreach aitheasc. Mar sin, i bhfocail eile, más mian liom a stóráil liosta de uimhreacha, Ní féidir liom a stóráil ach é más mian liom an cumas chun fás agus Laghdaigh mo struchtúr sonraí i sraith. Mar sin, is gá dom a bheith beag níos mó sofaisticiúlacht, ach faoi deara go bhfuil an pictiúr de chineál ar fios go má tá tú bhí díreach snáitheanna beag nascadh gach rud le chéile, is dócha nach bhfuil deacair spás a dhéanamh i idir dhá cheann de na dronuilleoga nó dhá cheann de na nóid, mar beidh orainn tús a chur ag glaoch orthu, a chur i nód nua, agus ansin le roinnt snáithe nua, ach díog na trí nóid chéile, an chéad cheann, an ceann deireanach, agus an ceann go bhfuil tú cuireadh isteach díreach isteach sa lár. Agus go deimhin liosta nasctha, murab ionann agus sraith é, dinimiciúil. Is féidir é ag fás agus is féidir é Laghdaigh agus nach bhfuil tú ní mór go mbeadh a fhios nó cúram roimh ré conas sonraí i bhfad go bhfuil tú ag dul a bheith ag stóráil, ach casadh sé amach ní mór dúinn a bheith beagán cúramach faoi conas a chur i bhfeidhm seo. Mar sin, an chéad a ligean ar breathnú ar conas a chur i bhfeidhm a chuirimid ar cheann de na dronuilleoga beag. Tá sé éasca a chur i bhfeidhm ina slánuimhir. Deir tú ach slánuimhir n agus ansin a gheobhaidh tú 4 bytes ar slánuimhir, ach conas a fhaighim ina slánuimhir, ghlaoch air n, agus ansin pointeoir, a ligean ar ghlaoch air seo chugainn. D'fhéadfadh muid a glaoch ar na rudaí a aon rud is mian linn a ach is gá dom a struchtúr sonraí saincheaptha. Yeah? LUCHT ÉISTEACHTA: Ampersand [inaudible]. DAVID MALAN: Mar sin, ampersand úsáidfimid chun a fháil ar an seoladh ar nód d'fhéadfadh. Ach is gá dúinn eile Gné de C in ord a thabhairt dom an cumas a chruthú an dronuilleog saincheaptha, saincheaptha athróg más maith leat, i gcuimhne. LUCHT ÉISTEACHTA: A struct. DAVID MALAN: A struct. Athghairm ón tseachtain seo caite, thugamar isteach struct, an eochairfhocal réasúnta simplí a ligeann dúinn rudaí mar seo a dhéanamh. Ní raibh C teacht le sonraí struchtúr a dtugtar an mac léinn. Tagann sé le slánuimhir agus snámh agus ruabhric agus den sórt sin, ach ní chuireann sé teacht le mac léinn, ach is féidir linn a chruthú i ndáil le cineál sonraí mac léinn, struchtúr mac léinn, leis an error anseo. Agus beidh tú a fheiceáil seo arís agus arís eile. Ní sin a dhéanamh bíodh imní ort faoi memorizing na heochairfhocail, ach tá an eochairfhocal go tábhachtach ach ar an bhfíric go dúirt muid struct agus ansin iarr muid é an mac léinn agus taobh istigh an dalta a bhí ainm agus teach nó dorm nó a leithéid. Agus mar sin anois lá atá inniu ann, a ligean ar a mholadh seo. Mé Chuir cúpla focal, ach más mian liom leis an dronuilleog a chur i bhfeidhm go fuair araon slánuimhir agus a pointeoir, tá a fhios agat cad, tá mé ag dul a dhearbhú struct dtugtar nód. Tá mé chomh maith, taobh istigh de sé, ag dul a rá go bhfuil nód, an dronuilleog, ina slánuimhir agus beidh muid ag glaoch air n agus tá sé pointeoir seo chugainn. Agus tá sé seo beag verbose, ach má cheapann tú faoi, na saigheada a bhí sa phictiúr nóiméad ó shin go bhfuil cén cineál sonraí? Sa chás go gach ceann de na saigheada atá ag cur in iúl a cén cineál struchtúr sonraí? Níl sé dírithe ach ina slánuimhir per se. Tá sé seo ag dírithe ar an rud ar fad dronuilleogach agus go bhfuil rud dronuilleogach, a dúirt muid, ar a dtugtar nód. Agus mar sin táimid ag de chineál ar a hathchúrsach shainmhíniú seo den sórt sin go nód, déanfaidh linn a rá, Beidh sa tuarascáil sin slánuimhir a dtugtar n agus pointeoir ar a dtugtar chugainn agus an cineál struchtúr sonraí lena mbaineann is é sin pointí pointeoir cosúil ag dul a bheith nód struct. Mar sin, is é seo annoyingly verbose agus díreach tar éis a bheith pedantic, cén fáth an chúis nach féidir linn ach a rá seo, a frankly Breathnaíonn a lán níos inléite, Is mar gheall ar cuimhne go C a léamh rudaí bhun go barr, ó chlé go deas. Níl sé go dtí go bhfaigheann muid an Leathstad go bhfuil an nód eochairfhocal iarbhír. Mar sin, más mian linn a bheith an saghas tagairt timthriallach taobh istigh de na sonraí struchtúr, ní mór dúinn a dhéanamh, i gcás ina deirimid nód struct ag an mbarr, a thugann dúinn ar bhealach níos faide cur síos ar an rud, ansin taobh istigh deirimid nód struct, agus ansin ag an líne an-dheireanach deirimid, gach ceart, C, dála an scéil, ach glaoch ar an diabhal ar fad Rud nód agus a stopadh ag baint úsáide as an struct eochairfhocal ar fad. Mar sin, tá sé seo ach saghas de comhréire trick a ligeann deireadh thiar dúinn a chruthú rud éigin go Breathnaíonn go díreach mar seo. Mar sin, má glacadh againn anois is féidir linn an rud a chur chun feidhme i C, conas bhfuil againn i ndáiríre tús a traversing seo? Bhuel, i ndáiríre, tá gach ní mór dúinn a dhéanamh iterate ó chlé go deas agus díreach de chineál ar chur isteach nóid nó nóid a scriosadh nó cuardach le haghaidh rudaí pé áit is mian linn a, ach é seo a dhéanamh, a ligean ar dul ar aghaidh agus a dhéanamh rudaí a bhí beagán níos fíor mar gheall ar seo Tá Super íseal-leibhéal go dtí seo. Mbeadh duine ar bith mhaith literally a bheith ar dtús? OK. Tar ar bun. Cad is ainm duit? DAVID: David. DAVID MALAN: David. Is deas liom bualadh leat. Mise freisin. Ceart go leor. Agus ní mór dúinn a PO 9. Ní maith mar chéad, b'fhéidir. OK, uimhir 9. Tá roinnt 17, le do thoil. Lig dom dul ar ais beagán níos faide. Uimhir 22, le do thoil, agus conas mar gheall faide ar ais más féidir liom a fheiceáil ar bith lámha leis an solas nó gan aon. Tá duine éigin á deonach ceart ann. Ar mhaith leat chun teacht suas? Tá do forearm ag dul suas forneartach. OK, 17. 22. 26 ag teacht síos. An mbeadh duine ar bith eile buíochas a forcefully-- Come on suas. An oibrí deonach iarbhír. Mar sin, go han-tapa, más rud é tú guys d'fhéadfadh socrú a díbh féin díreach cosúil na nóid ar an scáileán. Go raibh maith agat. Agus beidh tú a bheith 26. Gach ceart introductions agus tapa. Mar sin, tá mé David agus má tá tú freisin? DAVID: David. DAVID MALAN: Agus an bhfuil tú? JAKE: Jake. SUE: Sue. ALEX: Alex. RAPHAEL: Raphael. TAYLOR: Taylor. DAVID MALAN: Taylor. Den scoth. Mar sin, is iad seo ár saorálaithe don lá atá inniu agus dul ar aghaidh agus athrú beag ar an mbealach, agus díreach dul ar aghaidh agus a choinneáil a bhfuil do líon mar a bhfuil tú féin nó do chéad chomhartha agus ag baint úsáide as do lámh chlé, dul ar aghaidh agus a chur i bhfeidhm díreach na saigheada, ach ionas go bhfuil do lámh chlé literally ag cur in iúl ag cibé ba chóir duit a pointe ag, agus a thabhairt duit féin roinnt seomra ionas gur Is féidir linn a fheiceáil amhairc do airm iarbhír dírithe, agus is féidir leat pointe díreach saghas ar an talamh is breá. Mar sin anseo ní mór dúinn liosta nasctha de cheann, dhá, trí, ceithre, cúig nóid dtús, agus faoi deara ní mór dúinn an speisialta pointeoir ag an tús atá ar eochair toisc go bhfuil muid súil a choinneáil an liosta fad iomlán bhealach. Tá na guys, cé go mbíonn siad ar chlé go deas, cúl le cúl i gcuimhne, féidir leo a bheith in áit ar bith i ndáiríre i gcuimhne an ríomhaire. Mar sin d'fhéadfadh na guys a bheith seasamh in áit ar bith ar an stáitse agus go bhfuil fíneáil, chomh fada is atá siad i ndáiríre ag cur in iúl ag a chéile, ach a choinneáil ar rudaí glan agus simplí, beidh muid a ach a tharraingt orthu chlé go deas cosúil le seo, ach d'fhéadfadh a bheith ann bearnaí ollmhór i idir na nóid. Anois, más mian liom a chur isteach i ndáiríre roinnt luach nua, a ligean ar dul ar aghaidh agus é seo a dhéanamh. Mór dúinn an deis anois a roghnú nód eile. Abair ligean ar tús a chur amach le mallocing 55. Bheadh ​​duine éigin a aigne á malloc? OK, teacht ar suas. Cad is ainm duit? RAINBOW: Rainbow. DAVID MALAN: Rainbow? Ceart go leor. Malloc dhathach. Tar ar bun. Mar sin, anois ní mór dúinn a iarraidh féin algorithmically nuair is féidir linn a chur 55. Mar sin, gach duine againn a fhios, ar ndóigh, i gcás ina sí is dócha Baineann má tá muid ag iarraidh a choinneáil ar an curtha in eagar agus má d'fhéadfaí tú guys a ghlacadh ar cheann céim siar mar sin ní féidir linn titim amach an stáitse, a bheadh ​​go hiontach. Mar sin, i ndáiríre, Rainbow, tús a chur thar anseo liom, mar gheall orainn mar an ríomhaire is féidir anois ach féach athróg amháin ag an am. Mar sin, má tá sé seo an chéad nód. Fógra nach bhfuil sé ina nód, tá sé ach pointeoir, agus sin an fáth atá sé tarraingthe a bheith ach amháin an méid pointeoir, ní ar cheann de na dronuilleoga iomlán. Mar sin, táimid ag dul a sheiceáil ag gach Tá atriall 55 níos lú ná 9? Uimh Is 55 níos lú ná 17? Uimh Níos lú ná 22? Níos lú ná 26? Níos lú ná 34? Agus mar sin anois, ar ndóigh Rainbow mbaineann ag an deireadh. Mar sin, a bheith soiléir, agus cad Bhí d'ainm, Taylor? TAYLOR: Taylor. DAVID MALAN: Mar sin, i measc Taylor lámh chlé agus lámha Rainbow anseo, Ní mór a bhfuil a lámh a chur in iúl ar an méid i ordú a chur isteach 55 isteach sa liosta seo? Cad is gá dúinn a dhéanamh? Yeah? LUCHT ÉISTEACHTA: lámh Taylor Ní mór a chur in iúl ar chlé. DAVID MALAN: Go díreach. Mar sin, a chur isteach nód isteach sa deireadh an liosta Tá simplí go leor mar gheall ar Taylor díreach Tá pointe, in ionad ar an talamh nó beidh muid ag glaoch air null, Is null saghas éagmais de pointeoir nó speisialta náid pointeoir, tá tú ag dul go dtí pointe le do chlé lámh ag Rainbow agus ansin Rainbow, i gcás ina chóir do chlé lámh pointe is dócha? Síos. Níl sé go maith má tá a lámh a shórtáil de ag cur in iúl as anseo nó saghas ar aon cén bealach. Bheadh ​​sé sin a chur san áireamh luach truflais, ach má deir sí go roinnt luach ar eolas, beidh muid a ghlaoch air náid nó null, sin ceart go leor toisc go bhfuil muid téarma sa agus tá a fhios againn go bhfuil an liosta anois críochnaithe. Mar sin, cad atá eile cás réasúnta simplí? D'fhéadfadh muid a malloc 5? Tar ar bun. Cad is ainm duit? Tiffany: Tiffany. DAVID MALAN: Tá brón orm? Tiffany: Tiffany. DAVID MALAN: Tiffany. Ceart go leor. Tiffany curtha malloced leis an luach 5. Tar ar bun. Seo ar cheann Tá sách éasca freisin, ach a ligean ar a mheas ord na n-oibríochtaí anois. Bhí sé éasca go leor leis Taylor ag an deireadh. Is uimhir 5 ar ndóigh níos lú ná 9, agus mar sin ní mór dúinn David, ní mór dúinn Tiffany, agus an méid a bhí d'ainm? JAKE: Jake. DAVID MALAN: Jake. Tiffany, Jake, agus David. Ba chóir Cé leis ar láimh a nuashonrú ar dtús? Cad ba mhaith leat a dhéanamh anseo? Níl bealaí cúpla is féidir, ach níl freisin ar cheann nó níos mó bealaí mícheart. LUCHT ÉISTEACHTA: Tosaigh le leftmost. DAVID MALAN: Tosaigh leis an leftmost. Cé hé an leftmost anseo ansin? LUCHT ÉISTEACHTA: An Chéad. DAVID MALAN: OK. Mar sin, tús a chur leis an gcéad agus nuair a dhéanann tú ag iarraidh a thabhairt cothrom le dáta lámha David a bheith? LUCHT ÉISTEACHTA: I dtreo na 5. DAVID MALAN: OK. Mar sin, David, pointe ag a cúig nó Tiffany anseo, agus anois? Pointí Tiffany dtí an 9: LUCHT FÉACHANA? DAVID MALAN: Foirfe, ach amháin Binky ar ceann amháin de chineál ar thit amach, ceart? Mar gheall ar cad atá cearr le phictiúr seo literally? LUCHT ÉISTEACHTA: Ní dhéanfaidh aon ní ag cur in iúl. DAVID MALAN: Ní dhéanfaidh aon ní dírithe ar Jake anois. Táimid tar éis dílleachtaí literally 9 agus 17, agus tá muid literally leaked seo ar fad chuimhne, mar gheall ag thabhairt cothrom le dáta ar láimh David chéad, go bhfuil fíneáil sa mhéid go bhfuil sé i gceart ag cur in iúl ag Tiffany anois, ach má bhí aon duine an fadbhreathnaitheachta go pointe ag Jake, ansin tá muid chaill an hiomlán ar an liosta sin. Sin a ligean le Cealaigh. Ionas go raibh an rud maith a turas os a chionn ach a ligean ar cheartú anois. Cad ba cheart dúinn a dhéanamh ar dtús ina ionad? Yeah? LUCHT ÉISTEACHTA: Ba chóir Tiffany pointe ag an 9? DAVID MALAN: Ní féidir liom fháil go gar duit. Cé ba chóir pointe ag 9? LUCHT ÉISTEACHTA: Tiffany. DAVID MALAN: Ceart go. Mar sin, ba chóir Tiffany chéad phointe ag an 9. Mar sin ba chóir Tiffany ghlacadh ar luach comhionann David, atá cosúil iomarcach ar feadh nóiméad, ach sin fíneáil mar gheall ar anois, an dara chéim, is féidir linn a thabhairt cothrom le dáta ar láimh David go pointe ag Tiffany, agus ansin más rud é muid díreach de chineál ar rudaí a ghlanadh suas mar cé go bhfuil sé seo de chineál ar an earraigh-mhaith, anois go bhfuil a chur isteach i gceart. Mar sin, den scoth. Mar sin, anois tá muid beagnach ann. A ligean ar chur isteach deiridh amháin luach cosúil leis an luach 20. Má d'fhéadfadh muid a malloc deonach deiridh amháin? Tar ar bun. Mar sin, tá an ceann seo beagán níos mó tricky. Ach i ndáiríre, an cód táimid scríbhneoireacht, cé bhéal, ach mar a bhfuil a bunch de má chomhlíontar coinníollacha anois, ceart? Bhí orainn coinníoll seiceáil má mbaineann sé leis ag an deireadh, b'fhéidir an tús. Ní mór dúinn roinnt de chineál ar lúb go teacht ar an bhfód i lár. Mar sin, a ligean ar é sin a dhéanamh leis an méid atá d'ainm? ERIC: Eric. DAVID MALAN: Eric? Eric. Is deas liom bualadh leat. Mar sin, ní mór dúinn 20. Níos lú ná cúig? Uimh Níos lú ná naoi? Uimh Níos lú ná 17? Uimh OK. Baineann sé anseo agus Is iad do chuid ainmneacha arís? SUE: Sue. DAVID MALAN: Sue. ALEX: Alex. DAVID MALAN: Sue, Alex, agus? ERIC: Eric. DAVID MALAN: Eric. Ní mór cibé lámha a fháil ar dtús chun dáta? LUCHT ÉISTEACHTA: Eric. OK. Mar sin ba chóir Eric ar pointe ar an áit? Ag 22. Maith. Agus anois cad atá romhainn? Is féidir le Sue pointe ansin ag Eric agus anois, má tá tú guys díreach a dhéanamh ar roinnt seomra, a bhfuil fíneáil amhairc, anois tá muid déanta a chur isteach. Mar sin a ligean ar a mheas anois ceist ach go raibh maith agat an méid sin le haghaidh ár oibrithe deonacha. Go han-mhaith déanta. Is féidir leat a choinneáil ar na, más mian leat. Agus ní mór dúinn bronntanas scaradh álainn má gur mhaith leat gach buíochas a ghlacadh le liathróid strus. Lig dom pas a fháil ach seo síos. Mar sin, cad é an takeaway seo? Dealraíonn sé seo a bheith iontach sa mhéid is atá againn anois a tugadh isteach mhalairt ar an eagar nach bhfuil teoranta amhlaidh le sraith de roinnt méid seasta. Is féidir leo fás dinimiciúil. Ach i bhfad mar táimid ag feiceáil i seachtainí am atá caite, ní táimid ag a fháil rud ar bith ar saor in aisce, cosúil surely níl trádáil-uaire anseo. Mar sin, le upside de nasctha liosta é, an dinimiceas? Seo cumas chun fás agus frankly, d'fhéadfadh muid a bheith déanta scriosadh agus d'fhéadfadh muid ag crapadh mar is gá. Cén praghas atá ag íoc againn? Dhá uair mar spás i bhfad, ar an gcéad de gach. Má fhéachann tú ar an pictiúr, a thuilleadh Tá mé liosta de na slánuimhreacha a stóráil. Tá mé ag a stóráil liosta de slánuimhreacha móide leideanna. Mar sin, tá mé ag dúbailt an méid spáis. Anois, b'fhéidir nach é sin den sórt sin le déileáil go mór 4 bytes, 8 bytes, ach d'fhéadfadh sé a chur cinnte suas le haghaidh tacair shonraí mhóra. Cad é downside eile? Yeah? LUCHT ÉISTEACHTA: Ní mór dúinn lean iad aon-ar-cheann. DAVID MALAN: Yeah. Ní mór dúinn a lean iad aon-ar-cheann. Tá a fhios agat cad, thug muid suas an Super Gné áisiúil lúibín cearnach nodaireacht, níos mó i gceart ar a dtugtar rochtain randamach, nuair is féidir linn léim díreach le gné ar leith ach anois má bhí mé fós mo oibrithe deonacha anseo, má bhí mé a teacht ar an uimhir 22, ní féidir liom ach léim go dtí rud éigin lúibín rud éigin. Caithfidh mé chun breathnú ar an liosta, i bhfad ar nós ár samplaí chuardach líneach, chun teacht ar an uimhir 22. Mar sin, is cosúil go bhfuil íoctha ar phraghas ann. Ach is féidir linn mar sin féin réiteach fadhbanna eile. Go deimhin, lig dom a thabhairt isteach ach cúpla visuals. Mar sin má tá tú síos go dtí Halla itheacháin Mather ar le déanaí, beidh tú a thabhairt chun cuimhne go bhfuil a gcuid cruacha de tráidirí mar seo, a fuarthas ar iasacht againn ar na ó Annenberg roimh rang. Mar sin, seo chairn de tráidirí, áfach, Tá ionadaí i ndáiríre de struchtúr sonraí eolaíocht ríomhaireachta. Tá struchtúr sonraí san eolaíocht ríomhaireachta ar a dtugtar Stack a bhfuil an-nicely lends féin go díreach seo amhairc. Mar sin más rud é nach bhfuil gach ceann de na thráidire a tráidire ach mar a bheadh ​​líon agus bhí mé chun uimhreacha a stóráil, mé D'fhéadfadh a chur síos amháin anseo, agus raibh mé in ann a chur ar a chéile síos anseo, agus leanúint ar aghaidh uimhreacha cruachta ar bharr a chéile, agus cad atá d'fhéadfadh a bheith cabhrach faoi seo is é sin cad é an impleacht struchtúr seo sonraí? Cén uimhir is féidir liom a tharraingt amach an chéad chuid is mó caothúil? An chuid is mó le déanaí a chur amháin ar ann. Mar sin, is é seo cad ba mhaith linn glaoch i eolaíocht ríomhaireachta a LIFO struchtúr sonraí. Go deireanach i, an chéad amach. Agus beidh orainn a fheiceáil roimh fada cén fáth d'fhéadfadh a bheith úsáideach ach faoi láthair, ach mheas an maoin. Agus tá sé de chineál dúr má cheapann tú faoi ​​conas a dhéanann an halla bia é. Gach uair siad tráidirí glan agus a chur ar na cinn is freshest ar barr, d'fhéadfá a bheith glan cheana ach sa deireadh an-salach agus dusty tráidire ag bun an- má tá tú riamh i ndáiríre fháil chun an bun an Stack, toisc go bhfuil tú díreach tar éis choinneáil a chur ar an nua agus na cinn glan ar a bharr. D'fhéadfadh an rud céanna tarlú in ollmhargadh freisin. Má tá tú cás taispeántais bainne agus gach uair CVS nó whoever fhaigheann bainne níos mó, tú shove ach an milks tá tú cheana féin ar an ais agus chuir tú na cinn nua suas chun tosaigh, tú ag dul go bhfuil roinnt olc go leor bainne ag deireadh an struchtúr sonraí, mar tá sé i gcónaí ag bun nó equivalently tá sé i gcónaí ar chúl. Ach níl ar bhealach eile chun smaoineamh ar líneáil suas sonraí agus mar shampla, seo. Má tá tú ceann de na daoine a maith go dtí an líne suas lasmuigh de siopaí Apple nuair a thagann a táirge nua amach, tá tú is dócha Ní ag baint úsáide as sonraí Stack Struchtúr toisc go bhfuil tú Bheadh ​​alienate gach duine eile a bhfuil líneáil suas a cheannach roinnt bréagán nua. Ina ionad sin, tá tú is dócha ag baint úsáide as cén cineál struchtúr sonraí nó cén cineál córais ar fud an domhain fíor? Tá súil agam go bhfuil sé ar líne, nó níos mó i gceart nó níos mó na Breataine-mhaith, scuaine. Agus casadh sé amach go bhfuil scuaine chomh maith le struchtúr sonraí san eolaíocht ríomhaireachta, ach tá an-scuaine maoin éagsúla. Níl sé LIFO. Go deireanach i, an chéad amach. Dia forbid. Tá sé ina ionad FIFO. Túisce isteach is túisce amach. Agus sin an rud maith do cothroime ar mhaithe ' cinnte nuair a bhíonn tú líneáil suas go luath Super maidin. Má fhaigheann tú ann ar dtús, tá tú ag iarraidh a fháil amach ar dtús chomh maith. Agus mar sin gach ceann de na sonraí struchtúir, scuainí agus cruacha agus bunches daoine eile casadh, amach tú Is féidir smaoineamh ar seo mar ach le sraith. Is é seo le sraith, b'fhéidir méid seasta 4, ach gur mhaith sé a bheith de chineál ar deas dá dtiocfadh linn a carn díreach tráidirí beagnach ard infinitely má táimid tá go tráidirí nó uimhreacha go leor. Mar sin, b'fhéidir ba mhaith linn a le liosta nasctha anseo, ach tá an trádáil-uaire ag dul a bheith d'fhéadfadh a bheith go bhfuil gá againn níos mó cuimhne, thógann níos mó ama beag, ach táimid Ní gá teorainn a chur le airde an chairn, i bhfad ar nós cás taispeáint Mather ar D'fhéadfadh teorainn a chur le méid an chairn, agus mar sin tá na cinntí a dhearadh nó roghanna atá ar fáil dúinn ar deireadh thiar. Mar sin, leis na sonraí struchtúir, tá muid tús a bhfaca bounds nua uachtair fhéadfadh ar an méid a bhí roimhe Super tapa agus i gcás ina mbainfidh linn a fhágáil off inniu agus i gcás beidh orainn súil a fháil chun Is ar an gCéadaoin, beidh muid a tús a chur chun breathnú ar shonraí struchtúr a ligeann dúinn a chuardach trí shonraí in am deireadh logáil arís. Agus chonaic muid go, chun cuimhne, i seachtain náid agus ceann amháin le cuardach dhénártha nó a roinnt agus conquer. Tá sé seo ag teacht ar ais agus níos fearr fós, iomaíocht don duais mhór don Dé Céadaoin seo Beidh chun teacht suas leis an Struchtúr sonraí a ritheann go fírinneach nó teoiriciúil i am tairiseach, trína ní dhéanann sé cuma cé mhéad na milliúin nó na billiúin rudaí atá againn sa struchtúr sonraí, beidh sé ghlacadh chugainn am tairiseach, b'fhéidir céim amháin nó dhá chéim nó 10 céimeanna, ach líon de shíor céimeanna chun cuardach tríd an struchtúr sonraí. Beidh sin a bheith deimhin iomaíocht don duais mhór ach tá níos mó ar sin ar an gCéadaoin. Féach ar ya ansin. [Ag seinm ceoil]