[Powered by Google Translate] [SEACHTAIN 5] [David J. MALAN, Ollscoil Harvard] [Tá sé seo CS50.] [CS50.TV] [Woman] tá luí aige; faoi cad, níl a fhios agam. [Man] Mar sin, cad a fhios againn? [Woman] Go ag 09:15, bhí Ray Santoya ag an ATM. [Man] Tá Mar sin, an cheist, cad a bhí á dhéanamh aige ar 9:16? [Woman] Lámhach an mm 9 ag rud éigin. B'fhéidir chonaic sé an sniper. [Man] Nó raibh sé ag obair leis. [Woman] Fan. Téigh ar ais amháin. [Man] Cad a fheiceann tú? [♫ ceol suspenseful ♫] [Woman] Beir a aghaidh suas. Scáileán iomlán. [Man] a spéaclaí. >> Níl a léiriú. [♫ ceol suspenseful ♫] [Man] Sin fhoireann baseball an Nuevita ar. Sin a lógó. [Woman] Agus tá sé ag caint le cibé duine ag caitheamh go cóta. [David MALAN] Mar sin, is é seo CS50 seachtain 5, agus sa lá atá inniu táimid ag ruin le beagán de teilifíse agus scannán ar do shon. Mar sin, aon uair a bhíonn tú ag breathnú ar seó mar seo amháin anseo, agus a rá an cops "An féidir leat glan go raibh suas?" nó "Feabhas a chur ar," níl aon fheabhsú ar fud an domhain fíor. Go deimhin, cad a fhaigheann tú i ndáiríre rud beag mar seo. Tá mé ceirteacha tarraingthe suas ar cheann de na grianghraif foirne ón leathanach. Is é seo an clár ar a dtugtar Photoshop. Is é seo 1 de 2 Bowdens, 1 de 3 Bowdens i ndáiríre, lá atá inniu ann, toisc go bhfuil muid Mrs Bowden anseo chomh maith, le Rob agus Paul. Ach anseo Rob ar an scáileán, agus má súmáil isteach againn i ar an glint sé ar a bhí i gcónaí ina súile, méid a fheiceann tú i ndáiríre é go bhfuil an méid a fheiceann tú cad a fhaigheann tú. Tá sé seo "níos fearr," mar sin "CSI" Tá sé beagán mícheart. Níl aon gearrthóg eile, más féidir linn a roghnú ar "CSI" ach beagán níos faide. Is é seo ar cheann frása deas a utter feasta más mian leat a fuaim teicniúil le do chairde nuair, i ndáiríre, tá tú ag rá fíor aon rud. [Man] Le haghaidh seachtain bhí mé ag fiosrú na dúnmharuithe Killer Cabby le fascination morbid áirithe. [Woman # 1] Tá sé seo i bhfíor-am. [Woman # 2] beidh mé a chruthú comhéadan GUI ag baint úsáide as Visual Basic, féach an féidir liom a rianú an seoladh IP. [MALAN] fuaime sin i dtiúin ar ceal, a chruthú comhéadan GUI ag baint úsáide as Visual Basic Is é a rianú an seoladh IP nonsense iomlán. Na laethanta nach mbeadh leat é a úsáid Visual Basic, níl aon ghá le GUI, agus seoladh IP ba téarma teicniúil cruinn. Mar sin, coinnigh súil amach do na, agus ceann de mo rogha: Tá sé seo ar cheann beagán níos arcane, mar is gá duit fios a bheith agat teanga éagsúla. Níl teanga ar a dtugtar Cuspóir-C, a bhfuil superset de C. Rud a chiallaíonn sé C chomh maith le roinnt gnéithe breise, ina measc réad-dhírithe cláir. Agus is é seo an teanga go bhfuil Apple an phobail do chláir iOS. Agus mar sin tá anseo le gearrthóg ó seó éagsúil ar fad, ó "Uimhreacha," más rud é go tú ag breathnú i ndáiríre go dlúth ar do TiVo agus sos ag an am ceart, Feicfidh tú a fheiceáil go bhfuil an méid a bhíonn siad ag féachaint ar ní leor an méid atá á cur síos. Agus lig dom iarracht a cónascaire éagsúla fuaime anseo agus a fheiceáil más rud é nach féidir linn choinneáil ar an fuaime i info an am seo. Mé a thabhairt duit "Uimhreacha". [Man # 1] Tá sé seoladh 32-giotán IPv4. [Man # 2] IP, gur ar an Idirlíon. >> Gréasáin phríobháidigh. Tá sé líonra príobháideach Anita ar. [MALAN] Maith go leor. Tá an Cuspóir-C, agus tá sé do chlár dathúcháin roinnt kid, is féidir leat tátal a bhaint astu b'fhéidir ó ainm an athróg ann. Mar sin, go bhfuil, ansin, bhí "Uimhreacha". Mar sin, lá atá inniu ann agus an tseachtain seo linn a thabhairt isteach le beagán de shaol na forensics agus ar an gcomhthéacs na fadhbanna sin. Beidh lá atá inniu léacht giorraithe mar níl ar ócáid ​​speisialta i anseo ina dhiaidh sin, mar sin beidh orainn a ghlacadh peek, agus tease idir mhic léinn agus do thuismitheoirí araon sa lá atá inniu le roinnt de na rudaí a bhfuil ar na spéire. I measc iad, mar an Luan, beidh tú ag classmates cúpla níos mó. EdX, Harvard agus MITS nua ar líne tionscnamh oscailte teagaisc agus níos mó, tá sheoladh ar an gcampas Harvard ar an Luan. Rud a chiallaíonn Dé Luain teacht beidh ort - mar an líon seo caite, Beidh 86,000 classmates breise seo a leanas chomh maith le léachtaí CS50 ar agus rannóga agus walkthroughs agus leagann fhadhb. Agus mar chuid de seo, beidh tú bheith ina gcomhaltaí den aicme tionscnaimh CS50 agus anois CS50x. Mar chuid de seo, anois, a thuiscint go mbeidh roinnt upsides chomh maith. Chun a fháil réidh le haghaidh seo, an líon ollmhór na mac léinn, leor é a rá, áfach, cé ní mór dúinn 108 TFS agus CAanna, Ní leor an chuid is fearr mac léinn cóimheas múinteoir / nuair a bhuail muid 80,000 mac léinn eile. Mar sin, ní táimid ag dul a bheith ag ghrádú fhadhb an oiread sin leagann láimh. Beidh Mar sin, tugadh isteach an tseachtain seo sa tacar fhadhb CS50 Seiceáil, atá ag dul a bheith ina fóntais líne ordaithe laistigh den fearas go mbainfidh tú a fháil nuair a tá tú thabhairt cothrom le dáta é níos déanaí an deireadh seachtaine seo, agus beidh tú in ann a reáchtáil ordú, seiceáil 50, ar do pset féin, agus beidh tú a fháil ar roinnt aiseolas maidir le cibé an bhfuil do chlár ceart nó mícheart de réir sonraíochtaí deartha éagsúla go bhfuil muid ar fáil. Mar sin, níos mó ar sin agus an tsonraíocht atá leagtha bhfadhb agus Beidh an rang CS50x a bheith ag baint úsáide as chomh maith. Mar sin, tá 4 sraith fhadhb ar fad faoi forensics. Agus bhí a spreag an píosa ag roinnt rudaí fíor-saoil, trína nuair a bhí mé ar scoil iarchéime, imtheorannú mé ar feadh tamaill le Oifig Cheantair an Chontae Middlesex ar-Aighne ag déanamh obair fhóiréinseach lena n-imscrúdaitheoir fhóiréinseach luaidhe, agus cad ionann sin agus Tá, I mo thuairimse, luaigh mé in aghaidh na seachtaine cúpla am atá thart, is é an póilíní Stáit Aifreann nó do dhaoine eile mbeadh teacht i, go mbeadh siad titim as rudaí cosúil le thiomáineann agus dlúthdhioscaí crua agus dioscaí flapacha agus a leithéidí, agus ansin ba é an sprioc na hoifige forensics chun a fháil amach cibé an raibh nó nach raibh fianaise ar de chineál éigin. Ba é seo an Imscrúduithe Speisialta Aonad, mar sin bhí sé white-collar coireachta, go raibh sé saghas níos troubling coireanna, casadh amach nach bhfuil go leor daoine; rud ar bith a bhaineann le roinnt de chineál meán digiteach scríobh r-phost ag rá "Rinne mé é." Mar sin, go minic go leor nach raibh na cuardaigh forensics dul suas go léir go torthaí i bhfad, ach uaireanta a bheadh ​​daoine a scríobh r-phoist den sórt sin. Mar sin, bhí luach saothair uaireanta na n-iarrachtaí. Ach i gceannas ar suas go dtí seo pset fhóiréinseach, beidh orainn a bheith ag tabhairt isteach i pset 4 le beagán de grafaic. Mar sin, tú a chur ar dócha na rudaí seo do dheonú, jpeg, GIFs agus a leithéidí na laethanta seo, ach má cheapann tú i ndáiríre faoi, íomhá, i bhfad mar aghaidh Rob, ar D'fhéadfaí a mhúnlú mar shraith de poncanna, nó pixel. Anois, i gcás duine Rob s, níl gach cineál na dathanna, agus thosaigh muid a fheiceáil na poncanna aonair, otherwide ar a dtugtar picteilíni, nuair a thosaigh muid chun súmáil isteach Ach má shimpliú againn ar an domhan le beagán, agus díreach rá go bhfuil an anseo Rob i dubh agus bán, go maith, chun ionadaíocht a dhéanamh dubh agus bán is féidir linn a úsáid ach dénártha. Agus má táimid ag dul dénártha a úsáid, 1 nó 0, is féidir linn a chur in iúl an íomhá céanna de aghaidh miongháire Rob ar leis an bpatrún sin de giotán: Léiríonn 11000011 bán, bán, dubh, dubh, dubh, dubh, bán bán. Agus mar sin nach bhfuil sé de léim ollmhór, ansin, chun tús a chur ag caint faoi grianghraif ildaite. Rudaí go mbeadh tú a fheiceáil ar Facebook nó a ghlacadh le ceamara digiteach, ach, cinnte, nuair a thagann sé dathanna, is gá duit giotán níos mó. Agus coitianta go leor i saol na grianghraif a úsáid nach bhfuil 1-giotán dath, mar a léiríonn an seo, ach 24-giotán dath, áit a bhfuil tú a fháil iarbhír na milliúin dathanna. Mar sin, mar atá i gcás nuair a súmáilte againn i súile ar Rob, ar go raibh líon ar bith de na milliúin féidearthachtaí ildaite éagsúla. Mar sin, beidh orainn seo a thabhairt isteach i 4 sraith fhadhb chomh maith sa walkthrough, Beidh lá atá inniu ann ag 3:30 in ionad an gnách 2:30 mar gheall ar léacht Dé hAoine anseo. Ach beidh an físeán ar líne, mar is gnách, amárach. Beidh muid a thabhairt isteach chomh maith leat chun eile formáid comhaid. Mar sin, tá sé seo i gceist d'aon ghnó chun breathnú imeaglaithe ar dtús, ach tá sé seo ach roinnt cáipéisí le haghaidh struct C. Casadh sé amach go Microsoft, bliain ó shin, a chabhraigh popularize an bhformáid seo, ar a dtugtar an fhormáid comhaid bitmap, BMP, agus bhí sé seo a Super-simplí, formáid comhaid colorful ghrafach a úsáideadh le tamall maith agus uaireanta i gcónaí le haghaidh wallpapers ar ríomhairí deisce. Má cheapann tú ar ais go dtí Windows XP agus na cnoic rollta agus an spéir gorm, go raibh de ghnáth BMP, nó íomhá bitmap, agus bitmaps Tá spraoi do dúinn mar go bhfuil siad castacht beagán níos mó. Níl sé simplí go leor mar seo greille de 0 agus 1 ar; ina ionad sin, tá tú rudaí cosúil le header ag tús comhad. Mar sin, i bhfocail eile, taobh istigh comhad. Bmp a bunch iomlán de 0 agus 1, ar ach tá roinnt breise 0 agus 1 i ann. Agus casadh sé amach go bhfuil an méid atá déanta againn tógtha is dócha talamh slán ar feadh na mblianta, formáidí comhaid mhaith. doc nó. xls nó. mp3 nó. mp4, beann ar an formáidí comhaid go bhfuil tú eolach. Bhuel, cad a chiallaíonn sé fiú a bheith ina formáid comhaid? Mar gheall ag deireadh an lae, tá gach ceann de na comhaid a úsáid againn ach 0 agus 1 ar agus b'fhéidir ionadaíocht a dhéanamh dóibh siúd 0 agus 1 ar a, b, c, trí ASCII nó a leithéidí, ach tríd an deireadh an lae, tá sé ach 0 agus 1 ar. Mar sin, daoine díreach a chinneadh ó am go chéile a chumadh formáid comhaid nua ina bhfuil siad a chaighdeánú cad a bheidh patrúin giotán i gceist i ndáiríre. Agus sa chás seo anseo, na folks a dhear an fhormáid comhaid bitmap Dúirt an beart an-an chéad i gcomhad bitmap, arna scríobh mar fhritháireamh ag 0, ansin, tá sé ag dul a bheith ar roinnt cryptically ainmnithe bfType ar a dtugtar athróg, a sheasann ach le haghaidh cineál comhaid bitmap; cén cineál comhaid bitmap é seo. Is féidir leat tátal a bhaint astu, b'fhéidir, as an dara sraith a fhritháireamh 2, uimhir 2 bheart, Tá patrún 0 agus 1 ar gur ionann cad é? Téann an méid de rud éigin, agus tá sé ar aghaidh ó ann. Mar sin, i 4 sraith fhadhb, beidh tú a shiúil trí roinnt de na rudaí seo. Ní bheidh muid suas go deireadh ag tabhairt aire faoi gach ceann acu, ach fógra a thosaíonn sé a fháil suimiúil thart ar líne nó beart 54, rgbtBlue, Glas agus Dearg. Má tá tú ag éisteacht riamh an t-acrainm RGB, dearg glas gorm, tá sé seo aon tagairt leis sin. Mar gheall ar casadh sé amach is féidir leat a péint gach dathanna an tuar ceatha le roinnt meascán de dearg agus gorm agus glas. Agus, go deimhin, d'fhéadfadh na tuismitheoirí sa seomra cuimhne ar roinnt de na teilgeoirí luaithe. Na laethanta seo, a fheiceann tú ach 1 solas geal ag teacht amach as lionsa. Ach ar ais sa lá, bhí tú an lionsa dearg, an lionsa gorm, agus an lionsa glas agus le chéile dírithe siad ar an scáileán agus bhunaigh siad pictiúr colorful. Agus go minic go leor go mbeadh scoileanna lár agus scoileanna ard ag na lionsaí riamh-sin-beagán Askew ar neamhní, mar sin bhí tú saghas féachaint ar íomhánna dúbailte nó triple, ach go raibh an smaoineamh. Bhí tú solas dearg agus glas agus gorm péinteáil pictiúr. Agus is é an bprionsabal céanna a úsáidtear i ríomhairí. Mar sin, i measc na dúshláin, ansin, le haghaidh tú i fhadhb a leagtar 4 ag dul a bheith ar rudaí a roinnt; tá sí ar cheann a athrú i ndáiríre an íomhá. Chun páirt a ghlacadh i patrún de 0 agus 1, ar figiúr amach a léiríonn smután de 0 agus 1 ar cad atá i struchtúr mar seo, agus figiúr sin amach conas a mhacasamhlú an pixel: an reds, na gormacha, an Greens taobh istigh ionas gur nuair Breathnaíonn an pictiúr mar seo ar dtús d'fhéadfadh, breathnú mar seo in ionad ina dhiaidh sin. I measc na dúshláin eile, freisin, tá dul a bheith go mbainfidh tú a thabhairt ar láimh íomhá dlí-eolaíochta de chomhad iarbhír as ceamara digiteach agus ar an cheamara, uair amháin ar am, bhí a bunch iomlán de grianghraif. Is é an fhadhb, scriosadh thaisme nó go raibh muid an íomhá truaillithe ar bhealach. Rudaí a tharlóidh dona le ceamaraí digiteacha, agus mar sin de a chóipeáil againn go tapa gach ceann de na s 0 agus 1 ar amach an chárta ar do shon, shábháil iad go léir i 1 comhad mór, agus ansin beidh muid iad a thabhairt ar láimh a thabhairt duit i fhadhb a leagtar 4 ionas gur féidir leat scríobh le clár i C le cur ar ais gach ceann de na jpeg, go hidéalach. Agus casadh sé amach go jpeg, cé go mbíonn siad beagán de formáid comhaid casta, tá siad i bhfad níos casta ná an aghaidh miongháire anseo. Casadh sé amach go dtosaíonn gach JPEG leis na patrúin chéanna de 0 agus 1 ar. Mar sin, ag baint úsáide as lúb fad nó le haghaidh lúb nó comhchosúil, is féidir leat abair leo thar na s 0 agus 1 i íomhá seo fhóiréinseach agus gach uair a fheiceann tú ar an patrún speisialta a s sainithe sa tacar fhadhb sonraíocht, is féidir leat glacadh leis, 'Ó, anseo, le dóchúlacht an-ard, tús le JPEG, 'agus chomh luath agus a fhaigheann tú an patrún céanna, éigin líon na mbeart nó cilibheart nó meigibheart ina dhiaidh sin, is féidir leat glacadh leis, 'Ooh! Seo a JPEG sa dara fomhír, an grianghraf ghlac mé tar éis an chéad cheann. Lig dom a stopadh ag léamh go comhad ar dtús, tús a scríobh an ceann nua. ' Agus is é an t-aschur ar do chlár pset 4 ag dul a bheith mar go leor le 50 jpeg. Agus más rud é nach bhfuil sé 50 jpeg, tá tú beagán de lúb. Má tá tú líon gan teorainn de jpeg, tá tú lúb gan teorainn. Mar sin, go, freisin a bheidh, go leor le cás coiteann. Sin an méid atá ar na spéire. Tráth na gCeist 0, taobh thiar dúinn. Realize, in aghaidh an mo ríomhphost, go invariably tá folks atá áthas ar an bheirt, saghas neodrach, agus brónach timpeall tráth na gceist 0 am. Agus le do thoil teagmháil a dhéanamh le dom, an TFS ceann, Zamyla, do TF féin nó ceann de na CAanna bhfuil a fhios agat más mian leat a phlé conas a chuaigh rudaí. Mar sin, le luí na tuismitheoirí anseo sa seomra, cad é an leabharlann CS50? Post maith. Cad é an leabharlann CS50? Yeah? [Freagraí na Mac Léinn, dothuigthe] >> Maith go leor, maith. Mar sin, tá sé ina sraith prewritten de chód a scríobh againn, leis an bhfoireann,, chuirimid ar fáil duit, a chur ar fáil ar roinnt feidhmiúlachtaí coitianta. Stuif mhaith a fháil dom ar shraith; fháil o dom, gach ceann de na feidhmeanna atá liostaithe anseo. Ag tosú anois, tús a chur orainn a ghlacadh i ndáiríre ar na rothaí oiliúna as. Mar sin, táimid ag dul chun tús a chur amach ar "teaghrán" ó tú, Ba é a bhí, cuimhne, ach synonym do cén cineál sonraí iarbhír? * Char. Mar sin, do thuismitheoirí, go raibh dócha - go maith, agus mar sin * ruabhric beidh orainn tús a chur chun ar an scáileán ar fad níos mó agus muid ag scriosadh "teaghrán" as ár stór focal, ar a laghad nuair a thagann sé i ndáiríre a scríobh cód. Mar an gcéanna, beidh muid ag stopadh ag baint úsáide as roinnt de na feidhmeanna i bhfad, mar go bhfuil ár gcláir ag dul a fháil níos sofaisticiúla seachas scríobh ach cláir a suí ansin le blinking pras, ag fanacht leis an úsáideoir rud éigin a chlóscríobh isteach Feicfidh tú a fháil do ionchur ó áiteanna eile. Mar shampla, beidh tú iad a fháil as sraith giotán ar an iarracht crua áitiúil. Feicfidh tú a fháil in ionad dóibh sa todhchaí ó nasc líonra, roinnt suíomh gréasáin áit éigin. Mar sin a ligean craiceann ciseal ar ais seo don chéad uair, agus tarraingt an fearas CS50 suas agus an comhad seo ar a dtugtar CS50.h, a tá tú géar lena n-áirítear ar feadh seachtainí. Ach a ligean ar a fheiceáil i ndáiríre cad atá taobh istigh de seo. Dá bhrí sin tá an barr an comhad i gorm ach a bunch iomlán de na tuairimí, faisnéis bharántas agus ceadúnú. Is é seo an saghas paraidím coitianta i bogearraí, mar gheall ar a lán de bogearraí na laethanta cad atá ar a dtugtar "foinse oscailte," rud a chiallaíonn go bhfuil duine éigin i scríbhinn leis an gcód agus cuireadh ar fáil faoi shaoirse, ní hamháin a reáchtáil agus a úsáid, ach léigh iarbhír agus a athrú agus a chomhtháthú isteach i do chuid oibre féin. Mar sin, go cad atá tú ag baint úsáide as, bogearraí foinse oscailte, cé gur i bhfoirm an-bheag. Má scrollbharra mé síos roimhe seo ar na tuairimí, áfach, beidh muid tús a fheiceáil roinnt rudaí níos mó eolas. Mar sin, fógra ag barr anseo, go n-áirítear an comhad CS50.h a bunch iomlán de chomhaid header. Anois, an chuid is mó de na nach bhfuil feicthe againn roimhe seo, ach tá sé ar cheann eolas; cé acu de na feicthe againn, cé go hachomair, go dtí seo? Yeah, leabharlanna caighdeánach. Stdlib.h Tá malloc, mar sin nuair a thosaigh muid ag caint faoi leithdháileadh cuimhne dinimiciúil, a beidh muid ag teacht ar ais chuig an tseachtain seo chugainn chomh maith, thosaigh muid lena n-áirítear an gcomhad sin. Casadh sé amach nach bool agus fíor nó bréagach a dhéanamh ann i ndáiríre i C, per se, ach amháin má tá tú an comhad seo anseo. Mar sin, ní mór dúinn, ar feadh seachtaine, ag lena n-áirítear caighdeán bool.h ionas gur féidir leat úsáid a bhaint as an coincheap de. bool, fíor nó bréagach Gan seo, a bheadh ​​agat a shórtáil de falsa sé agus o úsáid agus díreach glacadh leis treallach go bhfuil 0 bréagach agus 1 fíor. Anois, má táimid scrollaigh síos a thuilleadh, is anseo ar ár sainmhíniú ar teaghrán. Casadh sé amach, mar atá againn a dúirt roimh, nach bhfuil an * ábhar i ndáiríre. Is féidir leat fiú spás go léir timpeall. Táimid, an trian seo, curtha chun cinn mar seo a dhéanamh soiléir go bhfuil an * a dhéanamh leis an gcineál. Ach a bhaint amach, ach is coitianta, más rud é nach beag níos coitianta, is é a chur sé ann ach feidhmiúil tá sé an rud céanna. Ach anois, má léigh muid síos a thuilleadh, a ligean ar ghlacadh le breathnú ar a rá, GetInt, mar gheall ar úsáid againn go bhfuil, b'fhéidir, roimh aon rud eile seo seimeastar. Agus is é anseo GetInt. Is é seo cad é? Is é seo an fhréamhshamhail. Mar sin, go minic, ní mór dúinn fréamhshamhlacha a chur ag barr ár. Comhaid c, ach is féidir leat a chur freisin fréamhshamhlacha i gcomhaid header,. comhaid h, mar seo amháin anseo, ionas gur nuair a scríobhann tú roinnt feidhmeanna gur mian leat daoine eile a bheith in ann úsáid a bhaint as, a bhfuil díreach an cás leis an leabharlann CS50, tú, ní hamháin i bhfeidhm do fheidhmeanna i rud éigin cosúil le CS50.c, chuir tú freisin an fréamhshamhlacha ní ag barr an chomhaid, ach ag barr an comhad header, ansin go bhfuil comhad header cad measc cairde agus comhghleacaithe, le géar san áireamh i gcuid cód féin. Mar sin, am seo go léir tá tú ag lena n-áirítear gach ceann de na fréamhshamhlacha go héifeachtach ag barr do chomhad, ach trí an géar-áirítear meicníocht go bunúsach cóipeanna agus leafaois an comhad seo i do chuid féin. Anois, tá anseo roinnt doiciméadú go cothrom mionsonraithe. Táimid tar éis go leor i bhfad ghlacadh maidir le deonú go bhfaigheann GetInt ina slánuimhir, ach anois sé amach tá roinnt cásanna chúinne, ceart? Cad a tharlaíonn má an t-úsáideoir cineálacha i roinnt go bhfuil ar bhealach mór freisin? A quintillion, nach féidir léi díreach taobh istigh de o? Cad é an t-iompar ag súil? Bhuel, go hidéalach, tá sé intuartha. Mar sin, sa chás seo, má tá tú a léamh an cló breá i ndáiríre, Feicfidh tú a fheiceáil go más rud é nach féidir leis an líne a léamh, an INT_MAX tuairisceáin. Riamh tá muid Labhair faoi seo, ach bunaithe ar a chaipitliú, cad é, is dócha? Tá sé i gcónaí, mar sin tá sé roinnt tairiseach speisialta a s dearbhaithe is dócha i gceann de na comhaid header go dtí níos airde sa chomhad, agus tá sé INT_MAX is dócha rud éigin cosúil le, garbh, 2 billiún. An smaoineamh a bheith go mar is gá dúinn a signify ar bhealach go bhfuil rud éigin a chuaigh mícheart, againn, tá, tá 4 billiún uimhreacha ar fáil dúinn, diúltach 2 billiún ar suas le 2 billiún, a thabhairt nó a thógáil. Bhuel, is é an méid atá coitianta i gcláir ghoideann tú ach ceann amháin de na huimhreacha sin. B'fhéidir 0, 2 b'fhéidir billiún, b'fhéidir diúltach 2 billiún. Mar sin, chaitheann tú ar cheann de do luachanna is féidir ionas gur féidir leat tiomantas a thabhairt ar fud an domhain má tharlaíonn rud éigin mícheart, beidh mé ar ais an luach seo Super-mór. Ach ní mian leat an t-úsáideoir clóscríobh rud éigin cryptic cosúil le "2, 3, 4 ..." de líon mór i ndáiríre, áit a bhfuil tú a ghinearálú ionad mar tairiseach. Mar sin, i ndáiríre, má bhí a bheith agat anal na seachtainí beaga anuas, ag am ar bith a ghlaonn tú GetInt, ba chóir duit a bheith a sheiceáil le coinníoll dá. An raibh an cineál úsáideora i INT_MAX, nó níos mó go sonrach, Rinne INT_MAX ais GetInt? Toisc más rud é go raibh sé, go gciallaíonn i ndáiríre nach raibh siad cineál é; rud éigin botún sa chás seo. Mar sin, is é seo cad atá ar a dtugtar de ghnáth mar luach "fairtheora", rud a chiallaíonn go díreach speisialta. Bhuel, a ligean ar dul anois chuig an. Comhaid c. Tá an comhad C ann i an fearas ar feadh tamaill, agus, go deimhin, tá an fearas réamhthiomsaithe le haghaidh tú isteach sa rud ar a dtugtar againn "cód rud," ach nach bhfuil ach ábhar a thabhairt duit nuair a tá sé mar a fhios ag an gcóras, sa chás seo, áit a bhfuil sé, an fearas. Ach a ligean ar scrollú síos anois GetInt, agus a fheiceáil conas a GetInt ag obair ar fad an am seo. Mar sin anseo tá muid tuairimí den chineál céanna ó roimh. Lig dom a súmáil isteach ar chuid díreach leis an gcód, agus cad atá againn le haghaidh GetInt méid seo a leanas. Bíonn sé aon ionchur agus tuairisceáin sé ina slánuimhir, agus (fíor), agus mar sin ní mór dúinn a lúb d'aon ghnó gan teorainn ach, is dócha, beidh orainn briseadh amach as an bhealach, nó filleadh ó laistigh den. Mar sin a ligean ar a fheiceáil conas a oibríonn seo. Bhuel, is cosúil dúinn a bheith ag baint úsáide as GetString sa chéad líne taobh istigh an lúb, 166. Tá sé seo anois dea-chleachtas mar gheall ar cad iad na himthosca D'fhéadfadh GetString seo ar ais eochairfhocal, speisialta NULLComment? Má théann rud éigin mícheart. Cad a d'fhéadfadh dul go mícheart nuair a ghlaonn tú rud éigin cosúil le GetString? Yeah? [Freagra na Mac Léinn, dothuigthe] >> Yeah. Mar sin, b'fhéidir go mainneoidh malloc. Áit éigin faoi bhun an GetString cochall ag glaoch malloc, a leithdháileann chuimhne, rud a ligeann an siopa ríomhaire gach ceann de na carachtair go bhfuil an t-úsáideoir cineálacha i an méarchlár. Agus is dócha an t-úsáideoir a bhí a lán iomlán de ama saor in aisce agus chlóscríobh níos mó, mar shampla, ná 2 billiún carachtair. Carachtair níos mó ná an ríomhaire go bhfuil fiú RAM. Bhuel, tá GetString a bheith in ann a signify a thabhairt duit, fiú má tá sé seo Super, cás cúinne Super neamhchoitianta. Tá sé a bheith ar bhealach ann chun déileáil leis seo, agus mar sin de GetString, má théann muid ar ais agus a doiciméadú a léamh, an bhfuil, i ndáiríre, ar ais NULLComment. Anois, má theipeann ar GetString trína sheoladh ar ais NULLComment, tá GetInt ag dul a theipeann trína sheoladh ar ais INT_MAX, díreach mar fairtheora. Níl iontu seo ach coinbhinsiúin daonna. Is é an t-aon bhealach a bheadh ​​a fhios agat seo an cás Is é ag léamh na doiciméid. Mar sin a ligean scrollú síos go dtí áit a bhfuil an slánuimhir i ndáiríre GotInt. Mar sin má scrollú mé síos le beagán níos mó, i gcomhréir 170 ní mór dúinn a comment os cionn na línte. Mar sin, táimid dhearbhú, i 172, ar n o agus c Char, agus ansin an fheidhm nua seo a bhfuil roinnt de tú shiúil trasna roimh, ach sscanf. Seasann sé seo do teaghrán f scanadh. I bhfocail eile, a thabhairt dom ar shraith agus beidh scanadh mé phíosa eolais a leasa. Mar sin, cad a chiallaíonn? Bhuel, is dócha go cineál mé i, literally, 1 2 3 ag an méarchlár, agus bhuail ansin dul isteach. Cad é an cineál sonraí de 1 2 3 nuair a d'fhill de réir GetString? Tá sé ar ndóigh ar shraith, ceart? Fuair ​​mé ar shraith, mar sin tá 1 2 3 i ndáiríre "1 2 3" leis an 0 \ ag an deireadh é. Níl sé sin ina slánuimhir. Ní sin a roinnt. Breathnaíonn sé cosúil le roinnt, ach nach bhfuil sé i ndáiríre. Mar sin, cad GetInt a dhéanamh? Tá sé a scanadh go teaghrán chlé go deas, 1 2 3 \ 0, agus ar bhealach a aistriú go dtí slánuimhir iarbhír. Anois, is féidir leat an figiúr amach conas é seo a dhéanamh. Má cheapann tú ar ais go dtí pset 2, fuair tú dócha beag compordach le Caesar nó vigenere ionas gur féidir leat abair leo thar téad, is féidir leat carachtair a thiontú ints le pick. Sin a lán iomlán oibre. Cén fáth nach bhfuil glaoch feidhm mhaith sscanf go ndéanann sin duit? Mar sin, ag súil sscanf argóint, sa chás seo ar a dtugtar líne, a bhfuil teaghrán. Tú a shonrú ansin, Sleachta, an-chosúil leis printf, cad a dhéanann tú ag súil a fheiceáil ar an teaghrán? Cad Tá mé ag rá anseo, tá mé ag súil a fheiceáil uimhir dheachúlach agus b'fhéidir carachtar. Agus beidh orainn a fheiceáil cén fáth é seo an cás i láthair na huaire ach. Casadh sé amach go bhfuil an nodaireacht anois reminiscent de na rudaí thosaigh muid ag caint faoi díreach os cionn seachtain ó shin. Cad é & n agus & c dhéanamh dúinn anseo? [Freagraí na Mac Léinn, dothuigthe] >> Yeah. Tá sé seo a thabhairt dom an seoladh n agus seoladh c. Anois, cén fáth go bhfuil tábhachtach? Bhuel, tá a fhios agat go bhfuil feidhmeanna i C is féidir leat filleadh i gcónaí ar luach nó aon luach ar chor ar bith. Is féidir leat filleadh ar slánuimhir, teaghrán, a snámhphointe, a ruabhric, is cuma cad. Nó is féidir leat filleadh ar neamhní, ach is féidir leat filleadh 1 rud amháin fónamh. Ach anseo ba mhaith linn sscanf a thabhairt ar ais dom b'fhéidir slánuimhir, uimhir dheachúlach, agus chomh maith. Char, agus beidh mé a mhíniú cén fáth an ruabhreac i láthair Mar sin, ba mhaith leat go héifeachtach f a thabhairt ar ais 2 rudaí; sin ní hamháin is féidir i C. Mar sin, is féidir leat obair ar fud go bhfuil ag dul i 2 seoltaí, mar gheall ar mar a luaithe is tú a lámh feidhm 2 seoltaí, cad is féidir é sin a dhéanamh feidhm leo? Is féidir é a scríobh chuig na seoltaí. Is féidir leat úsáid a oibriú * agus "dul ann" chun gach ceann de na seoltaí. Tá sé saghas an mheicníocht backdoor, ach an-choitianta a athrú na luachanna na n-athróg i níos mó ná díreach 1 áit, sa chás seo 2. Anois, fógra mé ag seiceáil do == to1, agus ansin ar ais más rud é nach n sin, i ndáiríre, meastóireacht a dhéanamh fíor. Mar sin, tá cad atá ar siúl? Bhuel, go teicniúil, tá gach ba mhaith linn i ndáiríre a tharlaíonn i GetInt seo. Is mian linn a pharsáil, mar a déarfá; ba mhaith linn a léamh ar an teaghrán "1 2 3" agus má tá sé cosúil le níl a roinnt ann, cad táimid ag insint sscanf a dhéanamh ná a chur ar an líon sin, 1 2 3, sa n athróg dom. Cén fáth, ansin, rinne mé seo chomh maith? Cad é an ról atá ag freisin á rá, sscanf, d'fhéadfá a fháil chomh maith le carachtar anseo. [Labhairt na Mac Léinn, dothuigthe] >> Níl - d'fhéadfadh pointe deachúil obair. A ligean ar a shealbhú gur shíl ar feadh nóiméad. Cad eile? [Mac Léinn, dothuigthe] >> Mar sin, shíl go maith, d'fhéadfadh sé a bheith an carachtar NULLComment. Níl sé i ndáiríre, sa chás seo. Yeah? [Mac Léinn, dothuigthe] >> ASCII. Nó, lig dom a ghinearálú níos faide. Is é an c% ann ach le haghaidh seiceáil earráid. Nílimid ag iarraidh go mbeadh carachtar tar éis an líon, ach cad ceadaíonn sé seo dom a dhéanamh ar an méid seo a leanas: Casadh sé amach go sscanf, seachas a stóráil luachanna i n agus c, sa sampla seo anseo, cad a dhéanann sé freisin go bhfuil tuairisceáin sé líon na n-athróg a chur luachanna isteach Mar sin, má scríobhann tú ach amháin i 1 2 3, ansin ach tá an% d ag dul a mheaitseáil agus ní raibh ach faigheann n stóráil le luach cosúil le 1 2 3 agus rud ar bith a fhaigheann a chur i c; fós c luach truflais, mar a déarfá. Dramhaíl mar ní tá sé curtha initialized le roinnt luach. Mar sin, sa chás sin, tuairisceáin sscanf 1, mar gheall ar daonra mé ar cheann de na leideanna, agus sa chás sin, iontach. Tá mé o, agus mar sin saor in aisce mé an líne saor in aisce le cuimhne go GetString leithdháilte i ndáiríre, agus ansin mé ar ais n. Eile, má wondered tú riamh i gcás go retry dtagann ráiteas ón a thagann, ó dheis anseo. Más rud é, ag gcodarsnacht leis sin, cineál mé i 1 2 3 foo, ach cuid ord randamach de théacs, tá sscanf ag dul a fheiceáil, ooh, uimhir, ooh, uimhir, ooh, uimhir, ooh - f. Agus tá sé ag dul a chur ar an 1 2 3 i n. Tá sé seo ag dul a chur ar an f i c, agus ansin 2 ar ais. Mar sin, ní mór dúinn, ach ag baint úsáide as an sainmhíniú bunúsach iompair scanf, an ar bhealach an-simplí - go maith, casta ag an gcéad amharc, ach ag deireadh an lae, meicníocht simplí go leor a rá, an bhfuil ina slánuimhir, agus má tá, go bhfuil an rud amháin a fuair mé? Agus is é an spás bán anseo d'aon ghnó. Má tá tú ag léamh an doiciméadú sscanf, Insíonn sé leat go bhfuil má tá tú píosa de spás bán ag tús nó deireadh, sscanf ligfidh freisin an t-úsáideoir, ar chúis ar bith, a bhuail spacebar 1 2 3, agus a bheidh dlisteanach. Ní bheidh sé yell ag an úsáideoir díreach toisc go mbuaileann siad an spacebar ag tús nó deireadh, a bhfuil ach beagán níos éasca le húsáid. Ceisteanna ar bith, ansin, ar GetInts? Yeah? [Ceist na Mac Léinn, dothuigthe] >> Good question. Cad a tharlaíonn má chlóscríobh tú díreach i ruabhric, cosúil f hit, agus cuir isteach gan riamh clóscríobh 1 2 3; cad a cheapann tú a bheadh ​​ar an iompar na líne seo de chód a bheith ansin? Sin, is féidir sscanf chlúdach go freisin, mar sa chás sin, níl sé ag dul a líonadh n nó c; tá sé ag dul a thabhairt ar ais in ionad 0. Agus sa chás sin, tá mé ag teacht chomh maith go cás, toisc go bhfuil an luach ionchais mhaith liom 1. Ba mhaith liom ach 1, agus gan ach 1 rud a bheidh le líonadh. Dea-gceist. Daoine eile? Gach ceart, mar sin a ligean s ní théann tríd gach ceann de na feidhmeanna i anseo, ach an ceann cosúil le bheith, b'fhéidir, an úis atá fágtha Tá GetString mar casadh sé amach go GetFloat, GetInt, GetDouble, GetLongLong gach punt a lán de a gcuid feidhmeanna a GetString. Mar sin a ligean ar ghlacadh le breathnú ar conas a bhfuil sé i bhfeidhm anseo. Breathnaíonn sé seo ar cheann ar casta beag ach úsáideann sé an bunúsacha céanna gur thosaigh muid ag caint faoi an tseachtain seo caite. Mar sin, i GetString, a thógann aon argóint de réir an neamhní suas anseo, agus tuairisceáin sé ar shraith; mar sin tá mé á dhearbhú teaghrán a dtugtar maolán. Níl a fhios agam i ndáiríre cad atá ag dul a úsáid le haghaidh fóill, ach beidh orainn a fheiceáil. Breathnaíonn cosúil le cumas, is é de réir réamhshocraithe, 0; nach bhfuil cinnte go leor ina bhfuil seo ag dul. Níl mé cinnte cad n ag dul a úsáid le haghaidh fóill. Ach anois tá sé ag fáil beagán níos suimiúla, mar sin ag teacht 243, Dearbhaím againn c o, tá sé seo saghas mion dúr. Tá Char 8 giotán, agus is féidir 8 giotán a stóráil cé mhéad luachanna éagsúla? 256. Is é an fhadhb, más mian leat a bheith 256 carachtar ASCII éagsúla, ina bhfuil, má cheapann tú ar ais, agus nach bhfuil an rud a chur de ghlanmheabhair. Ach má cheapann tú ar ais go dtí chairt mór ASCII a bhí againn seachtain ó shin, bhí, sa chás sin, 128 nó 256 carachtair ASCII. Úsáid againn ar fad na patrúin 0 agus 1 ar bun. Sin fadhb más mian leat a bheith in ann a bhrath earráid. Toisc má tá tú ag baint úsáide as cheana féin 256 luachanna do charachtair, nach raibh tú plean i ndáiríre amach romhainn, mar anois tá tú aon bhealach a rá, "Ní hé seo an carachtar legit; tá sé seo roinnt teachtaireacht mícheart." Mar sin, cad a dhéanann an domhan, a úsáideann siad an luach is mó atá romhainn, rud éigin cosúil le slánuimhir ionas go bhfuil tú ar roinnt dÚsachtach de giotán, 32 do 4 billiún luach fhéideartha, ionas gur féidir leat deireadh ach suas ag baint úsáide as, go bunúsach, 257 acu, tá 1 de thart ar bhrí speisialta mar earráid. Mar sin a ligean ar a fheiceáil conas a oibríonn seo. I gcomhréir 246, tá mé an lúb agus mór go bhfuil glaoch fgetc; comhad bhrí f, getc, agus ansin ionchur caighdeánach. Géara amach seo ach ar an mbealach níos cruinne a rá "léigh na méarchlár." Méarchlár ciallaíonn Standard ionchur, ciallaíonn aschur caighdeánach scáileán, agus earráid chaighdeánach, agus beidh orainn a fheiceáil i pset 4, an scáileán, ach cuid ar leith den scáileán ionas nach bhfuil sé conflated leis an aschur iarbhír raibh sé i gceist tú a phriontáil, ach níos mó ar sin sa todhchaí. Mar sin, ciallaíonn fgetc ach léamh amháin a charachtar as an méarchlár, agus é a stóráil i gcás? Stóráil i c, agus ansin a sheiceáil, agus mar sin tá mé ag baint úsáide as ach roinnt conjunctions Boole anseo, seiceáil nach ndéanann sé ionann iad \ n, an t-úsáideoir bhuail sin isteach. Is mian linn a stopadh ag an bpointe sin, deireadh an lúb, agus ba mhaith linn freisin a sheiceáil le haghaidh an tairiseach speisialta, EO, agus má tá a fhios agat nó buille faoi thuairim - cad a sheasann sé do? Deireadh comhaid. Dá bhrí sin tá den chineál seo nonsensical, mar má tá mé ag clóscríobh ag an méarchlár, níl i ndáiríre níl aon chomhad baint acu leis an, ach tá sé seo sórtáil ach an téarma cineálach a úsáidtear go gciallaíonn go bhfuil aon rud eile ag teacht ó na daoine ar mhéara. EO. Deireadh comhaid. Mar leataobh, má tá tú bhuail riamh rialú d ar do mhéarchlár, nach mbeadh tú a bheith fós; tú bhuail rialú c. Ach cuireann rialú d seo EO speisialta ar a dtugtar i gcónaí. Mar sin, anois ní mór dúinn ach cuid leithdháileadh cuimhne dinimiciúil. Mar sin, má n + 1> acmhainn, anois beidh mé a mhíniú n. n bhfuil ach cé mhéad bytes faoi láthair ar an Maolán, an teaghrán go bhfuil tú ag tógáil faoi láthair suas as an t-úsáideoir. Má tá tú carachtair níos mó i do Maolán ná mar a bhfuil tú cumas sa Maolán, intuitively, tá an méid is gá dúinn a dhéanamh ansin an toilleadh a leithdháileadh níos mó. Tá mé ag dul chun skim thar roinnt de na uimhríochtúil anseo agus díriú ach ar an bhfeidhm seo anseo. Tá a fhios agat cad é malloc, nó ar a laghad ar ginearálta. Take a buille faoi thuairim cad a dhéanann realloc. [Freagra na Mac Léinn, dothuigthe] >> Yeah. Agus nach bhfuil ag cur sé go leor cuimhne; reallocates sé i gcuimhne mar a leanas: Má tá spás ann i gcónaí ag deireadh an teaghrán a thabhairt duit níos mó de go bhfuil cuimhne ná mar a thugann sé ar dtús leat, agus ansin beidh tú go bhfuil cuimhne breise. Sin, is féidir tú a chur díreach na carachtair teaghráin droim le droim le droim ar ais. Ach más rud é nach bhfuil an cás, mar gheall ar fhan tú ró-fhada agus fuair rud éigin randamach plopped i gcuimhne ann, ach níl breise cuimhne síos anseo, tá go leor. Realloc ag dul go léir a dhéanamh ar an troma a ardú ar do shon, bogadh an teaghrán atá tú a léamh i go dtí seo ó anseo, é a chur síos ansin, agus ansin a thabhairt rúidbhealach roinnt níos mó ag an bpointe sin tú. Mar sin, le tonn na láimhe, lig dom a rá go bhfuil an méid GetString a dhéanamh Tá sé ag tosú sé le maolán beag, b'fhéidir 1 carachtar aonarach; agus más rud é an t-úsáideoir cineálacha i 2 carachtair, chríochnaíonn suas GetString ag iarraidh realloc agus deir, "Ooh, ní raibh 1 carachtar go leor. Tabhair dom 2 carachtair. ' Ansin, má léigh tú tríd an loighic an lúb, tá sé ag dul a rá, 'Ooh, an t-úsáideoir clóscríofa i 3 carachtair. Tabhair dom anois nach 2 ach 4 carachtair, ansin a thabhairt dom 8, ansin a thabhairt dom 16 agus 32. ' Ós rud é go bhfuil mé ag dúbailt an cumas gach uair Ciallaíonn sé sin nach bhfuil an maolán ag dul ag fás go mall. Tá sé seo ag dul chun fás go tapa Super, agus céard a d'fhéadfadh a bheith ar an leas a bhaint as sin? Cén fáth dúbailt mé an méid de na Maolán, cé go raibh an t-úsáideoir d'fhéadfadh go díreach de dhíth 1 carachtar breise ó na méarchlár? [Freagra na Mac Léinn, dothuigthe]. >> Cad é sin? Go díreach. Ní gá duit ag fás mar go minic. Agus é seo ach de chineál ar a - you're fálaithe do geallta anseo. An smaoineamh a bheith go bhfuil tú ag iarraidh a ghlaoch realloc go leor, mar bíonn sé a bheith mall. Aon uair a iarrann tú an córas oibriúcháin do chuimhne, mar beidh tú a fheiceáil go luath i sraith fhadhb amach anseo, bíonn sé a chur roinnt ama. Mar sin, a íoslaghdú an méid sin ama, fiú má tá tú ag wasting roinnt spáis, bíonn a bheith ina rud maith. Ach má táimid léamh tríd an chuid deiridh den GetString anseo, agus arís, nach bhfuil tuiscint a fháil ar gach líne aonair anseo chomh tábhachtach inniu. Ach faoi deara go iarrann sé ar deireadh thiar malloc arís, agus leithdháileann sé díreach mar bytes go leor mar ní mór é le haghaidh an teaghrán agus caitheann ansin ar shiúl trí ghlaoch ar saor in aisce, an maolán excessively mór, má fuair dhó sé go deimhin, uair an iomarca. I mbeagán focal, tá go conas a GetString ag obair ar fad an am seo. Gach a dhéanann sé é a léamh carachtar amháin ag an am arís agus arís agus arís eile agus gach uair riachtanais sé roinnt cuimhne breise, Iarrann sé ar an córas oibriúcháin chun é trí ghlaoch realloc. Ceisteanna ar bith? Gach ceart. An ionsaí. Anois go bhfuil muid leideanna a thuiscint, nó ar a laghad ag éirí níos eolach ar threo, a ligean ar a mheas conas a thosaíonn an domhan ar fad le titim más rud é nach bhfuil tú a chosaint go leor i gcoinne úsáideoirí sáraíochta, daoine atá ag iarraidh a hack isteach i do chóras. Daoine atá ag iarraidh a steal do bhogearraí ag teacht timpeall ar roinnt cód clárúcháin go bhféadfadh siad a bheith ar shlí eile a chlóscríobh isteach Féach ar an sampla anseo, a bhfuil ach C cód go bhfuil phríomhfheidhm ag an mbun, glaonna go bhfuil feidhm foo, agus tá sé cad a rith sé le foo? [Mac Léinn] Tá argóint amháin. >> Argóint Aonair. Mar sin, argv [1], rud a chiallaíonn an focal ar dtús leis an t-úsáideoir clóscríofa ag an líne orduithe tar éis a.out nó cibé an clár ar a dtugtar. Mar sin, foo, ag an mbarr a thógann, i * ruabhreac, ach tá * Char ach cad é? Teaghrán. Níl aon rud nua anseo, agus go bhfuil teaghrán bheith ar a dtugtar treallach bar. Sa líne seo anseo, ruabhric c [12], i saghas leath-theicniúil Béarla, cad an líne seo a dhéanamh? Sraith de -? Carachtair. Tabhair dom le sraith de 12 carachtair. Mar sin, d'fhéadfadh muid a glaoch ar an maolán. Sé ar a dtugtar go teicniúil c, ach maolán i gcláir ach ciallaíonn a bunch de spás gur féidir leat a chur ar roinnt rudaí isteach Ansin ar deireadh, memcpy, ní againn a úsáid roimh. Ach is féidir leat buille faoi thuairim is dócha cad a dhéanann sé. Cóipeanna sé cuimhne. Cad a dhéanann sé? Bhuel, cóipeanna sé cosúil barra, a ionchur, i c, ach amháin suas go dtí an fad bar. Ach tá a bug anseo. Maith go leor, mar sin go teicniúil ba chóir dúinn a dhéanamh i ndáiríre strlen (barra) x deachúlach (ruabhric), go bhfuil an ceart. Ach i gcás is measa anseo, a ligean ar glacadh leis go bhfuil that's - mar sin, maith go leor. Ansin, níl 2 bugs. Mar sin, is féidir MÉID a (ruabhric), ceart go leor, a ligean ar seo a dhéanamh beagán níos leithne. Mar sin, anois tá deis ann fós a bug, a bhfuil cad é? [Freagra na Mac Léinn, dothuigthe] Seiceáil >> ar cad? Maith go leor, mar sin ba chóir dúinn a bheith ag seiceáil le haghaidh NULLComment, mar gheall ar rudaí a tharlóidh dona nuair a bhfuil do pointeoir NULLComment, Mar a d'fhéadfadh tú suas go deireadh ag dul ann, agus ní ba chóir duit riamh ag dul go dtí Eolas faoin margadh saothair trí dereferencing sé leis an oibreoir *. Mar sin, go maith, agus cad eile atá á dhéanamh againn? Logically níl locht anseo freisin. [Freagra na Mac Léinn, dothuigthe] >> Seiceáil Mar sin, má argc ≥ 2? Maith go leor, mar sin níl 3 bugs sa chlár anseo. Níl muid ag seiceáil má tá an t-úsáideoir clóscríofa i ndáiríre i rud ar bith i argv [1], go maith. Mar sin, cad an fabht tríú? Yeah? [Freagra na Mac Léinn, dothuigthe] >> Chéasta. Mar sin, sheiceáil muid ar cheann scéal. Sheiceáil muid go hintuigthe é a chóipeáil cuimhne níos mó ná mar a bheadh ​​níos mó ná an fad bar. Mar sin, má tá an teaghrán é an t-úsáideoir clóscríofa i 10 carachtair ar fad, tá sé seo ag rá, 'ach a chóipeáil 10 carachtair.' Agus sin ceart go leor, ach cad más rud é an t-úsáideoir clóscríofa i bhfocal ag an pras cosúil le focal a 20 carachtar; é seo, ag rá cóip 20 carachtair ó barra ar cad? c, ar shlí eile ar a dtugtar mar ár Maolán, rud a chiallaíonn scríobh tú díreach sonraí go dtí 8 láithreacha beart nach bhfuil tú féin, agus nach bhfuil tú féin iad sa chiall nach bhfuil leithdháilte tú iad. Mar sin, is é seo cad atá ar a dtugtar de ghnáth mar an ionsaí thar maoil maolán, nó Maolán róchaiteachas ionsaí, agus tá sé ionsaí sa chiall go más rud é an t-úsáideoir nó go bhfuil an clár go s ag iarraidh do fheidhm seo a dhéanamh go mailíseach, cad a tharlaíonn i ndáiríre d'fhéadfadh eile a bheith go leor dona. A ligean ar ghlacadh le breathnú ar an bpictiúr seo anseo. Léiríonn an pictiúr ar do Stack de chuimhne. Agus cuimhne go glaoch gach am a théann tú a chomhlíonadh, leat seo a fháil fráma beag ar an chruach agus ansin, bealach eile agus ansin, bealach eile agus ansin ceann eile. Agus go dtí seo tá muid díreach de chineál ar achomaireacht seo amach mar Dronuilleoga go bhfuil ar an chlár nó ar an scáileán anseo. Ach má táimid súmáil isteach ar cheann de na dronuilleoga, nuair a ghlaonn tú feidhm foo, casadh sé amach go bhfuil níos mó ar an chruach taobh istigh den fráma agus go dronuilleog ná díreach x agus y agus a agus b, cosúil le raibh muid ag caint faoi babhtála. Casadh sé amach go bhfuil roinnt sonraí níos ísle-leibhéal, i measc iad ar ais seoladh. Mar sin, casadh sé amach nuair a iarrann mó foo, tá príomh-eolas foo cén seoladh is mó is ea an ríomhaire a chuimhne. Mar gheall ar shlí eile, mar a luaithe is foo dhéanamh forghníomhaitheach, mar sa chás seo anseo, nuair a tá tú teacht ar an brace dlúth chatach ag deireadh na foo, conas a dhéanann an heck foo a fhios áit a bhfuil rialú an chláir ceaptha chun dul? Casadh sé amach go bhfuil an freagra na ceiste sa dronuilleog dearg anseo. Léiríonn sé seo pointeoir, agus tá sé suas go dtí an ríomhaire a stóráil go sealadach, ar an chruach mar a thugtar air go bhfuil an seoladh is mó ionas go mbeidh luaithe is foo dhéanamh forghníomhaitheach, fhios ag an ríomhaire áit agus cén líne is mó dul ar ais chuig. Baineann pointeoir fráma Sábháilte céanna leis seo. Léiríonn bar * Char anseo cad? Bhuel, anois tá an teascán gorm anseo fráma foo ar, cad é bar? Maith go leor, mar sin tá barra ach an argóint leis an fheidhm foo. Mar sin anois táimid ar ais ar an pictiúr ar an eolas. Níl rudaí níos mó agus níos mó distractions ar an scáileán ach tá an teascán gorm éadrom cad tá muid ag tarraingt ar an gclár dubh chun rud éigin cosúil le babhtáil. Is é sin an fráma do foo agus an rud amháin i sé ceart anois tá barra, bhfuil an paraiméadar seo. Ach ba cheart cad eile a bheith i an chairn, de réir an gcód seo anseo? Char c [12]. Mar sin, ba chóir dúinn féach freisin 12 cearnóga de chuimhne, a leithdháiltear ar athróg ar a dtugtar c. Agus go deimhin, bhfuil againn go bhfuil ar an scáileán. Tá an barr an-go bhfuil c [0], agus ansin an t-údar an léaráid seo ní raibh bac tarraingt gach ceann de na cearnóga ach tá go deimhin, 12 go mar má fhéachann tú ar an ceart ag bun, c [11], má tá tú comhaireamh ó 0, is é an 12 bytes den sórt sin. Ach anseo an fhadhb: Cén treo a bhfuil c ag fás? Sórtáil de bharr anuas, ceart? Má thosaíonn sé ag an mbarr agus fásann go dtí an bun, Ní breathnú cosúil fhág muid féin rúidbhealach i bhfad anseo ar chor ar bith. Táimid tar éis cineál péinteáilte féin isteach i gcúinne, agus go c [11] Is ceart suas i gcoinne barra, a bhfuil ceart suas in aghaidh pointeoir fráma cruaiche, a bhfuil an ceart suas i gcoinne an seoladh fillte; níl seomra ar bith níos mó. Mar sin, cad é an impleacht, ansin, más rud é go scriú tú suas, agus iarracht a dhéanamh tú ag léamh 20 bytes comhad ionsáite i maolán 12-beart? I gcás ina mbeidh na 8 bytes breise ag dul chun dul? Inside gach rud eile, tá cuid acu Super tábhachtach. Agus an rud is tábhachtaí, d'fhéadfadh a bheith, tá an bosca dearg ann, seoladh ar ais. Mar gheall ar dócha go bhfuil tú ceachtar trí thimpiste nó d'adversarially forscríobh sin 4 bytes, an seoladh sin pointeoir, ní hamháin le truflais, ach le roinnt a tharlaíonn chun ionadaíocht a dhéanamh seoladh iarbhír i gcuimhne? Cad é an implicaiton, go loighciúil? [Freagraí na Mac Léinn, dothuigthe] >> Go díreach. Nuair a fhilleann foo agus amas go brace curly, tá an clár ag dul chun dul ar aghaidh gan filleadh ar mó, sé ag dul chun filleadh ar cibé sheoladh sa bhosca dearg. Anois, i gcás clárú bogearraí timpeall, cad é an seoladh a tá ar ais chuig an fheidhm go bhfaigheann ghnáth ar a dtugtar tar éis atá tú íoc as na bogearraí agus ionchur do chód clárúcháin? D'fhéadfaí tú a shórtáil de trick an ríomhaire i nach bhfuil ag dul anseo, ach ina ionad sin, dul suas anseo. Nó, má tá tú i ndáiríre cliste, is féidir le adversary cineál iarbhír i ag an méarchlár, mar shampla, nach bhfuil focal iarbhír, ní 20 carachtair, ach is dócha sé nó sí cineálacha i roinnt carachtair a léiríonn cód? Agus nach bhfuil sé ag dul a bheith C cód, tá sé ag dul a bheith ar na carachtair a léiríonn cóid meaisín dénártha, 0 agus 1 ar. Ach is dócha go bhfuil siad cliste go leor chun é sin a dhéanamh, a ghreamú ar bhealach isteach sa pras GetString rud éigin go bhfuil le chéile go bunúsach cód, agus an 4 deireanach bytes scríobh an seoladh sin ar ais, agus cad a sheoladh a dhéanann go bhfuil ionchur? Siopaí sé sa dronuilleog dearg seoladh an chéad bheart an mhaoláin. Mar sin, caithfidh tú a bheith i ndáiríre cliste, agus tá sé seo a lán de na trialach agus earráid do dhaoine olc amach ann, ach más féidir leat an figiúr amach conas mór é seo maolán, den sórt sin go bhfuil na bearta beaga anuas ar an ionchur a chuireann tú ar an gclár tharlaíonn a bheith coibhéiseach leis an seoladh thús do Maolán, is féidir leat seo a dhéanamh. Má deirimid, de ghnáth, hello, agus \ 0, go bhfuil an méid thagann suas i an maolán. Ach má tá muid níos cliste, agus a líonadh go maolán le cad beidh muid ag glaoch cineálach cód ionsaí, A, A, A, A: ionsaí, ionsaí, ionsaí, ionsaí, nuair a tá sé seo ach rud a dhéanann rud éigin dona. Bhuel, cad a tharlaíonn má tá tú i ndáiríre cliste, go dtiocfadh leat é seo a dhéanamh: Sa bhosca dearg anseo tá sraith de uimhreacha: 80, CO, 35, 08. Fógra a oireann go bhfuil an líon sin suas anseo. Tá sé in ord droim ar ais, ach níos mó ar an am go bhfuil roinnt eile. Fógra go bhfuil an seoladh fillte athraíodh d'aon ghnó comhionann leis an seoladh suas anseo, nach bhfuil an seoladh is mó. Mar sin, má tá an Guy olc Super cliste, tá sé nó sí ag dul a chur san áireamh sa chód ionsaí rud éigin cosúil le, 'Scrios gach ceann de na úsáideora comhaid.' Nó 'Cóipeáil an focal faire,' nó 'Cruthaigh cuntas úsáideora gur féidir liom logáil isteach.' Rud ar bith ar chor ar bith; agus tá sé seo araon an baol agus an chumhacht de C. Toisc go bhfuil tú rochtain ar chuimhne trí leideanna agus is féidir leat scríobh dá bhrí sin, aon rud is mian leat isteach i ríomhaire a chuimhne. Is féidir leat a dhéanamh ar ríomhaire aon rud is mian leat go simplí trí tar éis é a léim thart laistigh dá spás chuimhne féin. Agus mar sin, go dtí an lá, agus mar sin go leor clár agus láithreáin ghréasáin an oiread sin i gcontúirt boil síos go dtí daoine ag cur buntáiste a bhaint as seo. Agus d'fhéadfadh sé seo cosúil mhaith ionsaí Super-sofaisticiúla, ach ní chuireann sé tús a chur i gcónaí go bhealach. Is é an réaltacht go bhfuil an méid a bheidh daoine olc a dhéanamh de ghnáth, bíodh sé ina gclár i láthair ag líne ordaithe nó clár GUI nó ar an suíomh gréasáin, Tá tú tús ach a sholáthraíonn nonsense. Scríobhann tú i bhfocal gur mór i réimse cuardaigh agus bhuail isteach, agus tú ag fanacht a fheiceáil má na tuairteanna láithreán gréasáin. Nó tá tú ag fanacht a fheiceáil má manifests an clár roinnt teachtaireacht earráide. Toisc má fhaigheann tú t-ádh, mar an Guy olc, agus a chur ar fáil duit roinnt ionchur dÚsachtach go dheasca an chláir, go gciallaíonn nach raibh an Ríomhchláraitheoir réamh-mheas do droch-iompar rud a chiallaíonn is féidir leat is dócha, leis an iarracht go leor, triail go leor agus earráid, figiúr amach conas a pá ionsaí níos cruinne. Ní Mar sin, an oiread agus a chuid na slándála a sheachaint ach na hionsaithe seo ar fad, ach a bhrath iad a agus ag lorg iarbhír ar lomáin agus féachaint ar cad tá ionchur dÚsachtach daoine clóscríofa isteach i do láithreán gréasáin. Cad iad na téarmaí cuardaigh daoine clóscríofa i do láithreán gréasáin i súil cur thar maoil maolán éigin? Agus seo go léir boils síos go dtí an Basics simplí cad eagar, agus cad a chiallaíonn sé a leithroinnt agus a úsáid gcuimhne? Agus a bhaineann leis sin, freisin, is é seo. Mar sin a ligean ach Sracfhéachaint taobh istigh de thiomáint crua fós arís. Mar sin, a aisghlaoch tú ó na seachtaine nó dhó ó shin go bhfuil tú nuair comhad a tharraingt go féidir le do athchúrsáil bruscair nó bruscar, cad a tharlaíonn? [Mac Léinn] Ní dhéanfaidh aon ní. >> Yeah, fíor aon rud. Faoi dheireadh má ritheann tú íseal ar spás diosca, beidh Windows nó Mac OS tús a scriosadh comhaid ar do shon. Ach má tarraing tú rud éigin ann, ansin níl sé ar chor ar bith sábháilte. Gach bhfuil do roomate, cara nó ball teaghlaigh a dhéanamh ná cliceáil dúbailte, agus voila. Níl na comhaid go léir sketchy go ndearna tú iarracht a scriosadh. Mar sin, an chuid is mó de dúinn ar a laghad a fhios agat go bhfuil tú a cliceáil ar dheis nó cliceáil a rialú agus folamh an bruscar, nó rud éigin mar sin. Ach fiú ansin, nach bhfuil go leor ar an trick. Toisc cad a tharlaíonn nuair a bhfuil tú comhad ar do thiomáint crua gur ionann roinnt doiciméad focal nó roinnt JPEG? Agus léiríonn sé seo do thiomáint crua, agus a ligean ar rá go léiríonn sé seo sliver anseo go comhad, agus tá sé comhdhéanta de bunch iomlán de 0 agus 1 ar. Cad a tharlaíonn nuair nach bhfuil tú ag tarraing ach go comhad chuig an trashcan nó athchúrsáil bruscair, ach folamh freisin é? Sórtáil de rud ar bith. Níl sé fíor aon rud anois. Anois, tá sé ach rud ar bith, mar gheall ar a tharlaíonn rud beag i bhfoirm tábla seo. Mar sin, tá roinnt de chineál bunachar sonraí nó tábla taobh istigh de ríomhaire a chuimhne go bhfuil go bunúsach 1 colún ar ainmneacha comhaid, agus 1 colún le haghaidh comhad a shuíomh, nuair a fhéadfadh sé seo a bheith suíomh 123, ach uimhir randamach. Mar sin, d'fhéadfadh muid a bheith rud éigin cosúil le x.jpg, agus suíomh 123. Agus cad a tharlaíonn ansin, nuair a fholmhú tú do bhruscar? A théann ar shiúl. Ach cad é, ní théann amach an s 0 agus 1 ar. Mar sin, tá cad a, ansin, an nasc chun pset 4? Bhuel, le pset 4, díreach mar atá againn scriosadh thaisme an cárta flash dlúth go raibh gach ceann de na grianghraif, nó díreach mar bhí truaillithe dó le droch-luck, ní chiallaíonn nach bhfuil na 0 agus 1 ar fós ann. B'fhéidir cúpla ceann acu a cailleadh mar gheall ar a fuair truaillithe rud éigin sa mhéid go raibh roinnt ar 0 1 agus 1, tháinig 0 s. Is féidir rudaí a tharlóidh dona mar gheall ar na bogearraí Buggy nó lochtach crua-earraí. Ach go leor de na píosaí, b'fhéidir go bhfuil fiú 100% díobh fós ann, tá sé ach nach ríomhaire nó an ceamara a fhios nuair a thosaigh JPEG 1 agus nuair a thosaigh JPEG 2, ach má tá tú, an Ríomhchláraitheoir, Tá a fhios, le beagán de savvy, i gcás ina bhfuil na jpeg nó an chuma atá orthu, is féidir leat anailís a dhéanamh ar ar 0 agus 1 agus a rá, 'Ooh. JPEG. Ooh, JPEG. ' Is féidir leat scríobh le clár le go bunúsach ach ar son nó cé lúb go recovers gach uile cheann de na comhaid. Mar sin, an ceacht ansin, chun tús a chur "daingean" erasing do chuid comhad más mhaith leat a sheachaint seo ar fad. Tá? [Ceist na Mac Léinn, dothuigthe] >> An bhfuil cuimhne níos mó ná mar a rinne tú roimh - Oh! Dea-gceist. Sin an fáth, ansin, tar éis fholmhú an bruscar, a dhéanann do ríomhaire a insint duit go bhfuil tú níos mó spás saor in aisce ná mar a rinne tú roimhe seo? In a nutshell, mar tá luí air. Níos teicniúil, bhfuil tú níos mó spáis. Toisc anois a dúirt tú, is féidir leat a chur rudaí eile ina raibh an comhad uair amháin, ach ní chiallaíonn na píosaí ag dul ar shiúl, agus ní chiallaíonn an giotán á n-athrú ar fad 0 s, mar shampla, do do chosaint. Gcodarsnacht leis sin, má tá tú comhad "daingean" erase, nó go fisiciúil scrios an gléas, is é sin i ndáiríre an t-aon bhealach, uaireanta, ar fud sin. Mar sin, cén fáth nach bhfuil muid ag fhágáil ar an nóta leath-scary, agus feicfidh tú muid ar an Luan. CS50.TV