DAVID MALAN: Ceart go leor, fáilte ar ais. Tá sé seo CS50. Is é seo an tús na seachtaine seacht. Mar sin, tá sé curtha ar feadh tamaill, mar sin shíl mé gur mhaith linn a chur ar turas whirlwind de nuair a muid fágtha amach agus nuair a táimid ag dul anois. Mar sin, d'fhéadfadh sé seo a bheith rud anseo de bharr roinnt angst ar dtús. Ach tá súil againn, tá tú ag tosú ar acclimate leis an méid a seasann seo anseo - réalta ionannas le pointeoir, a bhfuil ach cad, i dtéarmaí níos layman? Mar sin, tá sé na sráide. Mar sin, tá sé an seoladh ar rud éigin i gcuimhne. Agus thosaigh muid a craiceann ar ais na sraitheanna cúpla seachtain ó shin, rudaí mar Feidhmeanna den sórt sin GetString agus eile am seo go léir a bheith ag filleadh seoltaí na rudaí i gcuimhne, cosúil leis an seoladh an chéad charachtar i roinnt seicheamh. Mar sin, thugamar isteach freisin valgrind, a go mbainfidh tú tús a úsáid chun an fhadhb seo a leagtar, go háirithe le haghaidh an chéad fhadhb a shocrú chomh maith. Agus a dhéanann valgrind cad dúinn? Seiceálacha sé do leaks cuimhne, agus é freisin seiceálacha haghaidh mí-úsáid chuimhne. Is féidir é, le roinnt dóchúlacht, bhrath má Tá do cód ag dul chuimhne chun teagmháil nach ceart sé ach. Mar sin, ní gá go mbeadh sceitheadh, ach má tá tú dul thar na teorainneacha de roinnt eagar, agus tú ag rith i ndáiríre valgrind agus d'fhéadfadh an t-iompar agus valgrind ag rith i do chlár é reáchtáil taobh istigh de sé, beidh tú a fháil teachtaireachtaí mar seo - "neamhbhailí scríobh ar méid 4, "a, chun cuimhne cúpla seachtain ó shin Chiallaigh sin go raibh mé de thaisme mhaith ar slánuimhir amháin i bhfad ró- lasmuigh de theorainneacha eagar. Agus Ciallaíonn sé sin méid 4 anseo an méid den slánuimhir áirithe. Mar sin a ghlacadh athdhearbhú ar an bhfíric go aschur valgrind, an fhormáid de, ach atrocious. Tá sé i ndáiríre deacair a fheiceáil tríd an praiseach i gcás na faisnéise suimiúil. Mar sin, cad atá déanta againn anseo ach sliocht roinnt de na cúpla níos mó línte suimiúil. Ach a thuiscint go 80% de valgrind ar Tá aschur ag dul a bheith beagán de distraction. Just a chuardach le haghaidh patrúin cosúil le seo - neamhbhailí ceart, a léamh neamhbhailí, 40 bytes agus tá roinnt ar líon na bloic cinnte caillte, eochairfhocail mar sin. Agus cad tá súil againn go mbainfidh tú a fheiceáil go bhfuil roinnt de chineál ar rian de cad feidhmiú an Is botún i ndáiríre isteach Sa chás seo, anseo, i cad í an líne de Ba é mo cód an earráid cosúil? 26 i gcomhad ar a dtugtar memory.c, a bhí an sampla a bhí muid ag imirt le ag an am. Mar sin, tá sé nach dócha i malloc. Bhí sé dócha i mo cód ionad. Mar sin, beidh orainn a fheiceáil seo arís agus arís roimh i bhfad. Mar sin, scanf, tháinig seo suas i scríbhinn cúpla foirmeacha go dtí seo. Chonaic muid sscanf go hachomair. Bhí sé rud éigin a roinnt dived tú isteach i do hullmhúcháin do tráth na gceist. Agus is é scanf i ndáiríre cad é an CS50 leabharlann atá ag baint úsáide as faoi bhun an cochall do leor ama a roinnt d'fhonn ionchur a fháil ón úsáideoir. Mar shampla, má tá mé ag bogadh ar aghaidh go dtí an CS50 fearas anseo, lig dom a oscailt suas mar shampla lá atá inniu ann go bhfuil ar a dtugtar scanf-0.c Agus tá sé simplí Super. Tá sé ach cúpla líne de chód. Ach léiríonn sé i ndáiríre cé chomh getInt tá sé ag obair ar fad an am seo. Sa chlár seo anseo, ag teacht 16 , Fógra go bhfuil mé a dhearbhú ina slánuimhir. Mar sin, aon leideanna, rud draíochta ann, ach ina slánuimhir. Ansin, i líne 17, mé pras úsáideora do roinnt, le do thoil. Ansin, go déanach 18, a úsáid mé scanf anseo. Agus sonraithe agam, cineál cosúil printf, go bhfuil mé ag súil le ceanglófar bain comharthaí athfhriotail ó faoin gcéad i. Mar sin, faoin gcéad i, ar ndóigh, seasann ina slánuimhir. Ach faoi deara cad é an dara Tá argóint go scanf. Conas a chuirfeá síos ar an dara argóint i ndiaidh na camóga? Cad é sin? Tá sé an seoladh an x. Mar sin, tá sé seo úsáideach mar gheall ar trí scanf leis an seoladh ar x, cad a dhéanann a chumhachtú feidhme sin a dhéanamh? Ní hamháin dul ann, ach freisin a dhéanamh cad? Athrú a dhéanamh air. Toisc gur féidir leat dul ann, tá sé saghas cosúil le léarscáil le suíomh i gcuimhne. Agus chomh fada agus a chur ar fáil duit scanf, nó aon fheidhm den sórt sin a léarscáil, go Is féidir feidhm dul ann, agus ní hamháin breathnú ar an luach, ach is féidir é freisin athrú ar an luach sin, atá úsáideach má Is é an cuspóir i saol na scanf a ionchur scanadh ón úsáideoir, go sonrach as an méarchlár. Agus seasann an f formáidithe, díreach cosúil le printf, seasann an f formáidithe teaghrán gur mian leat a phriontáil. Mar sin, i mbeagán focal, líne seo 18 a deir go simplí, iarracht a léamh ina slánuimhir as an úsáideora méarchlár agus é a stóráil taobh istigh de x, ag is cuma cad a tharlaíonn seoladh x chun cónaí ar. Agus ansin ar deireadh, líne 19 a deir go díreach, raibh maith agat as an slánuimhir, sa chás seo. Mar sin, lig dom dul ar aghaidh agus é a dhéanamh. Sin a dhéanamh scanf 0. Lig dom dul ar aghaidh agus súmáil isteach Beidh mé ag dul agus a reáchtáil seo le poncanna Slais scanf 0. Uimhir, le do thoil? 50. Go raibh maith agat ar feadh 50. Mar sin, tá sé simplí go leor. Anois, cad é nach bhfuil sé ag déanamh? Níl sé ag déanamh a bunch iomlán sheiceáil earráid. Mar shampla, más rud é nach féidir liom a oibriú le chéile, agus ní féidir liom a chlóscríobh i roinnt, ach ina ionad sin scríobh mé rud éigin cosúil le "Dia duit," go díreach de chineál ar aisteach. Agus mar sin ar cheann de na rudaí an CS50 leabharlann ag déanamh dúinn do roinnt Is am go reprompting agus reprompting. An retry frása cuimhne a bhí i cs50.c, agus sin an chúis go bhfuil getInt i Is é an leabharlann CS50 iarbhír ina n-iomláine bunch de línte fada, mar táimid ag seiceáil le haghaidh rudaí dúr mar seo. Ní raibh an t-úsáideoir a thabhairt dúinn, i ndáiríre, ina slánuimhir? An raibh sé nó sí a thabhairt dúinn rud éigin cosúil le litir aibítre? Más amhlaidh, ba mhaith linn a bhrath sin agus yell ag dóibh. Ach a fháil ar rudaí níos suimiúla sa sampla seo chugainn. Má Téim go dtí scanf-1.c, cad é an ceann rud go bhfuil athrú bunúsach i an chéad sampla eile? Tá mé ag baint úsáide as ruabhreac *, ar ndóigh, in ionad slánuimhir. Mar sin, tá sé seo suimiúil, mar gheall ar ruabhreac *, thabhairt chun cuimhne go bhfuil, i ndáiríre ach an rud céanna le teaghrán. Mar sin, mothaíonn sé cosúil le b'fhéidir tá sé seo le Super cur i bhfeidhm simplí de GetString. Ach tá mé ar ais scafa an ciseal an leabharlann CS50, mar sin tá mé glao an ruabhric * anois. Mar sin, a ligean ar a fheiceáil nuair a, más rud é in áit ar bith, théann muid mícheart. Líne 17 - Mé a rá arís, le do thoil a thabhairt dom rud éigin, sa chás seo, ar shraith. Agus ansin sa chéad líne eile, glaoch mé scanf, arís, a thugann sé cód formáid, ach am seo faoin gcéad s. Agus ansin an am seo, tá mé a thugann sé Maolán. Anois, faoi deara, níl mé ag baint úsáide as an ampersand. Ach é sin an fáth go bhfuil ceart go leor is dócha anseo? Mar gheall ar cad é maolán cheana féin? Tá sé cheana féin pointeoir. Tá sé cheana féin na sráide. Agus a ligean ar an focal "amú," lig dom ach glaoch sé s, mar shampla, le haghaidh simplíocht. Ach tá mé ar a dtugtar sé mhaolánú mar gheall ar ginearálta, i gcláir, má tá tú smután de chuimhne, a teaghrán ndáiríre ach go bhfuil, go dtiocfadh leat glaoch sé maolán. Tá sé ina bhfeidhm chun eolas a stóráil. Cosúil le rudaí cosúil le YouTube, nuair a tá siad ag buffering, mar a déarfá, go ciallaíonn ach tá sé ag íoslódáil giotán ó an idirlíon agus iad a stóráil i sraith áitiúil, le smután áitiúil de chuimhne sin gur féidir leat féachaint air ina dhiaidh sin gan á ligean thart nó crochta ar tú ag imirt ar ais. Mar sin, níl fadhb anseo, áfach, mar go bhfuil mé ag insint scanf, ag súil le teaghrán ón úsáideoir. Seo an seoladh de le smután de chuimhne. Cuir go teaghrán ann. Cén fáth go bhfuil go bhfuil faoi cheangal a thabhairt dúinn dtrioblóid, cé? Cad é sin? Am cead agam teacht ar an chuid sin de chuimhne? Tá a fhios agat, níl a fhios agam. Toisc go bhfuil maolán curtha initialized le rud ar bith? Níl sé i ndáiríre. Agus mar sin tá sé cad tá muid ag iarraidh luach truflais, a nach bhfuil focal foirmiúil. Ciallaíonn sé ach ní mór dúinn aon smaoineamh cad giotán Is iad taobh istigh de na ceithre bytes go Dháil mé mar Maolán. Nach bhfuil mé ar a dtugtar malloc. Agam nach mé ar a dtugtar cinnte GetString. Mar sin, a bhfuil aithne aige cad é i ndáiríre taobh istigh de Maolán? Agus fós ag insint scanf blindly, dul ann agus a chur cuma cén t-úsáideoir clóscríofa. Mar sin, is dócha a chur faoi deara cad inár gcód má táimid rith sé? Is dócha go bhfuil segfault. B'fhéidir nach bhfuil, ach is dócha go bhfuil segfault. Agus a rá liom b'fhéidir nach mar gheall ar uaireanta a dhéanann tú, uaireanta Ní gá duit a fháil ar segfault. Uaireanta tú a fháil ach t-ádh, ach tá sé ag dul mar sin féin a bheith a bug in ár gclár. Mar sin, lig dom dul ar aghaidh agus a thiomsú seo. Tá mé ag dul a dhéanamh ar an mbealach aois scoile. Mar sin, Fleasc clang 0, scanf-1, scanf-1.c, Iontráil. Oops, scoil ró-aosta. A ligean ar a fheiceáil. I gcás ina raibh mé ag dul? Oh, * Maolán ruabhreac. Ó, go raibh maith agat - Sábháil, OK - scoil an-sean. Gach ceart, tá sé curtha ar feadh tamaill. Mar sin, tá mé shábháil ach an comhad tar éis dhéanamh go sealadach athrú nóiméad ó shin. Agus anois tá mé le chéile sé láimh le Clang. Agus anois tá mé ag dul chun dul ar aghaidh agus a reáchtáil scanf-1, Iontráil. Teaghrán le do thoil. Feicfidh mé cineál i "hello." Agus anois, Tá anseo más rud é, frankly, printf Is féidir é a annoying beag. Níl sé ag dul iarbhír a segfault sa chás seo. Printf bhfuil beagán speisialta mar tá sé chomh Super a úsáidtear go coitianta go go bunúsach é printf ag déanamh dúinn i dtús báire agus a bhaint amach, ní go pointeoir bailí. Lig dom é a chur ar mé féin a phriontáil go díreach amach i lúibíní null, fiú cé nach bhfuil sé gá go cad táimid ag súil féin. Mar sin, ní féidir linn a aslú i ndáiríre go héasca segfault leis seo, ach go soiléir seo nach bhfuil an t-iompar a theastaigh uaim. Mar sin, cad é an réiteach simplí? Bhuel, i scanf-2, lig dom a mholadh go in ionad iarbhír a dháileadh ach ruabhric *, lig dom a bheith ina beagán níos cliste faoi seo, agus lig dom a dháileadh maolán mar shraith de 16 chars. Mar sin, is féidir liom é seo a dhéanamh i cúpla bealaí. Raibh mé in ann úsáid a bhaint as go hiomlán malloc. Ach is féidir liom dul ar ais go dtí seachtain dhá nuair a Is gá mé díreach a bunch iomlán de carachtair. Sin díreach eagar. Mar sin, lig dom in ionad ath-shainmhíniú Maolán a bheith ina sraith de 16 carachtair. Agus anois, nuair a théann mé Maolán i - agus tá sé seo rud nach raibh coinne againn labhairt faoi i seachtain dhá - ach is féidir leat a chóireáil le sraith mar cé go bhfuil sé aitheasc. Go teicniúil, mar atá feicthe againn, tá siad le beagán difriúil. Ach ní bheidh scanf aigne má éiríonn leat é a an t-ainm ar eagar, mar gheall ar cad Beidh Clang a dhéanamh le haghaidh bhfuil dúinn go bunúsach déileáil leis an ainm an eagar mar an seoladh an smután de 16 bytes. Mar sin, is é seo níos fearr. Ciallaíonn sé seo anois gur féidir liom súil go dtosnódh dhéanamh ar an méid seo a leanas. Lig dom zúmáil amach ar feadh nóiméad agus dhéanamh a dhéanamh scanf-2, le chéile OK. Anois, lig dom a dhéanamh fuair Slais scanf-2. Teaghrán le do thoil. "Dia duit." Agus é an chuma a bheith ag obair an am seo. Ach is féidir duine éigin a mholadh le cás i nach mbeadh sé ag obair go fóill? Yeah? Rud níos faide ná 16 carachtair. Agus i ndáiríre, is féidir linn a bheith beagán níos beaichte. Rud níos faide ansin 15 carachtair, toisc gur gá dúinn a choinneáil i gcuimhne gur gá dúinn go cúlslais náid hintuigthe ag deireadh an teaghrán, a bhfuil a bheidh le scanf leataobh de ghnáth cúram dúinn a ghlacadh. Mar sin, lig dom rud éigin cosúil le - uaireanta is féidir linn ach é a fhágáil mar sin. OK, mar sin againn a tharlódh anois ár locht deighilt. Cén fáth? Toisc chlóscríobh mé go dtí níos mó ná 15 carachtair, agus mar sin tá muid i ndáiríre cuimhne i dteagmháil léi go bhfuil mé i ndáiríre Níor chóir go mbeadh. Mar sin, cad atá i ndáiríre an réiteach anseo? Bhuel, cad má tá gá againn le teaghrán níos faide? Bhuel, a dhéanamh linn é a b'fhéidir 32 bytes. Bhuel, cad más rud é nach bhfuil go fada go leor? Cad é faoi 64 bytes? Cad a tharlaíonn má ní ar sin fada go leor? Cad é faoi 128 nó 200 bytes? Cad é i ndáiríre an réiteach anseo sa gcás go ginearálta, más rud é nach bhfuil a fhios againn i chun cinn cad é an t-úsáideoir ag dul a chlóscríobh? Tá sé díreach de chineál ar pian mór sa asal, a bheith macánta, agus sin an fáth an Tá línte cúpla dosaen de leabharlann CS50 Cód a chur i bhfeidhm i dteannta a GetString teaghrán ar bhealach nach ndéanaimid Tá a fhios roimh ré cad é an Tá úsáideoir ag dul a chlóscríobh. Go háirithe, má fhéachann tú ar ais ag cs50.c ó dhá sheachtain ó shin, feicfidh tú a dhéanann go GetString iarbhír Ná húsáid scanf ar an mbealach seo. Ina ionad sin, léann sé carachtar amháin ag an am. Mar gheall ar an rud amháin deas faoi léamh charachtar amháin is féidir linn muid féin a ráthú go i gcónaí Tá Char amháin ar a laghad. Is féidir liom a dhearbhú ach ruabhreac, agus ansin a ghlacadh na céimeanna seo fíor leanbh go dtí díreach léamh charachtar amháin i ag am as an méarchlár. Agus ansin, cad a mbainfidh tú a fheiceáil GetString Is é a dhéanann gach uair a ritheann sé amach de, rá, 16 bytes de chuimhne, úsáideann sé malloc, nó de col ceathrar, a leithdháileadh níos mó cuimhne, a chóipeáil an sean- cuimhne isteach an nua, agus ansin crawling chomh maith, ag fáil charachtar amháin ag an am, agus nuair a ritheann sé amach as an smután de chuimhne throws, sé ar shiúl, alpairí le smután níos mó de chuimhne, cóipeanna d'aois isteach nua, agus molann sé arís. Agus tá sé fíor pian a iarbhír rud éigin chomh simplí agus is i bhfeidhm ag fáil ionchur ó úsáideoirí. Mar sin, is féidir leat é a úsáid scanf. Is féidir leat úsáid a bhaint as feidhmeanna eile dá leithéid. Agus a lán de na téacsleabhair agus ar líne samplaí a dhéanamh, ach tá siad ar fad mbaol fadhbanna mar seo. Agus ar deireadh thiar, ag fáil a segfault Is de chineál ar annoying. Níl sé go maith don úsáideoir. Ach i gcás is measa, cad a dhéanann é a chur go bunúsach do Cód mbaol? Roinnt de chineál ar ionsaí, d'fhéadfadh a bheith. Labhair muid faoi ionsaí amháin den sórt sin - cur thar maoil an chairn. Ach i gcoitinne, má tá tú cead a thar maoil maolán, mar a rinne muid Cúpla seachtain ó shin, le díreach scríbhneoireachta níos mó ná "hello" ar an chairn, tú Is féidir a ghlacadh go deimhin níos mó, d'fhéadfadh a bheith, ina ríomhaire, nó ar a laghad a fháil ar na sonraí go Ní mbaineann a thabhairt duit. Mar sin, i mbeagán focal, is é seo an fáth go bhfuil muid ag na rothaí oiliúna. Ach anois, muid ag cur tús a iad a thabhairt amach, mar ár gcláir a thuilleadh gá, gá, ionchur ón úsáideoir. Ach i gcás faidhbe a leagtar sé, beidh do ionchur teacht ó ollmhór comhad foclóir le 150 éigin corr míle focal. Mar sin, ní bheidh ort a bheith buartha faoi an úsáideora ionchur treallach. Beidh muid a thabhairt duit roinnt boinn tuisceana faoi ​​sin comhad. Ceisteanna ar bith ar threo nó scanf nó ionchur úsáideora i gcoitinne? Gach ceart, mar sin a bhíos ansin ag ceann amháin ábhar chun deiridh ó dhá sheachtain ó shin. Agus bhí go bhfuil an coincheap de struct. Gan go - nóisean seo de struct, a bhí cad é? Cad a rinne struct dhéanamh dúinn? Sainmhínigh - brón orm? Sainmhínigh le cineál athraitheach. Mar sin, a shórtáil de. Táimid ag le chéile i ndáiríre dhá ábhar. Mar sin, leis Rialú an, chun cuimhne gur féidir linn a dhearbhú i ndáil le cineál ar ár gcuid féin, cosúil le synonym, cosúil le téad chun Char *. Ach ag baint úsáide as Rialú an struct agus, is féidir linn ár struchtúir sonraí féin a chruthú go fírinneach. Mar shampla, má théann mé ar ais i gedit anseo le haghaidh nóiméad ach, agus téim amach romhainn agus rud éigin cosúil le, lig dom a shábháil seo mar, ligean le rá, structs.c go sealadach, tá mé ag dul díreach chun dul ar aghaidh agus san áireamh standardio.h, príomh neamhní slánuimhir. Agus ansin i anseo, is dócha gur mhaith liom a scríobh le clár a stórálann na mic léinn iolracha ó il tithe, mar shampla. Mar sin, tá sé cosúil le registrarial bunachar sonraí de chineál éigin. Mar sin, más gá dom an t-ainm dalta amháin, mé D'fhéadfadh rud éigin cosúil le * ainm ruabhreac, agus beidh mé ag déanamh rud éigin cosúil le - i ndáiríre, a ligean ar an leabharlann a úsáid CS50 le haghaidh nóiméad ach a dhéanamh ar an beag simplí, ionas gur féidir linn a fháil ar iasacht na mórán de na línte de chód. Agus tá a ligean ar a choinneáil ach simplí é. Beidh muid a choinneáil téad, agus anois GetString. Mar sin, éileamh mé anois go bhfuil mé an t-ainm atá stóráilte de roinnt mac léinn, agus an teach roinnt mac léinn, go simplí ag baint úsáide as athróg mar a rinne muid agus i gceann seachtaine. Ach is dócha ba mhaith liom anois chun tacú le Iomlán éagsúla. Gach ceart, mar sin tá mo instincts a dhéanamh teaghrán name2 faigheann, GetString, téad house2 Faigheann GetString. Agus ansin ár dtríú mac léinn, a ligean ar a dhéanamh name3 GetString. Gach ceart, mar sin tá sé seo tá súil againn buailte tú mar chineál dúr, toisc go bhfuil an próiseas seo i ndáiríre riamh dul go dtí deireadh, agus é ag dul ach a a dhéanamh ar mo cód breathnú níos measa agus níos measa agus níos measa. Ach réiteach againn seo freisin i seachtain a dó. Cad a bhí againn réiteach sách glan nuair a bhí againn athróg iolraí de na cineál sonraí céanna a bhaineann go léir, ach Ní raibh muid ag iarraidh an praiseach atrocious na n-athróg atá ainmnithe mar an gcéanna? Céard a rinne muid in áit? Mar sin, I mo thuairimse, chuala mé roinnt áiteanna. Bhí orainn eagar. Más mian leat cásanna iolraí de rud éigin, cén fáth nach bhfuil muid ag glan seo go léir suas agus díreach rá, a thabhairt dom eagar ar a dtugtar ainmneacha? Agus do anois, a ligean ar 3 cód crua. Agus ansin a thabhairt dom sraith eile ar a dtugtar tithe, agus lig dom le haghaidh anois Cód crua 3. Agus tá mé glanadh suas an massively praiseach a chruthaigh mé díreach. Anois, tá mé fós ag códaithe crua 3, ach fiú D'fhéadfadh an 3 teacht dinimiciúil ó na úsáideora, nó argv, nó a leithéidí. Mar sin, is é seo níos glaine cheana féin. Ach cad annoying faoi seo is go anois, tá cé ainm bhealach nasctha go bunúsach le teach an dalta - tá sé ina mhac léinn go bhfuil mé i ndáiríre Ba mhaith chun ionadaíocht a dhéanamh - Tá mé anois dhá arrays atá comhthreomhar sa chiall go bhfuil siad an méid céanna, agus ainmneacha lúibín 0 dócha léarscáileanna chun tithe lúibín 0, agus ainmneacha lúibín 1 léarscáileanna chun tithe lúibín 1. I bhfocail eile, saol an mhic léinn sin i teach sin, agus an mhic léinn eile saol sa teach sin eile. Ach surely d'fhéadfadh sé seo a bheith dhéanamh fiú níos mó cleanly. Bhuel, is féidir é, i ndáiríre. Agus lig dom dul ar aghaidh agus a oscailt suas structs.h, agus beidh tú féach ar an smaoineamh anseo. Fógra go bhfuil mé úsáid Rialú an, mar atá tú luaigh sí go nóiméad ó shin a dhearbhú ár cineál sonraí féin. Ach tá mé ag baint úsáide as an eochairfhocal eile freisin ar a dtugtar struct a thugann dom nua struchtúr sonraí. Agus is é an struchtúr sonraí a éileamh mé ag dul go bhfuil dhá rudaí taobh istigh de air - ar a dtugtar teaghrán ainm, agus teaghrán a dtugtar teach. Agus an t-ainm Tá mé ag dul a thabhairt do Tá an struchtúr sonraí ag dul a bheith ar a dtugtar mac léinn. Raibh mé in ann a ghlaoch air aon rud is mian liom, ach tá sé seo a dhéanamh semantically ciall dom i mo intinn. Mar sin anois, má tá mé a oscailt suas ar leagan níos fearr an chláir thosaigh mé ag scríobh ann, lig dom a scroll dtí an barr. Agus níl línte roinnt níos mó de chód anseo, ach lig dom díriú ar i láthair na huaire ar cheann amháin. Tá mé dearbhaíodh mic léinn dtugtar leanúnach agus crua códaithe 3 do anois. Ach anois, faoi deara conas glan Tosaíonn mo cód a fháil. Ag teacht 22, Dearbhaím sraith de mhic léinn. Agus faoi deara go bhfuil mhic léinn cosúil anois le cineál sonraí. Mar gheall ar an barr den comhad seo, fógra Tá mé san áireamh go comhad header gur tharraing mé suas díreach nóiméad ó shin. Agus go comhad header raibh go leor ach an sainmhíniú seo an mhic léinn. Mar sin anois, a chruthaigh mé mo chuid sonraí féin saincheaptha cineál go bhfuil an údair de C bliana ó shin ní raibh smaoineamh ar roimh ré. Ach aon fhadhb. Is féidir liom é a dhéanamh mé féin. Mar sin, is é seo le sraith a dtugtar na mic léinn, gach ceann de na comhaltaí a bhfuil Tá struchtúr mac léinn. Agus ba mhaith liom trí cinn de na sa eagar. Agus anois, cad a dhéanann an chuid eile an clár seo a dhéanamh? Gá mé rud éigin a bhí beagán treallach. Mar sin, ó líne 24 ar aghaidh, I iterate 0-3. Iarraim ansin an t-úsáideoir le haghaidh ainm an mhic léinn. Agus ansin úsáid mé GetString is a bhíodh. Ansin iarr mé teach an mhic léinn, agus úsáid mé GetString is a bhíodh. Ach fógra - beagán nua píosa error - Féidir liom fós innéacs ar an mac léinn i-ú, ach conas is féidir liom a fháil ar na sonraí sonracha taobh istigh réimse an struct? Bhuel, cad cosúil leis an píosa nua error? Tá sé díreach an t-oibreoir ponc. Ní tá muid le feiceáil i ndáiríre seo roimhe seo. Tá tú le feiceáil sé i pset cúig má tá tú dived i cheana féin le comhaid bitmap. Ach ciallaíonn an ponc díreach taobh istigh den struct nó réimsí éagsúla, a thabhairt ponc ainm, nó a thabhairt dom ponc teach. Ciallaíonn sé sin dul taobh istigh den struct agus a fháil ar na réimsí ar leith. Cad a dhéanann an chuid eile den chlár seo a dhéanamh? Níl sé ar fad go sexy. Fógra go bhfuil mé iterate 0-3 arís, agus mé a chruthú ach an Béarla Is frása cosúil le sin agus mar sin i den sórt sin agus teach den sórt sin, ag dul in ainm ponc ó an mac léinn i-ú agus a n- teach chomh maith. Agus ansin ar deireadh, anois beidh orainn tús a fháil anal faoi seo, anois go bhfuil muid eolach ar cad malloc agus feidhmeanna eile a bheith ag déanamh gach am seo. Cén fáth a bhfuil mé a shaoradh dá ainm agus teach, cé mé Ní raibh glaoch malloc? GetString raibh. Agus bhí go bhfuil an rún salach beag do roinnt seachtainí, ach tá GetString ag sceitheadh ​​cuimhne ar fud an cuir gach seimeastar go dtí seo. Agus beidh valgrand ar deireadh nochtann seo chugainn. Ach nach bhfuil sé le déileáil go mór, mar tá a fhios agam gur féidir liom saor in aisce go simplí ar an t-ainm agus an teach, cé go teicniúil, go a Super, Super sábháilte, ba chóir dom a bheith ag déanamh roinnt earráid seiceáil anseo. Cad iad do instincts insint duit? Cad ba chóir dom a bheith ag seiceáil do roimh saor in aisce agam cad is teaghrán, a aka le ruabhreac *? Ba chóir dom a bheith i ndáiríre seiceáil mac léinn Ní lúibín i ponc-ainm Eolas faoin margadh saothair comhionann. Ansin, beidh sé a bheith ceart go leor chun dul ar aghaidh agus saor in aisce go pointeoir, agus céanna nó an duine eile ceann amháin chomh maith. Más rud é nach bhfuil na mic léinn lúibín i ponc teach cothrom le null, beidh sé seo a chosaint anois i gcoinne an cás cúinne ina GetString tuairisceáin rud éigin cosúil null. Agus chonaic muid nóiméad ó shin, beidh printf linn a chosaint suas anseo ag díreach ag rá null, atá ag dul chun breathnú aisteach. Ach ar a laghad, ní bheidh sé segfault, mar atá feicthe againn. Bhuel, lig dom rud amháin eile anseo. structs-0 Is cineál clár dúr mar a thiocfaidh mé na sonraí seo go léir, agus ansin tá sé caillte nuair a thagann deireadh leis an gclár. Ach lig dom dul ar aghaidh agus é seo a dhéanamh. Lig dom a dhéanamh ar an teirminéal fuinneog le beagán níos mó. Lig dom a dhéanamh structs-1, a Tá leagan nua de seo. Feicfidh mé zúmáil isteach le beagán. Agus anois lig dom a reáchtáil ponc Slais structs-1. Ainm an Mhic Léinn - David Mather, a ligean ar a dhéanamh Rob Kirkland, a ligean ar a dhéanamh Lauren LEVERETT. Cad é suimiúil é anois fhógra - agus tá a fhios agam ach seo mar gheall ar Scríobh mé an clár - níl comhad anois ar mo reatha eolaire a dtugtar students.csv. D'fhéadfadh roinnt de tú ag feiceáil seo ar fud an domhain fíor. Cad comhad CSV? Luachanna camóga-scartha. Tá sé saghas cosúil le fear bocht ar leagan den comhad Excel. Tá sé ina tábla na sraitheanna agus colúin sin Is féidir leat a oscailt i gclár nós Excel, nó Uimhreacha ar Mac. Agus má tá mé ag oscailt an comhad seo anseo ar gedit, fógra - agus na huimhreacha nach bhfuil ann. Sin gedit díreach ag insint dom uimhreacha líne. Fógra ar an chéad líne seo Tá comhad David agus Mather. Is é an chéad líne eile Rob le camóga Kirkland. Agus is é an tríú líne Lauren camóga LEVERETT. Mar sin, cad a chruthaigh mé? Tá mé scríofa anois clár C go Is féidir a ghiniúint go héifeachtach scarbhileoga nach féidir a oscailt i clár cosúil Excel. Níl gach go láidir tacar sonraí, ach má tá tú smután i bhfad níos mó de sonraí gur mian leat iarbhír a ionramháil agus graif agus an a dhéanamh Is maith, tá sé seo b'fhéidir ar cheann bhealach a chruthú go sonraí. Thairis sin, tá CSVs i ndáiríre Super coitianta ach le haghaidh stóráil sonraí simplí - Yahoo Airgeadais, mar shampla, má fhaigheann tú Sleachta stoc trína sin ar a dtugtar API, an tseirbhís saor in aisce a ligeann duit a fháil ar stoc suas-chun-dáta-reatha Sleachta do chuideachtaí, siad a thabhairt ar na sonraí ar ais sa Super bhformáid CSV simplí. Mar sin, conas a rinne muid sin? Bhuel deara, an chuid is mó den chlár seo beagnach mar an gcéanna. Ach faoi deara síos anseo, seachas cló na mic léinn amach, ar líne 35 ar aghaidh, éileamh mé go bhfuil mé a shábháil ar an mic léinn ar an diosca, mar sin shábháil ar comhad. Mar sin, faoi deara mé á dhearbhú COMHAD * - anois, tá sé seo de chineál ar aimhrialtacht sa C. Ar chúis ar bith, tá COMHAD go léir caipíní, nach bhfuil mar chuid is mó cineálacha eile sonraí i C. Ach tá sé seo a tógadh i cineál sonraí, COMHAD *. Agus tá mé á dhearbhú pointeoir chun an comhad, conas is féidir leat smaoineamh ar. Ciallaíonn fopen comhad a oscailt. Cad comhad is mian leat a oscailt? Ba mhaith liom a oscailt comhad go ndéanfaidh mé treallach glaoch students.csv. Raibh mé glaoch go bhfuil aon rud ba mhaith liom. Agus ansin a chur ar buille faoi thuairim. Cad a dhéanann an dara argóint le fopen chiallaíonn is dócha? Ceart, w maidir le scríobh fhéadfadh, a r le haghaidh léamh. Níl le do iarcheangail má tá tú Ba mhaith le sraitheanna agus ní cuir scríobh ar an rud ar fad. Ach ba mhaith liom ach a chruthú comhad seo uair amháin, mar sin beidh mé úsáid as comharthaí athfhriotail ceanglófar w. Agus tá a fhios agam go ach amháin tar éis a léamh ó an doiciméadú, nó an leathanach fear. Mura bhfuil comhaid Eolas faoin margadh saothair - i bhfocail eile, má chuaigh aon rud mícheart ann - lig dom a iterate thar an na mic léinn 0-3. Agus faoi deara anois go bhfuil rud éigin riamh mar sin beagán difriúil faoi ​​líne 41 anseo. Níl sé printf. Tá sé fprintf do chomhad printf. Mar sin, tá sé ag dul a scríobh chuig an gcomhad. Cé acu comhad? An ceann a bhfuil pointeoir tú a shonrú mar an chéad argóint. Ansin againn a shonrú teaghrán formáide. Ansin, táimid ag shonrú cad teaghrán ba mhaith linn a breiseán i do na chéad s faoin gcéad, agus ansin athróg eile nó an dara s faoin gcéad. Ansin, táimid ag an comhad a dhúnadh le fclose. Ná mar a shaoradh mé an chuimhne mar roimh, cé go Ba chóir dom dul ar ais i agus cuir roinnt seiceálacha null. Agus sin é. fopen, fprintf, tugann fclose dom an cumas a chruthú comhaid téacs. Anois, feicfidh tú i tacar fhadhb cúig, atá i gceist íomhánna, beidh tú a bheith ag baint úsáide as comhaid dénártha ina ionad. Ach go bunúsach, is é an smaoineamh an gcéanna, cé na feidhmeanna beidh tú a fheiceáil go bhfuil beagán difriúil. Mar sin, turas whirlwind, ach gheobhaidh tú go léir ró-eolach comhad I/O-- ionchur agus aschur - le pset cúig. Agus aon cheisteanna agat maidir leis an Basics tosaigh anseo? Yeah? Cad a tharlaíonn má tá tú iarracht chun saor in aisce le luach null? Creidim, ach amháin má tá saor in aisce gotten beag níos so-úsáidte, is féidir leat d'fhéadfadh a bheith segfault. Rith sé nialasach bhfuil olc toisc nach féidir liom Creidim saor in aisce bothers a sheiceáil ar do shon, toisc go mbeadh sé d'fhéadfadh a bheith ina dhramhaíl ama chun é sin a dhéanamh é féin le haghaidh gach duine ar fud an domhain. Ceist mhaith, cé. Gach ceart, mar sin faigheann den chineál seo dúinn le ábhar suimiúil. An téama atá leagtha fhadhb Tá cúig forensics. Ar a laghad go bhfuil cuid an fhadhb a leagan síos. Tagraíonn forensics go ginearálta leis an aisghabháil faisnéise go bhféadfaidh nó Ní féidir a scriosadh d'aon turas. Agus mar sin shíl mé gur mhaith liom a thabhairt duit mear Tá blas de cad atá ar siúl i ndáiríre ar gach an uair seo thíos an cochall ar do ríomhaire. Mar shampla, má tá tú taobh istigh de do ríomhaire glúine nó ar do ríomhaire deisce a tiomáint crua, tá sé ceachtar meicniúil gléas go spins i ndáiríre - níl rudaí ciorclach ar a dtugtar platters gur cuma mhaith go maith cad agam ach bhí suas ar an scáileán anseo, cé go tá an scoil ag éirí sean. Is é seo trí-agus-i-leath-orlach tiomáint crua. Agus orlach trí bliana go leith Tagraíonn de leis an rud nuair a shuiteáil tú é i ríomhaire. Go leor de tú guys i do ríomhairí glúine anois Tá thiomáineann soladach-stáit, nó SSDs, a bhfuil aon páirteanna gluaisteacha. Tá siad níos mó cosúil le RAM agus níos lú cosúil le na gléasanna meicniúla. Ach tá na smaointe fós mar an gcéanna, cinnte a bhaineann siad chun fadhb a leagtar cúig. Agus má cheapann tú faoi anois le tiomáint crua Is ionann a bheith ina ciorcal, a Feicfidh mé a tharraingt mar seo anseo. Nuair a bheidh tú a chruthú comhad ar do ríomhaire, bíodh sé ina SSD, nó i chás seo, tiomáint crua scoil níos sine, Cuimsíonn an comhad giotán il. Ligean le rá go bhfuil sé seo 0 agus 1, a bunch iomlán de 0s agus 1s. Mar sin, is é seo mo tiomáint crua ar fad. Tá sé seo cosúil le comhad mór go leor. Agus tá sé ag baint úsáide as suas an 0s agus 1s ag an chuid an platter fisiciúil. Bhuel, cad é an chuid sin fisiciúil? Bhuel, casadh sé amach go bhfuil ar a thiomáint crua, ar a laghad, den chineál seo, níl na cáithníní maighnéadach beag bídeach. Agus tá siad go bunúsach ó thuaidh agus ó dheas cuaillí dóibh, ionas go má tá tú cas ar cheann de na cáithníní maighnéadach Ar an mbealach seo, d'fhéadfá a rá go bhfuil sé ionannas le 1. Agus má tá sé bun os cionn ó dheas go dtí ó thuaidh, d'fhéadfá a rá go bhfuil sé ionannas le 0. Mar sin, ar fud an domhain fíor fisiciúil, go conas a d'fhéadfadh tú ionadaíocht a dhéanamh ar rud éigin i staid dhénártha de 0 agus 1. Mar sin tá go bhfuil gach comhad. Níl a bunch iomlán de maighnéadach cáithníní go bhfuil a gcuid ar an mbealach seo nó Ar an mbealach seo, patrúin a chruthú de 0s agus 1s. Ach casadh sé amach nuair a dhéanann tú comhad a shábháil, Tá roinnt eolais shábháil ar leithligh. Mar sin, tá sé seo le tábla beag, eolaire, sin a labhairt. Agus beidh mé glaoch ar an t-ainm colún, agus Feicfidh mé glaoch seo a shuíomh colún. Agus tá mé ag dul a rá, is dócha is é seo mo atosú. Is é mo resume.doc stóráil ag suíomh, a ligean ar rá 123. Liom dul i gcónaí le haghaidh an líon sin. Ach is leor a rá go díreach cosúil i RAM, is féidir leat a ghlacadh le tiomáint crua go bhfuil ar gigabyte nó 200 ghigibheart nó terabyte, agus is féidir leat líon gach ceann de na bearta. Is féidir leat a uimhrigh gach smután de 8 giotán. Mar sin, beidh orainn a rá go bhfuil an Tá 123 suíomh. Mar sin, seo taobh istigh eolaire de mo oibriúcháin cuimhin córas go bhfuil mo atosú ag suíomh 123. Ach faigheann sé suimiúil nuair a scriosann tú comhad. Mar sin, mar shampla - agus buíochas le Dia, tá an chuid is mó ar an domhan ghabhtar ar seo - cad a tharlaíonn nuair tarraing tú comhad ar do Mac OS Bruscar nó do Windows Athchúrsáil Bin? Cad é an cuspóir á dhéanamh sin? Tá sé ar ndóigh a fháil haitheantas coibhneasta de na comhaid, ach cad a dhéanann an gníomh de dragging agus dropping isteach i do Bruscar nó do Athchúrsáil Bruscair a dhéanamh ar ríomhaire? Fíor aon rud, i ndáiríre. Tá sé díreach cosúil le fillteán. Tá sé bhfillteán speisialta, a bheith cinnte. Ach a dhéanann sé i ndáiríre a scriosadh an comhad? Bhuel, ní hea, mar gheall ar roinnt de agat is dócha a bheith cosúil le, OH diabhal, ní raibh tú Ciallaíonn sin a dhéanamh. Mar sin, tú cliceáil dúbailte ar an Bruscar nó Athchúrsáil Bin. Tá tú poked thart agus atá tú a aisghabháil an comhad ach ag dragging sé as ann. Mar sin, go soiléir, nach bhfuil sé gá go scriosadh é. OK, tá tú níos cliste ná sin. Tá a fhios agat go díreach dragging sé isteach ar an Ní Bruscar nó Athchúrsáil Bin chiallaíonn bhfuil tú ag fholmhú an bruscar. Mar sin, a théann tú suas go dtí an roghchlár, agus a rá leat Folmhaigh an Bosca Bruscair nó Folmhaigh Athchúrsáil Bruscair. Ansin, cad a tharlaíonn? Yeah, mar sin tá sé scriosta níos mó ná sin. Ach tá go léir go dtarlaíonn sé seo. Déan dearmad an ríomhaire nuair a resume.doc bhí. Ach nach bhfuil cad a athrú dealraimh sa phictiúr? An giotán, is iad na 0s agus 1s go Éilím ar an láthair de roinnt gné fhisiciúil na crua-earraí. Tá siad fós ann. Tá sé díreach go bhfuil an ríomhaire dearmad cad atá siad. Mar sin, tá sé go bunúsach freed an comhad giotán ionas gur féidir iad a athúsáid. Ach ní go dtí go chruthú duit comhaid níos mó, agus beidh comhaid níos mó, agus níos mó comhaid probabilistically, iad siúd 0s agus 1s, na cáithníní maighnéadach, a fháil athúsáid, taobh upside nó ceart suas, do comhaid eile, 0s agus 1s. Mar sin, tá tú an fhuinneog ama. Agus nach bhfuil sé de intuartha fad, i ndáiríre. Braitheann sé ar an méid do crua tiomáint agus cé mhéad comhaid atá agat agus cé chomh tapa a dhéanann tú na cinn nua. Ach níl an fhuinneog ama i rith is é sin comhad fós breá inghnóthaithe. Mar sin, má tá tú ag úsáid riamh cláir ar nós McAfee nó Norton chun iarracht a ghnóthú sonraí, tá gach tá siad ag déanamh ag iarraidh a ghnóthú eolaire seo mar a thugtar air go figiúr amach nuair a bhí do chomhad. Agus uaireanta, beidh Norton agus a rá, Tá comhad% 93 inghnóthaithe. Bhuel, cad a chiallaíonn? Ciallaíonn sé sin go díreach comhad éigin eile coincidentally dar críoch suas ag baint úsáide as, a rá, na píosaí as do chomhad bunaidh. Mar sin, cad atá i gceist i ndáiríre i sonraí a aisghabháil? Bhuel, más rud é nach bhfuil tú ag rud éigin cosúil le Norton réamh-suiteáilte ar do ríomhaire, an chuid is fearr is féidir leat a dhéanamh uaireanta is cuma ag an feachtas ar fad crua ag lorg patrúin giotán. Agus ar cheann de na téamaí a leagtar fhadhb cúig é go mbeidh tú cuardach a dhéanamh ar an atá comhionann le tiomáint crua, a fhóiréinseach íomhá cárta flash dlúth ó ceamara digiteach, cuardach le haghaidh an 0s agus 1s go hiondúil, a bhfuil ard dóchúlacht, ar son an tús a chur ar íomhá JPEG. Agus is féidir leat guys a ghnóthú na n-íomhánna ag ag glacadh leis, má fheiceann mé an patrún giotán ar an íomhá fhóiréinseach, le dóchúlacht ard, go marcanna tús le JPEG. Agus má fheiceann mé an patrún céanna arís, go marcanna dócha go bhfuil an tús JPEG eile, agus ceann eile JPEG, JPEG agus eile. Agus is é seo de ghnáth conas a Beidh sonraí a aisghabháil ag obair. Cad é faoi deas jpeg é cé go Is é an fhormáid comhaid féin beagán casta, an tús gach sórt Is comhad i ndáiríre go cothrom inaitheanta agus simplí, mar a fheicfidh tú, más rud é nach tá tú cheana féin. Mar sin a ligean ar ghlacadh le breathnú níos dlúithe thíos an cochall le go díreach cad a bhí dul ar aghaidh, agus cad na 0s agus 1s Tá, a thabhairt duit le beagán níos mó de comhthéacs don dúshlán ar leith. [Athsheinm físe] -I gcás siopaí do ríomhaire is ar a sonraí buan. Chun é sin a dhéanamh, ag taisteal na sonraí ó RAM chomh maith le comharthaí bogearraí a insint an feachtas crua conas a stóráil na sonraí sin. Na ciorcaid tiomáint crua a aistriú na comharthaí i voltas luaineachtaí. Seo, ina dturas, rialú a dhéanamh ar an feachtas crua ar páirteanna gluaisteacha, cuid de na cúpla páirteanna gluaisteacha fágtha sa ríomhaire nua-aimseartha. Tá cuid de na comharthaí rialú mótair a spins platters miotail-brataithe. Do shonraí atá stóráilte i ndáiríre ar na platters. Bogadh comharthaí Eile na léamh / scríobh ceannairí a léamh nó sonraí ar an platters scríobh. Seo innealra beacht ionas go mbeidh an duine Ní fhéadfaí gruaige pas a fháil fiú idir an ceannairí agus platters sníomh. Ach, oibríonn sé go léir ag luas terrific. [Athsheinm físe END] DAVID MALAN: Zúmáil i beag níos doimhne anois ar cad iarbhír ar na platters. [Athsheinm físe] -A ligean ar breathnú ar cad againn ach Chonaic i tairiscint mall. Nuair a bhíonn Pulse gairid ar leictreachas sheoladh chuig an léamh / scríobh ceann, má flips ar leictreamaighnéadacha beag bídeach do codán de shoicind. Cruthaíonn an maighnéad ar réimse, a athruithe ar an polaraíocht de beag bídeach, beag bídeach cuid de na cáithníní miotail a cóta gach dromchla platter. Tá sraith patrún de na beag bídeach, Gearrtar-limistéir ar an diosca Is ionann píosa amháin de sonraí i líon dénártha córas a úsáidtear ag ríomhairí. Anois, má tá an reatha chuig bealach amháin tríd an léamh / scríobh ceann, an limistéar Tá polaraithe sa treo amháin. Má tá an reatha a sheoladh i treo eile, an Tá polarú droim ar ais. Conas a gheobhaidh tú amach sonraí an diosca crua? Just a athrú ar an bpróiseas. Mar sin, tá sé an cáithníní ar an diosca a fháil ar an sruth sa léamh / scríobh ceann ag gluaiseacht. Cuir le chéile na milliúin de na codanna magnetized, agus atá tú a fuair comhad. Anois, féadfaidh na píosaí de chomhad singil a bheith scaipthe ar fud a thiomáint ar platters, cineál cosúil leis an praiseach de pháipéir ar do dheasc. Mar sin, coinníonn comhad breise speisialta rian de ina bhfuil gach rud. Ná mian leat a bhí tú rud éigin mar sin? [Athsheinm físe END] DAVID MALAN: OK, is dócha nach bhfuil. Mar sin, cé mhéad de tú guys fhás suas leis na? OK, mar sin tá sé níos lú agus níos lú lámha gach bliain. Ach tá mé sásta go bhfuil tú ar a laghad ar leo, mar gheall ar seo agus ár gcuid féin taispeána leabhar, faraor, ag fáil bháis ar an- mall bás anseo ar eolas. Ach tá sé seo cad a dhéanfaidh mé, ar a laghad, ar ais i scoil ard, úsáid a úsáidtear le haghaidh backups. Agus bhí sé iontach, toisc go bhfuil tú D'fhéadfaí stóráil 1.4 meigibheart ar an diosca ar leith. Agus ba é seo an leagan ard-dlúis, mar atá léirithe ag an HD, a bhfuil rud a chiallaíonn roimh an lae inniu HD físeáin. Bhí dlús Caighdeán 800 cilibheart. Agus roimh sin, bhí Dioscaí 400-chilibhirt. Agus roimh sin, bhí 5 agus 1/4 dioscaí orlach, a bhí fíor flapacha, agus beagán níos leithne agus níos airde ná na rudaí anseo. Ach is féidir leat a fheiceáil i ndáiríre an sin ar a dtugtar gné flapach de na dioscaí. Agus go feidhmiúil, tá siad iarbhír leor den chineál céanna do thiomáineann crua ar a ar a laghad den chineál seo. Arís, SSDs i ríomhairí níos nuaí ag obair le beagán difriúil. Ach má bhogann tú go cluaisín miotail beag, is féidir leat a fheiceáil i ndáiríre fianán beag, nó platter. Níl sé miotail mar seo amháin. Tá sé seo ar cheann i ndáiríre roinnt níos saoire ábhar plaisteach. Agus is féidir leat de chineál ar wiggle sé. Agus tá tú trully wiped díreach as roinnt líon na ngiotán nó cáithníní maighnéadach as an diosca. Mar sin, buíochas le Dia, níl aon rud ar sé. Má tá rud sin ar an mbealach - agus a chlúdach do shúile agus iad siúd de do chomharsa - is féidir leat ach cineál tarraingt seo as sheath fad mar sin. Ach níl an earraigh beag, mar sin a bheith ar an eolas faoi sin le do chuid súl. Mar sin, anois tá tú go fírinneach ar dhiosca flapach. Agus cad iontach faoi seo is é sin sa mhéid is nach bhfuil sé seo ina Ionadaíocht ar scála beag de níos mó tiomáint crua, is iad na rudaí Super, Super simplí. Má tá tú pinch an bun é, anois go Tá an rud as miotail, agus craiceann iad a oscailt, is léir go bhfuil dhá phíosa bhraith agus an diosca flapach sin ar a dtugtar le píosa miotail ar an taobh istigh. Agus téann tá leath de ábhar mo dhiosca ar. Tá Téann leath eile acu. Ach tá go léir go raibh sníomh taobh istigh de do ríomhaire i yesteryear. Agus arís, a chur i bpeirspictíocht, cé chomh mór is atá an chuid is mó de do thiomáineann crua na laethanta seo? 500 ghigibheart, a terabyte, b'fhéidir i ríomhaire deisce, 2 terabytes, 3 terabytes, 4 terabytes, ceart? Is é seo an mheigibhirt amháin, a thabhairt nó a thógáil, Ní féidir a oiriúnach fiú MP3 tipiciúil níos mó na laethanta seo, nó cuid comhad ceol den chineál céanna. Mar sin, cuimhneacháin beag ar do shon lá atá inniu ann, agus freisin chun cabhrú contextualize cad beidh orainn a bheith ag cur do dheonú anois i fhadhb a leagtar cúig. Mar sin, iad siúd mise a choinneáil. Mar sin dom aistriú a ligean chun áit a mbeidh a bheith ag caitheamh an pset eile chomh maith. Mar sin, tá leagtha amach againn anois an leathanach seo le haghaidh - OH, cúpla fógraí tapa. Dé hAoine seo, más mian leat páirt a CS50 don lón, téigh go dtí an áit is gnách, cs50.net/rsvp. Agus deiridh an tionscadail - mar sin in aghaidh an siollabas, atá déanta againn sa phost an sonraíocht deiridh an tionscadail cheana féin. Realize go ní chiallaíonn go tá sé mar gheall go háirithe go luath. Tá sé sa phost, i ndáiríre, ach a fháil tú guys smaoineamh air. Agus go deimhin, a suntasach Super Beidh céatadán de tú a bheith i ngleic le tionscadail deiridh ar ábhar atá againn Nach bhfuil gotten fiú sa rang, ach beidh chomh luath agus is an tseachtain seo chugainn. Fógra áfach, go bhfuil gá, an spec do mbeidh líon beag comhpháirteanna éagsúla ar fud an deiridh an tionscadail. An chéad, i cúpla seachtain, tá réamh-togra, r-phost go leor ócáideach chun do TF a insint dó nó cad tá tú ag ag smaoineamh faoi do do thionscadal, le Uimh Tiomantas. Beidh togra do leith tiomantas, ag rá, anseo, is é seo cad Ba mhaith liom buíochas a dhéanamh do mo tionscadal. Cad é do bharúil? Ró-mhór? Ró-beag? An bhfuil sé inbhainistithe? Agus a fheiceann tú ar an spec le haghaidh tuilleadh sonraí. Tá cúpla seachtain ina dhiaidh sin an stádas tuarascáil, a bhfuil mar an gcéanna r-phost ócáideach le do TF a rá go díreach cé chomh bhfad taobh thiar tá tú i do deiridh chun feidhme an tionscadail ar, agus ina dhiaidh an CS50 Hackathon a bhfuil gach duine Tá cuireadh, a bheidh ina imeacht ó 20:00 ar tráthnóna amháin go dtí 07:00 AM an mhaidin dár gcionn. Pizza, mar a luaigh mé i seachtain náid, wil a sheirbheáil ag 09:00, Bia Síneach ag 01:00. Agus má tá tú fós awake ag 05:00, beidh orainn tú a IHOP don bhricfeasta. Mar sin, tá an Hackathon ar cheann de na níos mó taithí i gcuimhne sa rang. Ansin, is é an cur i bhfeidhm mar gheall ar, agus ansin an climactic CS50 Aonach. Tá níos mó sonraí ar gach ceann de na sna seachtainí atá le teacht. Ach a ligean ar dul ar ais chuig rud éigin d'aois scoile - arís, le sraith. Mar sin, bhí le sraith deas, toisc go réitíonn sé fadhbanna cosúil le linn a chonaic ach nóiméad ó shin le struchtúir mac léinn ag fáil amach beag de rialú má táimid ag iarraidh a bheith scoláire amháin, dhá léinn, mac léinn trí, mac léinn ponc ponc ponc, roinnt ar líon treallach na mac léinn. Mar sin, arrays, cúpla seachtain ó shin, swooped i agus réiteach i ngach ceann dár fadhbanna nach de fhios acu roimh ré cé mhéad rudaí de chineál éigin a d'fhéadfadh muid ag iarraidh. Agus mé le feiceáil againn gur féidir structs cabhrú linn tuilleadh eagrú ár gcód agus a choinneáil athróga coincheapúil den chineál céanna, cosúil le ainm agus teach, le chéile, ionas go mbeidh muid Is féidir caitheamh leo mar aon aonán, taobh istigh ar a bhfuil píosaí níos lú. Ach tá arrays roinnt míbhuntáistí. Cad iad roinnt de na míbhuntáistí againn a bhíonn le arrays go dtí seo? Cad é sin? Méid Seasta - mar sin cé go mb'fhéidir go mbeadh tú a bheith in ann cuimhne ar a leithdháileadh eagar, a luaithe a fhios agat cé mhéad mac léinn Tá tú, cé mhéad carachtair atá agat ón úsáideoir, nuair atá tú a leithdháileadh an eagar, tá tú de chineál ar péinteáilte duit féin isteach i gcúinne. Toisc nach féidir leat a chur isteach eilimintí nua i lár an eagar. Ní féidir leat a chur isteach gnéithe níos mó ag deireadh na eagar. Really, tá tú chun muinín a chruthú sraith nua ar fad, mar atá pléite againn, chóipeáil an aois isteach an nua. Agus arís, is é sin an tinneas cinn go Déileálann GetString le do shon. Ach arís, ní féidir leat a chur isteach fiú rud éigin i lár an eagar más rud é nach bhfuil an ráta líonadh go hiomlán. Mar shampla, má tá an sraith anseo de mhéid sé nach bhfuil ach cúig rudaí ann, go maith, d'fhéadfadh tú díreach tacóid rud éigin ar an deireadh. Ach cad más mian leat rud éigin a chur isteach i lár an eagar, cé go bhféadfadh sé a bheith cúig as sé rudaí ann? Bhuel, cad a rinne muid nuair a bhí againn ar fad ar ár daoine deonacha onstage i sheachtain anuas? Má bhíomar ag iarraidh duine éigin a chur anseo, bíodh sé na daoine seo conas a bhogadh seo bhealach, nó na daoine conas a bhogadh seo bhealach, agus go raibh daor. An aistriú na ndaoine taobh istigh de sraith dar críoch suas ag cur suas agus a chosnaíonn dúinn am, mar sin, go leor de na ár n cearnógach amanna ag rith cosúil le saghas leanas a chur isteach, chun Mar shampla, sa chás is measa. Mar sin, tá arrays mór, ach caithfidh tú a Tá a fhios roimh ré cé chomh mór is mian leat iad. Mar sin, OK, tá anseo ar réiteach. Más rud é nach bhfuil a fhios agam roimh ré cé mhéad na mic léinn fhéadfaí a dhéanamh orm, agus tá a fhios agam nuair a Cinneadh a dhéanamh liom, áfach, tá mé greamaithe le go go leor mac léinn, cén fáth nach bhfuil mé díreach i gcónaí leithdháileadh spás faoi dhó oiread agus is mar a d'fhéadfadh liom gur gá dom? An é sin nach bhfuil réiteach réasúnta? Réalaíoch, ní dóigh liom go bhfuil muid ag dul go mór níos mó ná 50 sliotán in eagar do rang trí mheán-mhéid, mar sin a ligean ar bhabhta suas díreach. Feicfidh mé a dhéanamh 100 sliotán i mo eagar, ach ionas gur féidir linn a fháil cinnte an líon na mac léinn mé ag súil le a bheith i roinnt rang mheán-mhéid. Ní sin an fáth a shlánú suas díreach agus a leithdháileadh cuimhne níos mó, de ghnáth, le haghaidh eagar ná mar a cheapann tú d'fhéadfadh gá duit fiú? Cad é seo pushback simplí leis an smaoineamh? Tá tú ag wasting ach cuimhne. Literally gach clár a scríobhann tú ansin ag baint úsáide as cuimhne b'fhéidir faoi dhó oiread agus is is gá duit i ndáiríre. Agus nach bhfuil ach bhraitheann cosúil le go háirithe réiteach galánta. Thairis sin, laghdaíonn sé ach an dóchúlacht fadhb. Má tharlaíonn tú go bhfuil cúrsa tóir seimeastar amháin agus tú ag 101 mhic léinn, tá do chlár fós atá os comhair go bunúsach an tsaincheist chéanna. Mar sin, buíochas le Dia, níl a réiteach seo ad ár gcuid fadhbanna go léir i bhfoirm struchtúir sonraí go bhfuil níos casta ná na cinn againn le feiceáil go dtí seo. Seo, éileamh mé, tá liosta nasctha. Is liosta é seo de na huimhreacha - 9, 17, 22, 26, agus 34 - atá nasctha le chéile trí ar cad tá mé tarraingt mar saigheada. I bhfocail eile, má bhí mé chun ionadaíocht a eagar, raibh mé in ann a dhéanamh rud éigin mar seo. Agus beidh mé seo a chur ar na forchostais i díreach nóiméad. Raibh mé in ann a dhéanamh - Dia duit, ceart go léir. Seas ag. Ríomhaire nua anseo, soiléir - ceart go léir. Mar sin, má tá mé na huimhreacha seo i sraith - 9, 17, 22, 26, 24 - Ní gá de réir scála. Gach ceart, mar sin tá anseo mo eagar - OH mo dhia. Gach ceart, mar sin tá anseo mo eagar. Oh mo dhia. [Gáire] DAVID MALAN: Siobhan Ni Dhaibhir. Tá sé iarracht i bhfad ró chun dul ar ais agus a shocrú go, mar sin níl - 26. Mar sin, ní mór dúinn an raon de 9, 17, 22, 26, agus 34. Chun gur féidir iad siúd de tú a fheiceáil ar an botún embarrassing a rinne mé díreach tar éis, tá sé. Mar sin, Éilím go bhfuil sé seo réiteach an-éifeachtach. Tá mé leithdháileadh mar ints go leor mar Is gá dom - ceann amháin, dhá, trí, ceithre, cúig, nó sé - agus tá mé stóráilte ansin na huimhreacha taobh istigh den eagar. Ach is dócha, ansin, ba mhaith liom a chur isteach i luach mar an uimhir 8? Bhuel, nuair a théann sé? Cuir Ba mhaith liom a chur isteach roinnt mhaith 20. Bhuel, nuair a théann sé? Áit éigin ann i lár, nó má tá an uimhir 35 chun dul áit éigin ag an deireadh. Ach tá mé go léir as spás. Agus mar sin tá sé seo dúshlán bunúsach de arrays atá ndéanann an réiteach. D'éiligh mé nóiméad ó shin, GetString Réitíonn an fhadhb seo. Más mian leat a chur isteach ar roinnt séú isteach sa sraith, cad é ar a laghad ceann amháin réiteach is féidir leat titim ar ais ar do cinnte, díreach mar a dhéanann muid le GetString? Cad é sin? Bhuel, a dhéanamh níos mó go bhfuil sé dúirt sé níos éasca ná mar a rinneadh. Ní féidir linn a dhéanamh ar an gá eagar níos mó, ach cad is féidir linn a dhéanamh? Déan sraith nua go bhfuil níos mó, de mhéid 6, nó b'fhéidir méid 10, más mian linn a fháil amach romhainn de rudaí, agus ansin é a chóipeáil an sraith d'aois isteach an nua, agus ansin saor in aisce leis an eagar d'aois. Ach cad é an t-am ag rith anois ar an bpróiseas? Tá sé mór O n, mar gheall ar an cóipeáil Tá dul chun costas tú roinnt aonad de am, mar sin nach bhfuil idéalach mar sin má tá muid chun leithdháileadh le sraith nua, atá ag dul a ithe faoi dhó oiread cuimhne go sealadach. Cóipeáil d'aois i nua - Ciallaíonn mé, tá sé ach a headache, a is é sin, arís, cén fáth a scríobh againn GetString ar do shon. Mar sin, cad a d'fhéadfadh muid a dhéanamh in ionad? Bhuel, cad más rud é ár struchtúr sonraí i ndáiríre tá bearnaí ann? Má ghlactar leis go mé scíth a ligean mo sprioc a bhfuil smután tadhlach de chuimhne, i gcás ina 9 Is ceart aice 17, a bhfuil ceart aice 22, agus mar sin de. Agus is dócha gur féidir a bheith os cionn 9 anseo i Is féidir RAM, agus 17 a ró anseo i RAM, agus is féidir 22 a ró anseo i RAM. I bhfocail eile, ní féidir liom gá iad a fiú ar ais go dtí ar ais níos mó. Tá mé díreach tar éis a thread bhealach le snáthaid trí gach ceann de na huimhreacha seo, nó gach de na nóid, mar beidh muid ag glaoch ar an dronuilleoga mar tá mé tharraingt orthu, chun cuimhneamh conas a fháil chun an deiridh nód den sórt sin ón gcéad. Mar sin, cad é an clár a thógáil againn le feiceáil go leor le déanaí lena mbím Is féidir sin a chur i snáithe, nó tharraingt anseo, lena is féidir liom na saigheada i bhfeidhm? Leideanna Mar sin, ceart? Más rud é nach leithdháileadh mé díreach tar éis int, ach nód - agus ag nód, ciallóidh mé díreach tar coimeádán. Agus amhairc, ciallóidh mé dronuilleog. Mar sin, ní mór nód cosúil a bhfuil dhá luach - o 'féin, agus ansin, mar atá intuigthe ag an leath bun an dronuilleog, spás go leor do ina slánuimhir. Mar sin, ach smaoineamh ar aghaidh anseo, cé chomh mór is atá an nód, an coimeádán atá i gceist? Cé mhéad bytes don slánuimhir? Is dócha 4, má tá sé an céanna mar is gnách. Agus ansin cé mhéad bytes don pointeoir? 4. Mar sin, is é seo coimeádán, nó an nód, ag dul a bheith ina struchtúr 8-beart. Ó, agus tá go chomhtharlú sásta go thugamar isteach ach ar an gcoincheap sin de a struct, nó ar dhéanmhas C. Mar sin, éileamh mé gur mhaith liom a chur le céim i dtreo seo níos sofaisticiúla fheidhmiú liosta de uimhreacha, a liosta nasctha d'uimhreacha, is gá dom a dhéanamh beagán níos mó ag smaoineamh suas chun tosaigh agus dhearbhú ní hamháin ina slánuimhir, ach struct go mbainfidh mé glaoch, conventionally anseo, nód. D'fhéadfadh muid a ghlaoch air aon rud is mian linn, ach Tá nód ag dul a bheith téamach a lán de na rudaí tús a chur orainn féachaint ar anois. Taobh istigh den nód Is n slánuimhir. Agus ansin an error, beag aisteach ar an gcéad amharc - struct nód * chugainn. Bhuel go pictiúrtha, cad é sin? Is é sin an leath bun an dronuilleog a chonaic muid ach nóiméad ó shin. Ach cén fáth a Táim ag rá liom struct nód * seachas díreach nód *? Toisc más rud é go bhfuil an pointeoir ag cur in iúl ag nód eile, tá sé ach an seoladh an nód. Sin teacht leis an méid atá déanta againn pléadh faoi threo go dtí seo. Ach cén fáth, má dhéantar éileamh go bhfuil an struchtúr ar a dtugtar nód, is gá dom a rá struct nód taobh istigh anseo? Go díreach. Tá sé saghas a thabhairt i gcrích dúr de C. An Rialú an, mar a déarfá, nach bhfuil a tharla go fóill. C Tá Super litriúil. Léann sé do barr cód le bun, ó chlé go deas. Agus go dtí go amas sé go Leathstad ar an líne bun, buille faoi thuairim cad nach ann mar chineál sonraí ann? Nód, nód comharthaí athfhriotail ceanglófar. Ach mar gheall ar an verbose níos mó dearbhú a rinne mé ar an chéad líne - nód struct Rialú an - mar gheall ar tháinig an chéad, roimh an braces gcuach, go bhfuil cineál cosúil réamh-oideachas a chur ar Clang sin, tá tú Tá a fhios cad, a thabhairt dom struct ar a dtugtar nód struct. Frankly, ní féidir liom rudaí a ghlaoch struct nód, nód struct go léir ar fud mo cód. Ach beidh mé a úsáid ach aon uair amháin, ach taobh istigh, ionas gur féidir liom héifeachtach a chruthú saghas tagartha ciorclach, ní ar pointeoir go féin per se, ach pointeoir go ceann eile de de chineál comhionann. Mar sin, casadh sé amach go bhfuil ar a struchtúr sonraí mar seo, níl cúpla oibríochtaí d'fhéadfadh a bheith spéis againn iontu. D'fhéadfadh gur mhaith linn a chur isteach isteach i liosta mar seo. D'fhéadfadh muid ag iarraidh a scriosadh ó liosta mar seo. D'fhéadfadh muid ag iarraidh chun cuardach a dhéanamh ar an liosta d' luach, nó níos mó go ginearálta, lean. Agus is é Traverse ach ar bhealach mhaisiúil de ag rá thosú ag an chlé agus bogadh go léir an mbealach chun an ceart. Agus fógra, fiú leis seo beagán níos mó struchtúr sonraí sofaisticiúla, a ligean mholadh dom gur féidir linn a fháil ar iasacht ar roinnt de na smaointe ar an dhá sheachtain anuas agus feidhm a dtugtar i bhfeidhm cuardach a dhéanamh mar seo. Tá sé ag dul a thabhairt ar ais fíor nó bréagach, a léiríonn, yes nó aon, tá n ar an liosta. Is í an dara hargóint ar pointeoir leis an liosta féin, mar sin a pointeoir ar nód. Gach Tá mé ag dul a dhéanamh ansin é a dhearbhú athróg sealadach. Beidh muid ag glaoch air PTR de réir an ghnáis, do pointeoir. Agus a shannadh mé comhionann é leis an ag tosú ar an liosta. Agus anois faoi deara an lúb fad. Mar sin, fad is nach bhfuil pointeoir cothrom nialasach, tá mé ag dul a sheiceáil. Is arrow pointeoir n comhionann le an n ritheadh ​​i? Agus fan nóiméad - nua píosa error. Cad é arrow go léir a tobann? Yeah? Go díreach. Mar sin, cé go cúpla nóiméad ó shin, a úsáid le linn an nodaireacht ponc chun teacht ar rud éigin taobh istigh de na struct, má tá an athróg nach bhfuil tú an struct féin, ach ar pointeoir go struct, buíochas le Dia, píosa comhréire go ar deireadh ciall iomasach. Ciallaíonn an tsaighead chun leanúint leis an pointeoir, cosúil Ciallaíonn ár n-saigheada de ghnáth pictiúrtha, agus dul ag taobh istigh allamuigh sonraí. Mar sin, tá arrow an rud céanna mar ponc, ach úsáideann tú é nuair a tá tú pointeoir. Mar sin, ach a recap ansin, má tá an réimse n taobh istigh de na struct dtugtar pointeoir ionann ionann n, ar ais fíor. Seachas sin, an líne seo anseo - pointeoir ionann pointeoir seo chugainn. Mar sin, cad é seo a dhéanamh, is fógra, má Táim ag cur in iúl faoi láthair ag an struct ina bhfuil 9, agus 9 nach bhfuil an líon Táim ag lorg - is dócha Táim ag lorg le haghaidh n is ionann agus 50 - Tá mé ag dul a thabhairt cothrom le dáta mo pointeoir sealadach chun Ní pointe ag an nód níos mó, ach pointeoir arrow in aice, a ag dul a chur mé suas anseo. Anois, shíl mé go bhfuil sciobtha thabhairt isteach. Ar Dé Céadaoin, beidh muid a dhéanamh i ndáiríre seo le roinnt daoine agus le roinnt níos mó Cód ag luas níos moille. Ach a bhaint amach, táimid ag déanamh anois ar ár gcuid sonraí struchtúir níos casta ionas go mbeidh ár n- Is féidir le halgartaim a fháil níos éifeachtaí, a ag dul a bheith riachtanach le haghaidh pset sé, nuair a luchtú againn i, arís, iad siúd 150,000 focal, ach is gá é sin a dhéanamh héifeachtach, agus go hidéalach, a chruthú clár a ritheann ar ár n-úsáideoirí nach bhfuil i Ní, líneach i n cearnógach, ach i am tairiseach, sa idéalach. Beidh orainn a fheiceann tú ar an gCéadaoin. Cainteoir: Ag an CS50 eile, David dearmad a chás bonn. DAVID MALAN: Agus sin conas a sheolann tú teachtaireachtaí téacs le C. Cad é an - [TEACHTAIREACHT TÉACS ÉAGSÚLA Sounds FÓGRA]