1 00:00:00,000 --> 00:00:00,499 2 00:00:00,499 --> 00:00:01,395 [Ag seinm ceoil] 3 00:00:01,395 --> 00:00:05,590 4 00:00:05,590 --> 00:00:07,940 >> DOUG LLOYD: OK mar sin moladh sula dtosaíonn anseo. 5 00:00:07,940 --> 00:00:11,660 Más rud é nach bhfuil tú ag faire ar an físeán ar leideanna b'fhéidir gur mhaith leat é sin a dhéanamh ar dtús. 6 00:00:11,660 --> 00:00:15,860 Toisc go bhfuil an físeán seo ceann eile mhodh oibre le leideanna. 7 00:00:15,860 --> 00:00:17,574 >> Mar sin, tá sé ag dul chun labhairt faoi ​​roinnt coincheapa 8 00:00:17,574 --> 00:00:19,490 a chlúdaíonn muid sa threo físeán, agus táimid 9 00:00:19,490 --> 00:00:21,948 dul chun snasta os a gcionn anois, ag glacadh leis go bhfuil siad cheana 10 00:00:21,948 --> 00:00:23,090 saghas thuiscint. 11 00:00:23,090 --> 00:00:25,440 Mar sin, go díreach tar éis do rabhadh cothrom go má tá tú ag féachaint ar an físeán seo 12 00:00:25,440 --> 00:00:27,814 agus nach bhfuil tú ag feiceáil an threo físeán, d'fhéadfadh sé saghas 13 00:00:27,814 --> 00:00:29,610 eitilt thar do cheann le beagán. 14 00:00:29,610 --> 00:00:32,080 Agus mar sin d'fhéadfadh sé a bheith níos fearr chun féachaint air san ord sin. 15 00:00:32,080 --> 00:00:34,710 >> Mar sin, atá feicthe againn cheana féin amháin bhealach a bheith ag obair le leideanna, 16 00:00:34,710 --> 00:00:37,810 a bhfuil a dhearbhú againn athraitheach, agus ansin táimid ag 17 00:00:37,810 --> 00:00:42,160 dhearbhú athróg eile, pointeoir athróg, pointí sin dó. 18 00:00:42,160 --> 00:00:44,870 Mar sin, tá muid a cruthaíodh athróg le ainm, tá muid 19 00:00:44,870 --> 00:00:48,480 chruthaigh an dara athróg le ainm, agus pointe muid go an dara athróg 20 00:00:48,480 --> 00:00:50,220 ag an gcéad. 21 00:00:50,220 --> 00:00:52,370 Seo saghas go bhfuil fadhb áfach, mar gheall ar é 22 00:00:52,370 --> 00:00:54,650 Éilíonn dúinn a fhios go díreach cé mhéad cuimhne táimid 23 00:00:54,650 --> 00:00:57,600 dul go mór i láthair na huaire Is é ár gclár i dtoll a chéile. 24 00:00:57,600 --> 00:00:58,220 >> Cén fáth é sin? 25 00:00:58,220 --> 00:01:03,338 Mar is gá dúinn a bheith in ann a ainm nó aithint gach ceann de na hathróga is féidir 26 00:01:03,338 --> 00:01:04,129 D'fhéadfadh muid ag teacht ar. 27 00:01:04,129 --> 00:01:07,910 Bhféadfaimis a bhfuil le sraith d'fhéadfadh a bheith in ann a shealbhú ar a lán eolais, 28 00:01:07,910 --> 00:01:10,110 ach tá sé fós ní go díreach beacht go leor. 29 00:01:10,110 --> 00:01:12,640 Cad a tharlaíonn má nach bhfuil a fhios againn, cad má ní mór dúinn aon smaoineamh 30 00:01:12,640 --> 00:01:14,370 cé mhéad beidh orainn gá ag am tiomsaithe? 31 00:01:14,370 --> 00:01:17,020 Nó cad má mbeidh ár gclár ar siúl ar feadh tamaill i ndáiríre fada, 32 00:01:17,020 --> 00:01:19,810 glacadh úsáideoir éagsúla sonraí, agus ní féidir linn i ndáiríre 33 00:01:19,810 --> 00:01:23,170 meastachán cibé an bhfuil muid a dul go mór 1,000 aonad? 34 00:01:23,170 --> 00:01:26,060 >> Nach bhfuil sé cosúil is féidir linn rá ag an líne ordaithe 35 00:01:26,060 --> 00:01:28,040 dul isteach cé mhéad míreanna a cheapann tú bheas de dhíth ort. 36 00:01:28,040 --> 00:01:31,100 Bhuel cad más rud é go buille faoi thuairim mícheart? 37 00:01:31,100 --> 00:01:34,300 Leithdháileadh cuimhne dinimiciúil saghas ligeann dúinn an bealach 38 00:01:34,300 --> 00:01:36,867 a fháil ar fud an fhadhb seo go háirithe. 39 00:01:36,867 --> 00:01:38,700 Agus an mbealach a dhéanann sé é Is trí úsáid a bhaint leideanna. 40 00:01:38,700 --> 00:01:42,140 >> Is féidir linn a úsáid leideanna chun Rochtain a fháil chun dinimiciúil 41 00:01:42,140 --> 00:01:45,710 cuimhne leithdháilte, cuimhne go bhfuil leithdháileadh mar do chlár ag rith. 42 00:01:45,710 --> 00:01:48,290 Nach bhfuil sé a leithdháileadh ag am tiomsaithe. 43 00:01:48,290 --> 00:01:51,570 Nuair a bheidh tú a leithdháileadh dinimiciúil cuimhne a thagann sé ó linn 44 00:01:51,570 --> 00:01:53,795 de chuimhne ar a dtugtar an gcarn. 45 00:01:53,795 --> 00:01:56,420 Roimhe seo go léir an chuimhne tá muid ag obair le linn 46 00:01:56,420 --> 00:01:59,920 Tá teacht ó linn de chuimhne ar a dtugtar an chairn. 47 00:01:59,920 --> 00:02:02,470 Bealach maith chun go ginearálta a choinneáil i riail mind-- agus 48 00:02:02,470 --> 00:02:04,720 Ní shealbhú fíor i gcónaí, ach go leor i bhfad beagnach 49 00:02:04,720 --> 00:02:09,940 Tá i gcónaí go bhfuil true-- go bhfuil aon ama a thabhairt duit ainm athraitheach é 50 00:02:09,940 --> 00:02:12,090 is dócha ina chónaí ar an chairn. 51 00:02:12,090 --> 00:02:14,650 Agus am ar bith nach bhfuil tú thabhairt athróg ainm, 52 00:02:14,650 --> 00:02:19,160 Is féidir leat a le cuimhne dinimiciúil leithdháileadh, sé ina chónaí ar an gcarn. 53 00:02:19,160 --> 00:02:22,190 >> Anois tá mé cineál i láthair seo mar má tá an dá linnte de chuimhne. 54 00:02:22,190 --> 00:02:24,740 Ach is féidir leat a bheith le feiceáil seo léaráid, a bhfuil go ginearálta 55 00:02:24,740 --> 00:02:27,290 léiriú ar cén chuimhne Breathnaíonn an nós, 56 00:02:27,290 --> 00:02:30,373 agus ní táimid ag dul chun cúram faoi gach an stuif ag an mbarr agus bun an leathanaigh. 57 00:02:30,373 --> 00:02:33,580 Cad cúram againn faoi chuid seo i an lár anseo, gcarn agus Stack. 58 00:02:33,580 --> 00:02:35,570 Mar is féidir leat a fheiceáil ag ag féachaint ar an léaráid, 59 00:02:35,570 --> 00:02:38,390 na nach bhfuil iarbhír dhá linnte leith de chuimhne. 60 00:02:38,390 --> 00:02:42,757 Tá sé linn snámha roinnte cheann de chuimhne áit a thosaíonn tú, sa radharc 61 00:02:42,757 --> 00:02:44,590 dtosaíonn tú ag bun agus tús a líonadh suas 62 00:02:44,590 --> 00:02:48,040 ó bhun leis an chairn, agus tú tús a chur ag an mbarr agus tús a líonadh suas 63 00:02:48,040 --> 00:02:50,072 ó bharr anuas leis an gcarn. 64 00:02:50,072 --> 00:02:51,780 Ach tá sé i ndáiríre an linn snámha céanna, tá sé ach 65 00:02:51,780 --> 00:02:56,050 spotaí éagsúla, áiteanna éagsúla i gcuimhne go bhfuil á leithdháileadh. 66 00:02:56,050 --> 00:02:59,060 Agus is féidir leat a rith amach as cuimhne ag ceachtar bhfuil 67 00:02:59,060 --> 00:03:01,240 an gcarn dul go léir ar an mbealach go bun, nó a bhfuil 68 00:03:01,240 --> 00:03:05,440 an chairn dul go léir ar an mbealach chun an barr, nó a bhfuil an gcarn agus an chairn 69 00:03:05,440 --> 00:03:06,740 freastal ar suas in aghaidh a chéile. 70 00:03:06,740 --> 00:03:09,500 Is féidir le gach ceann de na coinníollacha a a chur faoi deara do chlár 71 00:03:09,500 --> 00:03:11,030 a rith amach as cuimhne. 72 00:03:11,030 --> 00:03:11,952 Mar sin a choinneáil sin san áireamh. 73 00:03:11,952 --> 00:03:13,660 Nuair a labhairt linn faoi an gcarn agus an chairn 74 00:03:13,660 --> 00:03:17,880 muid ag caint i ndáiríre faoi na smután ginearálta céanna de chuimhne, ach 75 00:03:17,880 --> 00:03:21,930 codanna éagsúla den chuimhne. 76 00:03:21,930 --> 00:03:24,910 >> Mar sin, conas is féidir linn a fháil dinimiciúil cuimhne a leithdháileadh sa chéad áit? 77 00:03:24,910 --> 00:03:27,740 Conas a dhéanann ár gclár a fháil cuimhne mar tá sé ag rith? 78 00:03:27,740 --> 00:03:32,660 Bhuel Soláthraíonn C feidhm a dtugtar malloc, Allocator chuimhne, a 79 00:03:32,660 --> 00:03:36,810 a dhéanann tú glao a, agus pas a fháil tú i cé mhéad bytes de chuimhne gur mian leat. 80 00:03:36,810 --> 00:03:39,940 Mar sin, má tá do chlár ag rith agus ba mhaith leat ar runtime slánuimhir, 81 00:03:39,940 --> 00:03:46,040 go dtiocfadh leat mallock ceithre bytes de chuimhne, lúibíní malloc ceathair. 82 00:03:46,040 --> 00:03:48,540 >> Beidh mallock dul tríd lorg tríd an gcarn, 83 00:03:48,540 --> 00:03:50,750 mar táimid dinimiciúil cuimhne leithdháileadh, 84 00:03:50,750 --> 00:03:53,500 agus beidh sé ar ais chugat pointeoir leis an chuimhne. 85 00:03:53,500 --> 00:03:56,180 Ní chuireann sé a thabhairt duit go memory-- Ní chuireann sé a thabhairt dó ainm, 86 00:03:56,180 --> 00:03:57,950 tugann sé tú pointeoir dó. 87 00:03:57,950 --> 00:04:00,780 Agus mar sin go bhfuil an fáth a dúirt mé arís go bhfuil sé tábhachtach a thabhairt b'fhéidir 88 00:04:00,780 --> 00:04:03,770 ag faire ar an físeán leideanna sula a fháil againn i bhfad ró isteach sa. 89 00:04:03,770 --> 00:04:05,940 Mar sin tá malloc ag dul go dtí thabhairt duit ar ais ar pointeoir. 90 00:04:05,940 --> 00:04:08,950 >> Mura féidir mallock thabhairt duit ar aon cuimhne mar tá tú ag rith amach, 91 00:04:08,950 --> 00:04:10,645 beidh sé a thabhairt duit ar ais ar pointeoir null. 92 00:04:10,645 --> 00:04:15,282 An cuimhin leat cad a tharlaíonn má táimid iarracht a dhéanamh agus téigh i pointeoir null? 93 00:04:15,282 --> 00:04:17,019 Táimid ag fulaingt locht seg, ceart? 94 00:04:17,019 --> 00:04:18,060 Sin é is dócha nach bhfuil go maith. 95 00:04:18,060 --> 00:04:21,579 >> Mar sin, gach uair a dhéanann tú glao chun malloc tú i gcónaí, i gcónaí 96 00:04:21,579 --> 00:04:25,270 Ní mór a sheiceáil an bhfuil nó nach bhfuil an pointeoir thug sé go bhfuil tú ar ais null. 97 00:04:25,270 --> 00:04:28,800 Má tá sé, is gá duit chun deireadh do chlár mar má tá tú iarracht a dhéanamh agus téigh i 98 00:04:28,800 --> 00:04:31,360 an pointeoir null bhfuil tú ag dul ag fulaingt locht deighilt 99 00:04:31,360 --> 00:04:34,380 agus tá do chlár ag dul a tuairteála ar aon nós. 100 00:04:34,380 --> 00:04:37,190 Mar sin, conas a dhéanann muid statically fháil slánuimhir? 101 00:04:37,190 --> 00:04:37,730 >> slánuimhir x. 102 00:04:37,730 --> 00:04:40,010 Táimid tar éis a rinneadh dócha go a bunch na n-amanna, ceart? 103 00:04:40,010 --> 00:04:43,480 Cruthaíonn sé seo ar a dtugtar athróg x go bhfuil cónaí ar an chairn. 104 00:04:43,480 --> 00:04:46,190 Conas is féidir linn a fháil dinimiciúil slánuimhir? 105 00:04:46,190 --> 00:04:50,010 Ionann px réalta slánuimhir malloc 4. 106 00:04:50,010 --> 00:04:53,050 >> Nó níos oiriúnaí ba mhaith linn a rá px réalta int 107 00:04:53,050 --> 00:04:57,680 ionann méid malloc de slánuimhir, ach le caith roinnt níos lú 108 00:04:57,680 --> 00:04:59,740 uimhreacha draíochta timpeall ár gclár. 109 00:04:59,740 --> 00:05:04,140 Tá sé seo ag dul a fháil dúinn ceithre bytes de chuimhne ón gcarn, 110 00:05:04,140 --> 00:05:06,720 agus an pointeoir a fháil againn ar ais dó ar a dtugtar px. 111 00:05:06,720 --> 00:05:08,430 Agus ansin díreach mar tá muid rinneadh roimhe sin táimid ag 112 00:05:08,430 --> 00:05:13,966 Is féidir téigh i px go rochtain a fháil ar go chuimhne. 113 00:05:13,966 --> 00:05:15,590 Conas is féidir linn a fháil slánuimhir ón úsáideoir? 114 00:05:15,590 --> 00:05:17,970 Is féidir linn a rá int x cothrom le slánuimhir a fháil. 115 00:05:17,970 --> 00:05:19,930 Sin go leor simplí. 116 00:05:19,930 --> 00:05:24,030 Cad más mian linn a chruthú le sraith de x báid a mhaireann ar an chairn? 117 00:05:24,030 --> 00:05:28,210 snámhphointe stack_array-- go bhfuil an t-ainm dár array-- lúibíní cearnacha x. 118 00:05:28,210 --> 00:05:32,419 A chruthóidh dúinn le sraith de x báid a mhaireann ar an chairn. 119 00:05:32,419 --> 00:05:34,960 Is féidir linn a chruthú le sraith de flótaí go bhfuil cónaí ar an gcarn, freisin. 120 00:05:34,960 --> 00:05:37,330 D'fhéadfadh an error cuma ar beagán níos cumbersome, 121 00:05:37,330 --> 00:05:41,740 ach is féidir linn a rá snámhphointe ionann heap_array réalta 122 00:05:41,740 --> 00:05:44,360 malloc x uair an méid de na snámhphointe. 123 00:05:44,360 --> 00:05:48,160 Gá dom seomra go leor a shealbhú x snámh luachanna phointe. 124 00:05:48,160 --> 00:05:51,560 Mar sin, a rá is gá dom 100 flótaí, nó 1,000 snámhann. 125 00:05:51,560 --> 00:05:54,810 Mar sin, sa chás sin go mbeadh sé 400 bytes ar feadh 100 flótaí, 126 00:05:54,810 --> 00:05:59,080 nó 4,000 bytes ar feadh 1,000 flótaí, toisc go dtarlaíonn gach snámhphointe suas 127 00:05:59,080 --> 00:06:01,230 ceithre bytes de spás. 128 00:06:01,230 --> 00:06:05,110 >> Tar éis é seo, is féidir liom a bhaint as an lúibín cearnach ar error heap_array. 129 00:06:05,110 --> 00:06:08,970 Díreach mar a bheadh ​​mé ar stack_array, mé Is féidir rochtain a fháil ar a eilimintí aonar 130 00:06:08,970 --> 00:06:11,590 ag baint úsáide as heap_array náid, ceann heap_array. 131 00:06:11,590 --> 00:06:15,800 Ach cuimhne an chúis is féidir linn a dhéanamh go Is mar gheall ar an t-ainm eagar i C 132 00:06:15,800 --> 00:06:19,990 i ndáiríre pointeoir a go eagar an chéad eilimint. 133 00:06:19,990 --> 00:06:23,480 Mar sin, an bhfíric go bhfuil muid ag dhearbhú sraith de flótaí ar an chairn anseo 134 00:06:23,480 --> 00:06:24,810 i ndáiríre le beagán míthreorach. 135 00:06:24,810 --> 00:06:27,600 Tá muid i ndáiríre sa dara líne de chód ann 136 00:06:27,600 --> 00:06:32,360 freisin a chruthú pointeoir le smután de cuimhne go linn a dhéanamh ansin roinnt oibre leis. 137 00:06:32,360 --> 00:06:35,620 >> Seo an fadhb mhór le dinimiciúil leithdháilte cuimhne áfach, 138 00:06:35,620 --> 00:06:38,360 agus is é seo an fáth go bhfuil sé i ndáiríre tábhachtach a fhorbairt ar roinnt dea-nósanna 139 00:06:38,360 --> 00:06:39,800 nuair a bhíonn tú ag obair leis. 140 00:06:39,800 --> 00:06:43,060 Murab ionann agus statically dhearbhú chuimhne, do chuimhne 141 00:06:43,060 --> 00:06:46,790 Níl ar ais go huathoibríoch chuig an Córas nuair a bhfuil do fheidhm dhéanamh. 142 00:06:46,790 --> 00:06:49,280 Mar sin, má táimid tar mó, agus glaonna is mó feidhm 143 00:06:49,280 --> 00:06:53,860 f, nuair f bailchríocha is cuma cad tá sé ag déanamh agus tuairisceáin rialú an chláir 144 00:06:53,860 --> 00:06:58,810 ar ais go to main, gach ceann de na chuimhne go f úsáidtear thabhairt ar ais. 145 00:06:58,810 --> 00:07:01,250 Is féidir é a úsáid arís clár eile é, 146 00:07:01,250 --> 00:07:04,250 nó feidhm éigin eile a Faigheann ar a dtugtar níos déanaí sa phríomh. 147 00:07:04,250 --> 00:07:06,970 Is féidir é a úsáid go chuimhne céanna arís. 148 00:07:06,970 --> 00:07:09,620 >> Má tá tú dinimiciúil leithdháileadh cuimhne cé 149 00:07:09,620 --> 00:07:14,380 caithfidh tú a insint go sainráite an córas a bhfuil tú ag déanamh leis. 150 00:07:14,380 --> 00:07:18,370 Beidh sé a shealbhú isteach é ar do shon, a d'fhéadfadh mar thoradh ar fhadhb tú ag rith amach 151 00:07:18,370 --> 00:07:19,290 de chuimhne. 152 00:07:19,290 --> 00:07:22,179 Agus go deimhin tagraímid uaireanta leis seo mar sceitheadh ​​chuimhne. 153 00:07:22,179 --> 00:07:24,970 Agus uaireanta na leaks cuimhne Is féidir a bheith i ndáiríre i ndáiríre tubaisteach 154 00:07:24,970 --> 00:07:27,020 do feidhmíocht an chórais. 155 00:07:27,020 --> 00:07:31,120 >> Má tá tú i d'úsáideoir idirlín go minic go dtiocfadh leat a úsáid brabhsálaithe gréasáin áirithe, 156 00:07:31,120 --> 00:07:35,630 agus ní bheidh mé ainmneacha ainm anseo, ach tá roinnt brabhsálaithe gréasáin amach ann 157 00:07:35,630 --> 00:07:39,150 atá notorious do iarbhír a bheith leaks cuimhne nach bhfuil a fháil seasta. 158 00:07:39,150 --> 00:07:44,570 Agus má fhágann tú do bhrabhsálaí a oscailt ar feadh tréimhse an-fhada ama, laethanta 159 00:07:44,570 --> 00:07:48,060 agus laethanta, seachtainí nó, tú uaireanta D'fhéadfadh faoi deara go do chóras 160 00:07:48,060 --> 00:07:49,790 Is ag rith i ndáiríre, i ndáiríre go mall. 161 00:07:49,790 --> 00:07:54,640 Agus is é an chúis go bhfuil Tá an brabhsálaí leithdháileadh chuimhne, 162 00:07:54,640 --> 00:07:57,320 ach ansin ní dúirt an gcóras go bhfuil sé déanta leis. 163 00:07:57,320 --> 00:08:01,000 Agus mar sin go bhfágann cuimhne níos lú ar fáil do gach ceann de do chláir eile 164 00:08:01,000 --> 00:08:04,480 a bheith acu a roinnt, mar atá tú leaking-- go brabhsálaí gréasáin 165 00:08:04,480 --> 00:08:06,755 Tá an clár leaking chuimhne. 166 00:08:06,755 --> 00:08:08,880 Conas is féidir linn a thabhairt ar ais cuimhne nuair a bhíonn muid ag déanamh leis é? 167 00:08:08,880 --> 00:08:10,838 Bhuel fortunately tá sé ina ar bhealach an-éasca a dhéanamh. 168 00:08:10,838 --> 00:08:11,710 Táimid ag saor in aisce ach é. 169 00:08:11,710 --> 00:08:15,020 Níl feidhm ar a dtugtar saor in aisce, Glacann sé pointeoir chun cuimhne, 170 00:08:15,020 --> 00:08:16,010 agus tá muid go maith chun dul. 171 00:08:16,010 --> 00:08:18,310 >> Mar sin, a ligean le rá go bhfuil muid sa lár ár gclár, 172 00:08:18,310 --> 00:08:21,970 ba mhaith linn a malloc 50 carachtair. 173 00:08:21,970 --> 00:08:25,710 Is mian linn a malloc le sraith féidir a ann a bhfuil 50 carachtair. 174 00:08:25,710 --> 00:08:29,109 Agus nuair a fhaigheann muid ar ais go dtí pointeoir is é sin, ainm sin pointeoir focal. 175 00:08:29,109 --> 00:08:30,900 Déanann muid is cuma cad tá muid ag dul a dhéanamh leis an focal, 176 00:08:30,900 --> 00:08:33,440 agus ansin nuair a bhíonn muid a déanta againn saor in aisce ach é. 177 00:08:33,440 --> 00:08:37,460 Agus anois ní mór dúinn a d'fhill na 50 bytes de chuimhne ar ais go dtí an córas. 178 00:08:37,460 --> 00:08:40,147 Is féidir le roinnt fheidhm eile iad a úsáid. 179 00:08:40,147 --> 00:08:43,480 Ní chuirimid a bheith buartha faoi ag fulaingt le cuimhne sceitheadh ​​toisc go bhfuil muid saor focal. 180 00:08:43,480 --> 00:08:46,639 Táimid tar éis a tugadh an chuimhne ar ais, mar sin táimid ag ag déanamh obair leis. 181 00:08:46,639 --> 00:08:48,430 Mar sin, tá trí rialacha órga gur chóir go mbeadh 182 00:08:48,430 --> 00:08:51,700 a choinneáil i gcuimhne nuair a bhíonn tú dinimiciúil leithdháileadh cuimhne 183 00:08:51,700 --> 00:08:52,990 le malloc. 184 00:08:52,990 --> 00:08:56,480 Gach bloc cuimhne go ní mór duit a bheith freed malloc 185 00:08:56,480 --> 00:08:58,430 roimh do chlár bailchríocha ag rith. 186 00:08:58,430 --> 00:09:02,029 Anois arís, i an fearas nó sa IDE seo saghas a tharlaíonn ar do shon ar aon nós 187 00:09:02,029 --> 00:09:04,820 nuair you-- beidh sé seo tarlú ar aon nós nuair a bhfuil do chlár a fhoirceannadh, 188 00:09:04,820 --> 00:09:06,880 beidh gach an chuimhne a scaoileadh. 189 00:09:06,880 --> 00:09:10,750 Ach tá sé códaithe go maith i gcoitinne chleachtas i gcónaí, nuair atá tú ag déanamh, 190 00:09:10,750 --> 00:09:13,810 saor in aisce a bhfuil tú mallocd. 191 00:09:13,810 --> 00:09:16,690 >> É sin ráite, ach rudaí a tá tú ba chóir mallocd a scaoileadh saor. 192 00:09:16,690 --> 00:09:19,880 Má dhearbhaíonn tú statically ar slánuimhir, slánuimhir x leathstad, 193 00:09:19,880 --> 00:09:23,500 go bhfuil cónaí ar an chairn, tú nach mian ansin x saor in aisce. 194 00:09:23,500 --> 00:09:25,970 Rudaí mar sin ach go atá tú Ba cheart mallocd a scaoileadh saor. 195 00:09:25,970 --> 00:09:28,960 >> Agus ar deireadh, ní rud éigin saor in aisce faoi dhó. 196 00:09:28,960 --> 00:09:31,170 Is féidir go dtiocfadh staid aisteach eile. 197 00:09:31,170 --> 00:09:33,530 Mar sin, gach rud go atá tú Tá mallocd a freed. 198 00:09:33,530 --> 00:09:36,000 Rudaí ach go atá tú Ba chóir malloc a freed. 199 00:09:36,000 --> 00:09:38,730 Agus ní rud éigin saor in aisce faoi dhó. 200 00:09:38,730 --> 00:09:43,660 >> Mar sin, a ligean ar dul tríd shampla anseo de cad a roinnt leithdháilte dinimiciúil 201 00:09:43,660 --> 00:09:46,122 D'fhéadfadh cuimhne cuma mhaith measctha isteach le roinnt cuimhne statach. 202 00:09:46,122 --> 00:09:47,080 Cad a tharlódh anseo? 203 00:09:47,080 --> 00:09:48,913 Féach an féidir leat a leanúint chomh maith agus buille faoi thuairim cad atá 204 00:09:48,913 --> 00:09:51,720 ag dul a tharlóidh mar a théann muid trí gach na línte de chód. 205 00:09:51,720 --> 00:09:53,980 >> Mar sin, deirimid slánuimhir m. 206 00:09:53,980 --> 00:09:54,840 Cad a tharlaíonn anseo? 207 00:09:54,840 --> 00:09:56,339 Bhuel tá sé seo go leor simplí. 208 00:09:56,339 --> 00:09:59,650 Chruthú mé athróg slánuimhir a dtugtar m. 209 00:09:59,650 --> 00:10:01,400 Dath mé glas é, mar gheall ar go bhfuil an dath 210 00:10:01,400 --> 00:10:03,730 go úsáid mé nuair atá mé ag caint faoi ​​athróga slánuimhir. 211 00:10:03,730 --> 00:10:05,160 Tá sé ina bhosca. 212 00:10:05,160 --> 00:10:08,400 Sé ar a dtugtar m, agus is féidir leat slánuimhreacha a stóráil taobh istigh de sé. 213 00:10:08,400 --> 00:10:12,400 >> Cad a tharlaíonn má rá liom ansin slánuimhir réalta a? 214 00:10:12,400 --> 00:10:13,530 Bhuel go leor den chineál céanna. 215 00:10:13,530 --> 00:10:15,780 Tá mé ag a chruthú bosca a dtugtar. 216 00:10:15,780 --> 00:10:19,100 Tá sé in ann slánuimhir ghabháltais réaltaí, leideanna chun slánuimhreacha. 217 00:10:19,100 --> 00:10:21,570 Mar sin, tá mé ag dathú sé glas-ish chomh maith. 218 00:10:21,570 --> 00:10:24,140 >> Tá a fhios agam go bhfuil sé rud éigin a dhéanamh leis slánuimhir, 219 00:10:24,140 --> 00:10:25,852 ach ní é féin tá sé slánuimhir. 220 00:10:25,852 --> 00:10:27,310 Ach tá sé go leor i bhfad ar an smaoineamh céanna. 221 00:10:27,310 --> 00:10:28,101 Chruthaigh mé bosca. 222 00:10:28,101 --> 00:10:30,070 Tá an dá ceart anois beo ar an chairn. 223 00:10:30,070 --> 00:10:32,520 Mé a thabhairt dóibh an dá ainm. 224 00:10:32,520 --> 00:10:36,750 >> ionann réalta slánuimhir b méid malloc de slánuimhir. 225 00:10:36,750 --> 00:10:38,560 D'fhéadfadh sé seo ar cheann a bheith beagán tricky. 226 00:10:38,560 --> 00:10:44,110 Chur ar an dara agus smaoineamh ar cad tú Bheadh ​​súil go dtarlódh ar an léaráid. 227 00:10:44,110 --> 00:10:50,210 ionann réalta slánuimhir b méid malloc de slánuimhir. 228 00:10:50,210 --> 00:10:51,940 >> Bhuel nach bhfuil sé seo ach a chruthú bosca amháin. 229 00:10:51,940 --> 00:10:53,800 Cruthaíonn sé seo i ndáiríre dhá bhosca. 230 00:10:53,800 --> 00:10:58,670 Agus ceangail sé, bunaíonn sé chomh maith pointe i gcaidreamh. 231 00:10:58,670 --> 00:11:02,240 Táimid tar éis a leithdháileadh bloc amháin de chuimhne ar an gcarn. 232 00:11:02,240 --> 00:11:05,940 Fógra go bhfuil an bosca ceart barr Níl ann bhfuil ainm. 233 00:11:05,940 --> 00:11:06,760 >> Mallocd Déanaimid é. 234 00:11:06,760 --> 00:11:08,050 Bíonn sí ann ar an gcarn. 235 00:11:08,050 --> 00:11:10,090 Ach tá ainm b. 236 00:11:10,090 --> 00:11:11,950 Tá sé ina athróg pointeoir ar a dtugtar b. 237 00:11:11,950 --> 00:11:13,910 Go bhfuil cónaí ar an chairn. 238 00:11:13,910 --> 00:11:18,250 >> Mar sin, tá sé ina píosa de chuimhne go pointí le chéile. 239 00:11:18,250 --> 00:11:21,840 Tá b an seoladh den bhloc de chuimhne. 240 00:11:21,840 --> 00:11:23,757 Ní chuireann sé a ainm a mhalairt. 241 00:11:23,757 --> 00:11:24,590 Ach pointí sé leis. 242 00:11:24,590 --> 00:11:29,760 Mar sin, nuair a deirimid ionann réalta int b Méid malloc an slánuimhir, go ceart ann, 243 00:11:29,760 --> 00:11:33,490 go arrow a popped suas ar an taobh deas ann, is rud ar fad, 244 00:11:33,490 --> 00:11:36,740 Beidh mé sé le feiceáil arís é, cad a tharlaíonn. 245 00:11:36,740 --> 00:11:39,341 Gach ceann de sin a tharlaíonn i an líne amháin de chód. 246 00:11:39,341 --> 00:11:41,340 Anois, beidh orainn a fháil beagán níos mó simplí arís. 247 00:11:41,340 --> 00:11:43,330 a ionann ampersand m. 248 00:11:43,330 --> 00:11:46,280 An bhfuil tú a thabhairt chun cuimhne cad a ionann is ampersand m? 249 00:11:46,280 --> 00:11:48,920 Bhuel go bhfuil bhfaigheann m ar seoladh. 250 00:11:48,920 --> 00:11:54,150 Nó a chur níos diagramach, a pointí a m. 251 00:11:54,150 --> 00:11:56,360 >> a ionann b. 252 00:11:56,360 --> 00:11:57,560 OK Tá sin anseo ceann eile. 253 00:11:57,560 --> 00:11:59,230 A cothrom b. 254 00:11:59,230 --> 00:12:02,260 Cad atá ag dul a tharlóidh leis an léaráid an am seo? 255 00:12:02,260 --> 00:12:04,330 >> Bhuel chun cuimhne go bhfuil an oibreacha oibreoir sannadh 256 00:12:04,330 --> 00:12:08,960 trína shannadh an luach ar an ceart chun an luach ar thaobh na láimhe clé. 257 00:12:08,960 --> 00:12:14,820 Mar sin, in ionad an dírithe go m, ar anois pointí go dtí an áit chéanna go pointí b. 258 00:12:14,820 --> 00:12:18,900 ní fholaíonn pointe ab, ar pointí pointí nuair is b. 259 00:12:18,900 --> 00:12:25,280 >> Má Léirigh ab go mbeadh a bheith ina is ionann ampersand b. 260 00:12:25,280 --> 00:12:28,150 Ach ina ionad sin a ionann b díreach a chiallaíonn go bhfuil agus b anois 261 00:12:28,150 --> 00:12:31,770 dírithe ar an seoladh céanna, mar gheall ar Is taobh istigh de b ach seoladh. 262 00:12:31,770 --> 00:12:35,004 Agus anois taobh istigh de é an seoladh céanna. 263 00:12:35,004 --> 00:12:37,170 ionann m 10, is dócha an an chuid is mó rud simplí 264 00:12:37,170 --> 00:12:38,690 táimid ag atá déanta i beagán. 265 00:12:38,690 --> 00:12:40,460 Cuir an 10 sa bhosca. 266 00:12:40,460 --> 00:12:45,640 Ionann réalta b m móide 2, chun cuimhne ó Ciallaíonn ár leideanna físeán cén réalta b. 267 00:12:45,640 --> 00:12:50,230 Táimid ag dul go dtí téigh i b agus a chur roinnt luach sa mhéid is go suíomh chuimhne. 268 00:12:50,230 --> 00:12:51,860 Sa chás seo 12. 269 00:12:51,860 --> 00:12:55,300 >> Mar sin, nuair a muid téigh i phonc cuimhne againn taisteal díreach síos an arrow. 270 00:12:55,300 --> 00:12:58,205 Nó a chur ar bhealach eile, táimid ag téigh go dtí an seoladh sin cuimhne 271 00:12:58,205 --> 00:12:59,580 agus táimid ag láimhseáil ar bhealach éigin. 272 00:12:59,580 --> 00:13:00,830 Chuireamar roinnt luach i ann. 273 00:13:00,830 --> 00:13:03,960 Sa chás seo, réalta b ionann m móide 2 ach 274 00:13:03,960 --> 00:13:08,230 téigh go dtí an athróg aird ag b, téigh go dtí an chuimhne aird ag b, 275 00:13:08,230 --> 00:13:11,750 agus a chur m móide 2 i ann, 12. 276 00:13:11,750 --> 00:13:14,970 >> Anois mé saor in aisce b. 277 00:13:14,970 --> 00:13:16,490 Cad a tharlaíonn nuair a I saor in b? 278 00:13:16,490 --> 00:13:18,800 Cuimhnigh cad a dúirt mé ciallaíonn saor in aisce. 279 00:13:18,800 --> 00:13:21,920 Cad tá á rá agam nuair I saor in b? 280 00:13:21,920 --> 00:13:23,410 >> Tá mé ag obair ag déanamh leis, ceart? 281 00:13:23,410 --> 00:13:25,702 I bunúsach a thabhairt suas an chuimhne. 282 00:13:25,702 --> 00:13:26,910 A thabhairt liom ar ais go dtí an córas. 283 00:13:26,910 --> 00:13:33,010 Ní féidir liom gá seo níos mó a bhfuil mé ag insint dóibh, ceart go leor? 284 00:13:33,010 --> 00:13:37,390 >> Anois, má rá liom réalta ar ionann 11 is féidir leat is dócha 285 00:13:37,390 --> 00:13:40,460 insint cheana féin go bhfuil rud éigin dona bhfuil dul chun tarlú anseo, ceart? 286 00:13:40,460 --> 00:13:44,160 Agus go deimhin, má rinne mé go bhfuil mé is dócha Bheadh ​​fulaingt locht deighilt. 287 00:13:44,160 --> 00:13:47,140 Toisc anois, cé go roimhe sin smután de chuimhne 288 00:13:47,140 --> 00:13:50,220 raibh rud éigin go raibh mé rochtain ar, ag an bpointe seo 289 00:13:50,220 --> 00:13:54,590 anois tá mé ag teacht ar chuimhne go Níl dlíthiúil dom a rochtain. 290 00:13:54,590 --> 00:13:57,330 >> Agus mar déanfaimid is dócha chun cuimhne, nuair a chuirimid ar rochtain cuimhne 291 00:13:57,330 --> 00:14:00,000 nach bhfuil muid ag ceaptha chun teagmháil, sin an chúis is coitianta 292 00:14:00,000 --> 00:14:01,860 de deighilt locht. Agus mar sin mo chlár 293 00:14:01,860 --> 00:14:05,170 Bheadh ​​tuairteála má rinne mé é seo a dhéanamh. 294 00:14:05,170 --> 00:14:09,910 Mar sin, arís tá sé ina smaoineamh maith a fháil go maith chleachtais agus dea-nósanna ingrained 295 00:14:09,910 --> 00:14:12,920 iad ag obair le malloc agus saor in aisce, ionas nach bhfuil tú ag fulaingt deighilt 296 00:14:12,920 --> 00:14:15,310 lochtanna, agus go n-úsáideann tú do leithdháileadh dinimiciúil 297 00:14:15,310 --> 00:14:17,370 cuimhne go freagrach. 298 00:14:17,370 --> 00:14:20,300 >> Tá mé Doug Lloyd is é seo CS50. 299 00:14:20,300 --> 00:14:21,947