1 00:00:00,000 --> 00:00:00,499 2 00:00:00,499 --> 00:00:11,261 [સંગીત વગાડવાનો] 3 00:00:11,261 --> 00:00:12,640 >> ડેવિડ જે MALAN: બધા અધિકાર. 4 00:00:12,640 --> 00:00:14,525 આ CS50 છે. 5 00:00:14,525 --> 00:00:16,009 અને આ અઠવાડિયે 5 ના શરૂઆત છે. 6 00:00:16,009 --> 00:00:18,050 અને તમે સૂચન કર્યું છે, કારણ કે આ સામગ્રી કેટલાક 7 00:00:18,050 --> 00:00:21,050 થોડી વધુ રહ્યો છે જટિલ, નાના વધુ પડતા. 8 00:00:21,050 --> 00:00:24,560 >> અને તે ખાસ કરીને જો ખૂબ જ સરળ છે તમે અમુક સમય માટે આદત કરી છે 9 00:00:24,560 --> 00:00:28,600 સૌથી નીચે બેદરકારીપૂર્વક કરવાનો પ્રયાસ કરી શકાય અમે કંઈપણ, અમે વર્ગ કહી રહ્યાં છે. 10 00:00:28,600 --> 00:00:31,626 પરંતુ તે કદાચ નથી, ખ્યાલ આદર્શ શિક્ષણશાસ્ત્ર વિષયક અભિગમ 11 00:00:31,626 --> 00:00:34,250 સામગ્રી આ પ્રકારની શીખવા માટે, અને સામગ્રી વધુ સામાન્ય રીતે. 12 00:00:34,250 --> 00:00:37,250 અને તેથી અમે કરવા માટે ઉત્સુક છે કે CS50 પોતાના Gheng જાહેરાત 13 00:00:37,250 --> 00:00:39,780 ગોંગ તૈયાર શરૂ કરી દીધી છે નોંધો એક પ્રમાણભૂત સમૂહ 14 00:00:39,780 --> 00:00:42,100 આ કોર્સ માટે, આશા જે આ, કે જે એક છે 15 00:00:42,100 --> 00:00:44,030 માત્ર એક તરીકે સેવા સંદર્ભ અને સાધન 16 00:00:44,030 --> 00:00:47,410 સામગ્રી સમીક્ષા અને જવા માટે પાછા સામગ્રી દ્વારા હોઈ શકે છે કે 17 00:00:47,410 --> 00:00:51,230 આસપાસ તમે પ્રથમ વખત ભાગી પરંતુ પણ છે કે જેથી તમારા માથા હોઈ શકે છે વધુ 18 00:00:51,230 --> 00:00:53,740 નીચે, ત્યારે તે કરતાં અપ લેક્ચર સમય આવે છે, 19 00:00:53,740 --> 00:00:56,960 તમે સંલગ્ન શકે છે કે જેથી વધુ વિચારપૂર્વક, તરીકે 20 00:00:56,960 --> 00:00:59,170 વધુ scribbly વિરોધ. 21 00:00:59,170 --> 00:01:02,510 >> સાથે કહ્યું હતું કે, તમે પર મળશે શું વેબસાઈટ આ જેમ કે દસ્તાવેજો છે. 22 00:01:02,510 --> 00:01:04,660 અને નોટિસ, શીર્ષ પર ડાબે, છે માત્ર સમાવિષ્ટો એક ટેબલ, 23 00:01:04,660 --> 00:01:06,920 પણ સમય કોડ કે તરત જ તમે કૂદી જશે 24 00:01:06,920 --> 00:01:09,077 યોગ્ય ભાગ વિડિઓ ઓનલાઇન. 25 00:01:09,077 --> 00:01:11,410 અને અહીં શું ચાંગ કર્યું છે , અનિવાર્યપણે, દસ્તાવેજીકૃત થયેલ છે 26 00:01:11,410 --> 00:01:13,340 શું આ થયું ખાસ વ્યાખ્યાન. 27 00:01:13,340 --> 00:01:16,370 અને વ્યાખ્યાન ઘણા છે પહેલેથી ઓનલાઇન હવે આ URL સાથે. 28 00:01:16,370 --> 00:01:20,110 અને અમે બાકીની પોસ્ટ કરવા માટે ચાલુ રાખીશું આ અઠવાડિયાના અંત સુધીમાં તે, 29 00:01:20,110 --> 00:01:22,380 જેથી સાધન લાભ લેવા નથી. 30 00:01:22,380 --> 00:01:25,740 >> જેથી વધુ હેરાનગતિ વિના, અમે પાછા છાલ શરૂ 31 00:01:25,740 --> 00:01:28,180 છે કે આ સ્તર કેટલાક સમય માટે શબ્દમાળા. 32 00:01:28,180 --> 00:01:30,670 અને અમે શબ્દમાળા શું કહ્યું ખરેખર છેલ્લા અઠવાડિયે છે? 33 00:01:30,670 --> 00:01:31,720 34 00:01:31,720 --> 00:01:32,900 તેથી ચાર સ્ટાર. 35 00:01:32,900 --> 00:01:34,900 અને ચાર સ્ટાર, સાથે સાથે, શું કે ખરેખર કહેવા માંગતા હતા? 36 00:01:34,900 --> 00:01:37,150 વેલ, આ બધા સમય, અમે કર્યું હોય તો એક કાર્ય ફોન કરવામાં, 37 00:01:37,150 --> 00:01:40,450 getString, અને સ્ટોર જેવી કહેવાતા વળતર 38 00:01:40,450 --> 00:01:42,910 એક માં getString બજારમૂલ્ય ચલ તે કહે છે 39 00:01:42,910 --> 00:01:47,721 અમે લખાણ થઈ શબ્દમાળા ઓ પ્રકાર ત્યાં ઉપર કોડ લીટી. 40 00:01:47,721 --> 00:01:49,970 હું જોઈ અને જ્યારે તે માત્ર છે મારા હસ્તાક્ષર અહીં વધી 41 00:01:49,970 --> 00:01:51,930 હું આ છે માત્ર કેવી રીતે ભયાનક ખ્યાલ નથી. 42 00:01:51,930 --> 00:01:54,180 >> જો કે, ચાલો ધારે છે કે દો, જમણી બાજુ પર 43 00:01:54,180 --> 00:01:57,070 , તેમ છતાં, એક વાજબી છે શું નિરૂપણ 44 00:01:57,070 --> 00:01:58,880 આ ચાલુ કરવામાં આવી GetString સાથે સમય. 45 00:01:58,880 --> 00:02:00,380 getString, અલબત્ત, એક શબ્દમાળા મળે છે. 46 00:02:00,380 --> 00:02:01,691 પરંતુ તે ખરેખર શું અર્થ છે? 47 00:02:01,691 --> 00:02:04,190 તે એક ભાગ મળે છે એનો અર્થ એ થાય ઓપરેટિંગ સિસ્ટમમાંથી મેમરી 48 00:02:04,190 --> 00:02:06,040 એક કાર્ય ફોન દ્વારા, malloc કહેવાય છે. 49 00:02:06,040 --> 00:02:07,390 પરંતુ વધુ કે પર પછી. 50 00:02:07,390 --> 00:02:09,139 અને પછી તે રચે મેમરી કે ભાગ 51 00:02:09,139 --> 00:02:11,764 અક્ષરો સાથે વપરાશકર્તા છે , માં ટાઇપ દ્વારા અનુસરવામાં, અલબત્ત, 52 00:02:11,764 --> 00:02:14,800 એક નલ પાત્ર, અથવા બેકસ્લેશ ખૂબ જ ઓવરને અંતે શૂન્ય. 53 00:02:14,800 --> 00:02:18,280 >> દરમિયાન, ડાબી બાજુ પર આ વાર્તા, આ બધા સમય, 54 00:02:18,280 --> 00:02:20,850 અમે ના જેવું, એક ચલ જાહેર કરવામાં આવ્યા છે. 55 00:02:20,850 --> 00:02:24,770 અને તે ચલ હવે શું છે નિર્દેશક કૉલ શરૂ કરશે. 56 00:02:24,770 --> 00:02:29,190 તે જે અંદર એક બોક્સ નથી અમે શબ્દમાળા મૂકી, Daven, સે દીઠ, 57 00:02:29,190 --> 00:02:32,550 પરંતુ અમે તે ચોરસ મૂકી ડાબી શું બરાબર પર બોક્સ? 58 00:02:32,550 --> 00:02:34,890 59 00:02:34,890 --> 00:02:35,390 અરે વાહ? 60 00:02:35,390 --> 00:02:37,118 >> પ્રેક્ષક: આ સરનામું જ્યાં તે મેમરીમાં સ્થિત થયેલ છે. 61 00:02:37,118 --> 00:02:38,118 >> ડેવિડ જે MALAN: ચોક્કસ. 62 00:02:38,118 --> 00:02:40,690 Daven જ્યાં ઓફ સરનામું મેમરી આવેલી છે. 63 00:02:40,690 --> 00:02:44,650 અને Daven તમામ સ્થિત થયેલ છે નથી જ્યાં સે દીઠ, પરંતુ ખાસ સરનામાં 64 00:02:44,650 --> 00:02:45,150 શું? 65 00:02:45,150 --> 00:02:46,311 66 00:02:46,311 --> 00:02:46,810 અરે વાહ? 67 00:02:46,810 --> 00:02:47,460 >> પ્રેક્ષક: પ્રથમ અક્ષર. 68 00:02:47,460 --> 00:02:50,209 >> ડેવિડ જે MALAN: આ પ્રથમ અક્ષર આ કિસ્સામાં Daven, જે માં, 69 00:02:50,209 --> 00:02:53,820 હું આપખુદ હતો દરખાસ્ત અને unrealistically 1, Ox1, 70 00:02:53,820 --> 00:02:55,910 જે માત્ર અર્થ એ થાય 1 હેક્સાડેસિમલ નંબર. 71 00:02:55,910 --> 00:02:57,993 પરંતુ તે કદાચ ચાલી રહ્યું છે બહુ મોટા નંબર હોઈ 72 00:02:57,993 --> 00:03:01,260 અમે ડ્રો શકે છે એક ઉપસર્ગ તરીકે 0x સાથે, 73 00:03:01,260 --> 00:03:02,806 એક હેક્સાડેસિમલ પાત્ર રજૂ. 74 00:03:02,806 --> 00:03:05,930 અને અમે જ્યાં જાણવાની જરૂર નથી કારણ કે Daven ના અક્ષરો બાકીના 75 00:03:05,930 --> 00:03:09,860 કારણ કે, શું સરળ ડિઝાઇન નિર્ણય ઘણા વર્ષો પહેલા કરવામાં આવી હતી કે? 76 00:03:09,860 --> 00:03:10,548 અરે વાહ? 77 00:03:10,548 --> 00:03:11,651 >> પ્રેક્ષક: બેકસ્લેશ 0. 78 00:03:11,651 --> 00:03:12,900 ડેવિડ જે MALAN: અરે વાહ, બરાબર. 79 00:03:12,900 --> 00:03:18,100 આ બેકસ્લેશ 0 માં યદ્યપિ, તમે પરવાનગી આપે છે રેખીય સમય, શબ્દમાળા પસાર કરવા માટે, 80 00:03:18,100 --> 00:03:20,400 ડાબેથી જમણે જવામાં, લૂપ માટે, અથવા જ્યારે સાથે 81 00:03:20,400 --> 00:03:22,608 લૂપ, અથવા કંઈક જેમ કે, અને અહીં, ઓહ, તે નક્કી 82 00:03:22,608 --> 00:03:24,751 આ ચોક્કસ શબ્દમાળા ઓવરને છે. 83 00:03:24,751 --> 00:03:27,000 પર માત્ર સરનામાથી તેથી શબ્દમાળા શરૂઆત, 84 00:03:27,000 --> 00:03:30,290 અમે સમગ્ર ઍક્સેસ કરી શકો છો તે આ બધા કારણ કે જ્યારે, 85 00:03:30,290 --> 00:03:32,030 શબ્દમાળા માત્ર એક કોલસો બનાવો સ્ટાર છે. 86 00:03:32,030 --> 00:03:36,370 >> તેથી તેનો ઉપયોગ ચાલુ રાખવા માટે ચોક્કસપણે દંડ છે CS50 પુસ્તકાલય અને આ તાત્વિક, 87 00:03:36,370 --> 00:03:38,440 તેથી વાત, પરંતુ અમે પડશે માટે બરાબર જોવા માટે શરૂ 88 00:03:38,440 --> 00:03:41,230 શું થઈ રહ્યું કરવામાં આવી છે આ સમગ્ર સમય નીચે. 89 00:03:41,230 --> 00:03:45,260 તેથી જો તમે આ ઉદાહરણ યાદ કરી શકે છે, પણ, છેલ્લા સમય, 0 સરખાવવા માટે, 90 00:03:45,260 --> 00:03:47,300 જે ખરેખર તુલના ન હતી. 91 00:03:47,300 --> 00:03:49,070 પરંતુ અમે આ ઉકેલવા માટે શરૂ કર્યું હતું. 92 00:03:49,070 --> 00:03:52,020 >> પરંતુ કદાચ એક ઓપ, હું કોઈને રસ શકે 93 00:03:52,020 --> 00:03:54,261 ગુલાબી હાથી આજે, પણ ચાંગ દ્વારા કરવામાં? 94 00:03:54,261 --> 00:03:55,760 કેવી રીતે સામે તમારા વિશે? [અશ્રાવ્ય]. 95 00:03:55,760 --> 00:03:56,660 પર આવો. 96 00:03:56,660 --> 00:03:58,740 >> અને આ સમય દરમિયાન, તમે આવી છે, ચાલો 97 00:03:58,740 --> 00:04:01,670 માત્ર એક ક્ષણ માટે ધ્યાનમાં શું આ કોડ વાસ્તવમાં કરી હતી. 98 00:04:01,670 --> 00:04:04,917 તે બે ચલો સુધી જાહેર છે ટોચ, અને ટી અને GetString કૉલ. 99 00:04:04,917 --> 00:04:08,250 આ એક ખૂબ વપરાશકર્તા મૈત્રીપૂર્ણ કાર્યક્રમ નથી તે તમને કહી નથી, કારણ કે શું કરવું. 100 00:04:08,250 --> 00:04:10,541 પરંતુ માત્ર અમે છો ધારે ચાલો રસદાર ભાગ પર ધ્યાન કેન્દ્રિત. 101 00:04:10,541 --> 00:04:14,470 ઓ બરાબર તો પછી અમે કરવા , તે printf કહેવું જોઈએ ટી બરાબર, 102 00:04:14,470 --> 00:04:16,170 તમે આ જ વાત લખ્યો. 103 00:04:16,170 --> 00:04:16,670 હેલો. 104 00:04:16,670 --> 00:04:17,050 તમારું નામ શું છે? 105 00:04:17,050 --> 00:04:17,779 >> Janelle: Janelle. 106 00:04:17,779 --> 00:04:19,529 ડેવિડ જે MALAN: Janelle, તમને મળીને સરસ. 107 00:04:19,529 --> 00:04:21,800 તમારા પડકાર તેથી આ હાથી માટે હાથ 108 00:04:21,800 --> 00:04:25,230 પ્રથમ અમને શું એક ચિત્ર દોરવા છે તે પ્રથમ બે માં રજૂ કરવામાં આવી રહી છે 109 00:04:25,230 --> 00:04:25,970 રેખાઓ. 110 00:04:25,970 --> 00:04:28,139 તેથી ઓ અને ટી હોઈ શકે કેવી રીતે સ્ક્રીન પર રજૂ? 111 00:04:28,139 --> 00:04:30,680 અને તમે માત્ર સાથે ડ્રો કરી શકો છો આ મોટી સ્ક્રીન પર તમારી આંગળી. 112 00:04:30,680 --> 00:04:31,780 113 00:04:31,780 --> 00:04:34,510 >> તેથી બે છિદ્ર છે કે સમીકરણ દરેક બાજુ. 114 00:04:34,510 --> 00:04:37,760 તેથી ડાબી પર ઓ, અને પછી જમણી બાજુ પર getString. 115 00:04:37,760 --> 00:04:40,540 અને પછી ટી, ડાબી પર છે અને પછી જમણી બાજુ પર getString. 116 00:04:40,540 --> 00:04:42,630 તેથી અમે કેવી રીતે શરૂ થઇ શકે છે એક ચિત્ર દોરવા કે 117 00:04:42,630 --> 00:04:46,340 શું થઈ રહ્યું છે રજૂ કરે છે અહીં મેમરી, તમે કહે છે? 118 00:04:46,340 --> 00:04:49,150 અને મને તમે સમજાવવા દો દો તમે જાઓ તરીકે તમે શું કરી રહ્યાં છો. 119 00:04:49,150 --> 00:04:49,820 >> Janelle: બરાબર. 120 00:04:49,820 --> 00:04:58,890 વેલ, પ્રથમ, તે પૂછવા આવશે તમે ઇનપુટ શબ્દમાળા મળે છે. 121 00:04:58,890 --> 00:05:00,439 અને તે માફ કરશો, ઓહ store-- છે. 122 00:05:00,439 --> 00:05:01,230 ડેવિડ જે MALAN: બરાબર. 123 00:05:01,230 --> 00:05:01,730 સારી. 124 00:05:01,730 --> 00:05:03,330 અને આ શું કહે છે? 125 00:05:03,330 --> 00:05:03,950 ઠીક છે, ઓહ. 126 00:05:03,950 --> 00:05:04,450 જઈને રાખો. 127 00:05:04,450 --> 00:05:05,575 હું વિક્ષેપિત માગતી ન હતી. 128 00:05:05,575 --> 00:05:07,060 Janelle: માફ કરશો. 129 00:05:07,060 --> 00:05:14,237 તેથી તે ઇનપુટ તેને કરશે સરનામાં ખાતરી ન of--. 130 00:05:14,237 --> 00:05:17,320 હું બરાબર સંખ્યા યાદ રાખી શકો નહિં, પણ હું તેને 0 સાથે શરૂ કરવામાં આવી હતી છે. 131 00:05:17,320 --> 00:05:18,420 >> ડેવિડ જે MALAN: તે, બધા સાચું છે હું નંબરો બનેલી કારણ કે, 132 00:05:18,420 --> 00:05:19,650 તેથી કોઇ યોગ્ય જવાબ છે. 133 00:05:19,650 --> 00:05:22,105 >> Janelle: 0 આર્ક સાથે શરૂ કરી રહ્યા છીએ. 134 00:05:22,105 --> 00:05:24,000 >> ડેવિડ જે MALAN: ઠીક છે, તેથી તત્વ 0. 135 00:05:24,000 --> 00:05:24,765 ખાતરી કરો કે. 136 00:05:24,765 --> 00:05:28,295 >> Janelle: અને પછી તો માત્ર બે પત્ર જેવા 137 00:05:28,295 --> 00:05:30,496 >> ડેવિડ જે MALAN: ઠીક છે, તમને પાછા. 138 00:05:30,496 --> 00:05:33,629 >> Janelle: તેથી તત્વ 0, અને પછી તત્વ 1 અથવા તત્વ 2. 139 00:05:33,629 --> 00:05:36,670 જે ટુકડો અને: ડેવિડ જે MALAN ચિત્ર તમે હમણાં ચિત્રકામ કરવામાં આવે છે? 140 00:05:36,670 --> 00:05:37,690 GetString માટે કૉલ? 141 00:05:37,690 --> 00:05:38,830 અથવા ઓ ની જાહેરાત? 142 00:05:38,830 --> 00:05:42,890 >> Janelle: આ જાહેરાત ઓ, હું માને છે. 143 00:05:42,890 --> 00:05:45,980 ઓહ, આ getString, તે કરશે કારણ કે દરેક [માં ઇનપુટ કરી? વિસ્તાર. ?] 144 00:05:45,980 --> 00:05:46,510 >> ડેવિડ જે MALAN: સારી. 145 00:05:46,510 --> 00:05:47,051 ચોક્કસ. 146 00:05:47,051 --> 00:05:49,300 પણ આ અસરકારક રીતે છતાં એક એરે, યાદ આપે છે, 147 00:05:49,300 --> 00:05:53,300 અમે શબ્દમાળા પાછા મળી છે, અમે કરી શકો છો 01 અને 2 નો ઉપયોગ કે જેઓ શબ્દમાળા માં ઇન્ડેક્સ. 148 00:05:53,300 --> 00:05:56,180 પારિભાષિક રીતે, આ કદાચ છે વ્યક્તિગત સરનામાં દ્વારા રજૂ, 149 00:05:56,180 --> 00:05:57,100 પરંતુ તે દંડ છે. 150 00:05:57,100 --> 00:06:00,170 >> તેથી, ધારવું જો હું માત્ર ઝડપી કરી શકો છો અમે બોલ બાકી જ્યાં આગળ 151 00:06:00,170 --> 00:06:04,320 છેલ્લા સમય, એક તો શબ્દમાળાઓ, એક બોલ્ડ ઈ ત હતી 152 00:06:04,320 --> 00:06:10,337 બેકસ્લેશ 0, ત્યાં રજૂ ગાબે માતાનો ઇનપુટ, અમે કેવી રીતે હવે પ્રતિનિધિત્વ શકે? 153 00:06:10,337 --> 00:06:12,670 આ છે કે મેમરી છે getString દ્વારા પરત કરવામાં આવી? 154 00:06:12,670 --> 00:06:14,415 155 00:06:14,415 --> 00:06:17,610 >> Janelle: તે હશે એક ચાપ દ્વારા રજૂ? 156 00:06:17,610 --> 00:06:18,750 >> ડેવિડ જે MALAN: એક ચાપ દ્વારા? 157 00:06:18,750 --> 00:06:19,130 ના, સારું. 158 00:06:19,130 --> 00:06:21,171 , ચાલો માત્ર pictorially, કહો મને માત્ર આગળ જવા દો 159 00:06:21,171 --> 00:06:25,710 આ ઓ છે, તો, આ છે કે પ્રસ્તાવ getString પરત કિંમત છે. 160 00:06:25,710 --> 00:06:29,482 અને તમે 0, 1, 2, તરીકે આ દોરવામાં કર્યું છે, જે સંપૂર્ણપણે વાજબી છે કારણ કે અમે 161 00:06:29,482 --> 00:06:30,940 જેમ કે શબ્દમાળા માં અનુક્રમણિકા, કરી શકો છો. 162 00:06:30,940 --> 00:06:33,340 પરંતુ માત્ર સાથે સુસંગત હોઈ છેલ્લા સમય, મને આગળ જાઓ 163 00:06:33,340 --> 00:06:37,310 અને આપખુદ આ કે પ્રસ્તાવ સરનામું 1 છે, આ સરનામા 2 છે, 164 00:06:37,310 --> 00:06:39,597 આ તેથી આગળ સરનામું 3, અને છે. 165 00:06:39,597 --> 00:06:41,430 અને તેથી, માત્ર સુપર હોઈ સ્પષ્ટ, શું ચાલી રહ્યું છે 166 00:06:41,430 --> 00:06:44,580 કે પરિણામે s માં જાઓ કોડ પ્રથમ વાક્ય, તમે કહે છે? 167 00:06:44,580 --> 00:06:45,420 >> Janelle: સરનામું 1? 168 00:06:45,420 --> 00:06:46,420 >> ડેવિડ જે MALAN: ચોક્કસ. 169 00:06:46,420 --> 00:06:47,190 તેથી 0x1 સંબોધવા. 170 00:06:47,190 --> 00:06:48,220 171 00:06:48,220 --> 00:06:51,230 અને દરમિયાન, મને આગળ જાઓ અને તમે કંઇ કર્યું છે તે ખૂબ ડુપ્લિકેટ 172 00:06:51,230 --> 00:06:52,740 અને અહીં મારા પોતાના ટી ઉમેરો. 173 00:06:52,740 --> 00:06:56,340 હું ગાબે લખો હતા ફરી, બીજી વાર, 174 00:06:56,340 --> 00:07:01,530 GetString સાથે જ્યારે પૂછવામાં આવે ત્યારે, જ્યાં, અલબત્ત, ગાબે જવા માટે ચાલે છે? 175 00:07:01,530 --> 00:07:02,280 વેલ, presumably-- 176 00:07:02,280 --> 00:07:04,935 177 00:07:04,935 --> 00:07:05,975 >> Janelle: અહીં માંગો છો? 178 00:07:05,975 --> 00:07:06,850 ડેવિડ જે MALAN: અરે વાહ. 179 00:07:06,850 --> 00:07:08,516 Janelle: અથવા તે જ બોક્સ માં પણ છે? 180 00:07:08,516 --> 00:07:11,940 ડેવિડ જે MALAN: મને હા, પ્રસ્તાવ દો બરાબર, આ વધારાના બોક્સ માં છે. 181 00:07:11,940 --> 00:07:15,230 પરંતુ હવે કી છે પણ, કે જે હું આ ખૂબ નજીક દોરવામાં કર્યું છે છતાં 182 00:07:15,230 --> 00:07:18,650 together-- 0x1, આ વાસ્તવમાં 0x2-- છે, 183 00:07:18,650 --> 00:07:25,750 હવે, સરનામું 0x10 હોઈ શકે દાખલા તરીકે, અને 0x11, અને 0x12, 184 00:07:25,750 --> 00:07:26,870 અને તેથી આગળ. 185 00:07:26,870 --> 00:07:29,955 અને તેથી, જો કે આ કેસ છે, શું ટી અહીં અંત રહ્યું છે? 186 00:07:29,955 --> 00:07:30,830 >> Janelle: 0x10? 187 00:07:30,830 --> 00:07:31,830 ડેવિડ જે MALAN: ચોક્કસ. 188 00:07:31,830 --> 00:07:33,180 તેથી 0x10. 189 00:07:33,180 --> 00:07:34,570 અને તેથી હવે, અંતિમ પ્રશ્ન. 190 00:07:34,570 --> 00:07:37,510 તમે અત્યાર સુધી, આ કામ કરવા માટે આવી હોય આમ અત્યાર સુધી એક હાથી માટે ખૂબ સખત. 191 00:07:37,510 --> 00:07:42,650 હવે દ્વારા, હું કોડ ખેંચી જો ફરીથી, હું જ્યારે, લાઇન ત્રણ, 192 00:07:42,650 --> 00:07:47,630 ઓ બરાબર ટી બરાબર છે, હું ખરેખર શું છું અમે અહીં દોરવામાં કર્યું સરખામણી છે? 193 00:07:47,630 --> 00:07:49,271 >> Janelle: આ બે સરનામાં? 194 00:07:49,271 --> 00:07:50,270 ડેવિડ જે MALAN: ચોક્કસ. 195 00:07:50,270 --> 00:07:53,350 તેથી હું ટી માટે સમાન સમાન છે છે કહી રહ્યો છું? 196 00:07:53,350 --> 00:07:56,210 અન્ય શબ્દોમાં, 10 બરાબર સમાન 1 છે? 197 00:07:56,210 --> 00:07:59,710 અને અલબત્ત, આ સ્પષ્ટ જવાબ હવે ના, છે. 198 00:07:59,710 --> 00:08:02,920 અને તેથી આ કાર્યક્રમ આખરે છે તમે કહે છે શું, છાપી રહ્યા? 199 00:08:02,920 --> 00:08:05,770 200 00:08:05,770 --> 00:08:08,405 >> Janelle: તે હશે તમે આ જ વાત લખ્યો? 201 00:08:08,405 --> 00:08:11,446 >> ડેવિડ જે MALAN: તેથી જો ઓ 1 છે અને ટી 10 છે? 202 00:08:11,446 --> 00:08:13,320 >> Janelle: તમે અલગ વસ્તુઓ લખ્યો. 203 00:08:13,320 --> 00:08:13,570 >> ડેવિડ જે MALAN: ચોક્કસ. 204 00:08:13,570 --> 00:08:14,480 તમે અલગ વસ્તુઓ લખ્યો. 205 00:08:14,480 --> 00:08:14,850 અધિકાર છે. 206 00:08:14,850 --> 00:08:16,714 તેથી વધાવી એક રાઉન્ડ, અહીં, અમે કરી શકે છે. 207 00:08:16,714 --> 00:08:17,214 [વધાવી] 208 00:08:17,214 --> 00:08:17,708 તે પીડાદાયક હતી. 209 00:08:17,708 --> 00:08:18,208 મને ખબર છે. 210 00:08:18,208 --> 00:08:19,684 સરસ રીતે થાય છે. 211 00:08:19,684 --> 00:08:24,690 તેથી હવે આપણે જોઈ જો અમે કરી શકો છો આ સુધારો શું સિવાય પીંજવું. 212 00:08:24,690 --> 00:08:28,040 અને અલબત્ત, અમે this-- સુધારાઈ જ્યારે જે હું હવે green-- માં પ્રતિનિધિત્વ પડશે 213 00:08:28,040 --> 00:08:29,690 અમે અહીં ઉન્નત્તિકરણો એક દંપતિ હતી. 214 00:08:29,690 --> 00:08:32,409 પ્રથમ, માત્ર એક સેનીટી તરીકે હું પ્રથમ ચકાસણી છું, તપાસ 215 00:08:32,409 --> 00:08:35,110 ઓ નલ સમકક્ષ હોય છે અને ટી નલ સમકક્ષ હોય છે. 216 00:08:35,110 --> 00:08:39,440 અને માત્ર સ્પષ્ટ કરવા માટે, જ્યારે કદાચ ઓ અથવા ટી આ જેમ કોડ નલ હોઈ? 217 00:08:39,440 --> 00:08:43,140 218 00:08:43,140 --> 00:08:44,490 જ્યારે ઓ અથવા ટી નલ હોઈ શકે છે. 219 00:08:44,490 --> 00:08:44,990 અરે વાહ? 220 00:08:44,990 --> 00:08:45,990 >> AUDIENCE: [અશ્રાવ્ય]. 221 00:08:45,990 --> 00:08:49,490 222 00:08:49,490 --> 00:08:50,510 >> ડેવિડ જે MALAN: ચોક્કસ. 223 00:08:50,510 --> 00:08:52,840 શબ્દમાળા વપરાશકર્તા કે તો માં ટાઇપ રીતે ખૂબ લાંબુ છે 224 00:08:52,840 --> 00:08:56,140 મેમરી માં ફિટ, અથવા અમુક માટે કે વિચિત્ર ખૂણે કેસ, 225 00:08:56,140 --> 00:08:59,010 અમે જોશો શાબ્દિક, GetString આજે, તેના દસ્તા, 226 00:08:59,010 --> 00:09:02,330 તે નલ આપશે કહે ખાસ સંત્રી કિંમત છે, 227 00:09:02,330 --> 00:09:05,417 અથવા માત્ર પ્રકારની ખાસ પ્રતીક કે કંઈક ખોટું થયું છે. 228 00:09:05,417 --> 00:09:07,500 તેથી અમે માટે ચેક કરવા માંગો છો તે તારણ, કારણ કે તે 229 00:09:07,500 --> 00:09:09,720 કે નલ ખૂબ જ ખતરનાક કિંમત છે. 230 00:09:09,720 --> 00:09:14,250 >> ઘણી વખત, તમે સાથે કંઈક પ્રયાસ કરો નલ પસાર એક કાર્ય સંડોવતા 231 00:09:14,250 --> 00:09:17,470 ઇનપુટ, કે કાર્ય instance-- માટે ખૂબ જ તેની સાથે, ભાંગી અને શકે છે, 232 00:09:17,470 --> 00:09:19,090 તમારા આખા કાર્યક્રમ નીચે લે છે. 233 00:09:19,090 --> 00:09:22,570 તેથી આ ત્રીજી લાઇન હવે માત્ર એક સેનીટી છે જો તમે કરશે, ભૂલ ચકાસણી તપાસો. 234 00:09:22,570 --> 00:09:25,450 તે માટે હવે એક સારા આદત છે અમને કોઇ સમય માં વિચાર અમે 235 00:09:25,450 --> 00:09:28,050 નીચેની ઉપયોગ કરવાનો પ્રયાસ કરો કે સંભવિત, નલ હોઈ શકે છે. 236 00:09:28,050 --> 00:09:32,000 >> હવે, અહીં ચોથા લીટી માં, "જો strcmp (ઓ, ટી)," સાથે સાથે, 237 00:09:32,000 --> 00:09:33,180 શું ઉલ્લેખ છે? 238 00:09:33,180 --> 00:09:36,750 ઠીક છે, અમે આ ખૂબ જ સંક્ષિપ્તમાં એક હતું શબ્દમાળા સરખામણી માટે નામ આપવામાં આવ્યું કાર્ય. 239 00:09:36,750 --> 00:09:40,370 અને જીવનમાં તેની હેતુ સરખાવવા માટે છે બીજા તે સામે તેના પ્રથમ દલીલ, 240 00:09:40,370 --> 00:09:44,640 પરંતુ તેમના સરનામાં દ્રષ્ટિએ, અમે એક ક્ષણ અજાણતા હતી 241 00:09:44,640 --> 00:09:48,270 પહેલાં લાલ કોડ સાથે છે, પરંતુ તેના બદલે તે બે સરખામણી 242 00:09:48,270 --> 00:09:53,210 આ માણસાઈભરી સાહજિક માં શબ્દમાળાઓ આ સામે, આ સરખામણી કરીને રીતે, 243 00:09:53,210 --> 00:09:56,690 આ, આ સામે, અને સામે પછી બંધ જ્યારે એક તો 244 00:09:56,690 --> 00:09:59,590 અથવા મારી આંગળીઓ બંને એક બેકસ્લેશ 0 બનાવ્યા. 245 00:09:59,590 --> 00:10:04,530 તેથી કોઈને વર્ષ પહેલાં અમલમાં strcmp કાર્યક્ષમતા માટે અમલ કરવા માટે 246 00:10:04,530 --> 00:10:08,890 અમે મેળવેલ હશે આશા છે કે માત્ર બે સરળ કિંમતો સરખામણી કરીને. 247 00:10:08,890 --> 00:10:14,929 >> હવે પ્રમાણિકપણે, હું ચિત્ર રાખવા આ વિવિધ નંબરો છે. 248 00:10:14,929 --> 00:10:17,470 પરંતુ વાસ્તવિકતા હું કરી છે, છે સમગ્ર સમય આ બનાવે. 249 00:10:17,470 --> 00:10:19,580 અને તેથી મને માત્ર આગળ જવા દો અને આ બહાર બેદરકારીપૂર્વક 250 00:10:19,580 --> 00:10:23,100 એક બિંદુ બનાવવા માટે, કે જે ઓવરને અંતે દિવસ અને આગળ વધવા, 251 00:10:23,100 --> 00:10:30,160 અમે ખરેખર કાળજી નથી જઈ રહ્યાં છો શું વસ્તુઓ ખરેખર છે સંબોધે 252 00:10:30,160 --> 00:10:30,790 મેમરીમાં. 253 00:10:30,790 --> 00:10:34,320 તેથી હું આ ડ્રો નથી જઈ રહ્યો છું ખૂબ જ હવે નંબરો પ્રકારના, 254 00:10:34,320 --> 00:10:38,970 હું દૂર એક આ માત્ર એક અમૂર્ત છું માત્ર તીર સાથે વધુ મૈત્રીપૂર્ણ ઓછી. 255 00:10:38,970 --> 00:10:42,060 >> અન્ય શબ્દોમાં, ઓ એક નિર્દેશક છે, સાથે સાથે,, ચાલો માત્ર શાબ્દિક, તે ડ્રો દો 256 00:10:42,060 --> 00:10:45,430 એક નિર્દેશક છે, એક તીર પોઇન્ટ , બીજું કંઈક કરવા માટે જાતે 257 00:10:45,430 --> 00:10:48,280 અને લગભગ પણ વધુ ચિંતા કરશો આ સરનામાં ની ક્ષુદ્ર બાબત 258 00:10:48,280 --> 00:10:49,910 જે, ફરી, હું કોઈપણ રીતે બનેલી. 259 00:10:49,910 --> 00:10:52,680 પરંતુ અમે તે સરનામાં જોશો, ક્યારેક કોડ ડિબગીંગ છે. 260 00:10:52,680 --> 00:10:56,450 >> હવે દરમિયાન, આ કાર્યક્રમ અહીં સુધારાઓ, અલબત્ત, 261 00:10:56,450 --> 00:10:58,720 સરખામણી કરીને કે સમસ્યા તે બે શબ્દમાળાઓ. 262 00:10:58,720 --> 00:11:00,260 પરંતુ અમે અન્ય સમસ્યા ચાલી હતી. 263 00:11:00,260 --> 00:11:03,180 આ નકલ હતો , છેલ્લા સમય કાર્યક્રમ 264 00:11:03,180 --> 00:11:06,880 જેમાં, હું ઉઠાવે પ્રયાસ કરી રહી છે શબ્દમાળા માત્ર પ્રથમ અક્ષર. 265 00:11:06,880 --> 00:11:09,620 પરંતુ લક્ષણ શું હતું અમે જ્યારે છેલ્લા સમય જોવા મળી હતી 266 00:11:09,620 --> 00:11:14,150 વપરાશકર્તા જેમ, નીચેની લખ્યો લોઅરકેસ માં ગાબે, ઓ માટે, 267 00:11:14,150 --> 00:11:19,310 પછી અમે ટી માં ઓ સોંપાયેલ ત્યાં ત્રીજા વાક્ય છે, 268 00:11:19,310 --> 00:11:22,900 અને પછી હું પ્રયત્ન કર્યો છે ટી કૌંસ 0 ઉઠાવે? 269 00:11:22,900 --> 00:11:25,950 અસર શું હતું ટી કૌંસ 0 અહીં બદલવા? 270 00:11:25,950 --> 00:11:27,150 >> પ્રેક્ષક: તે ઓ બદલી. 271 00:11:27,150 --> 00:11:29,360 >> ડેવિડ જે MALAN: અરે વાહ, હું તેમજ, ઓ બદલી. 272 00:11:29,360 --> 00:11:31,050 ખરેખર શું થવાનું હતું કારણ કે? 273 00:11:31,050 --> 00:11:34,130 ઠીક છે, હું સાફ કરી શકો છો તો મને જોવા દો આ ચિત્ર ઉપર, તરીકે અનુસરે છે. 274 00:11:34,130 --> 00:11:41,390 >> ઓ છે, ફરીથી, આ શબ્દ જી, એ, બી, ઈ, બેકસ્લેશ, 0, અને ઓ 275 00:11:41,390 --> 00:11:44,084 અમે એક બોક્સ તરીકે ચિત્ર ચાલુ રાખીશું અહીં છે, પરંતુ કોઈ વધુ સરનામાઓ. 276 00:11:44,084 --> 00:11:45,250 માતાનો વસ્તુઓ બનાવે બંધ કરીએ. 277 00:11:45,250 --> 00:11:47,510 આપણે માત્ર એક ચિત્ર દોરવા દો વિશ્વમાં સરળ બનાવવા માટે. 278 00:11:47,510 --> 00:11:52,640 >> હું શબ્દમાળા ટી સાથે ટી જાહેર છે, કે મેમરી કે ભાગ બનાવે છે. 279 00:11:52,640 --> 00:11:55,850 સ્ક્વેર 32 બને છે સૌથી કમ્પ્યુટર્સ બીટ્સ. 280 00:11:55,850 --> 00:11:59,530 હકીકતમાં, જો તમે ક્યારેય સાંભળ્યું કર્યું છે કોમ્પ્યુટર, 32-bit આર્કિટેક્ચર કર્યા 281 00:11:59,530 --> 00:12:03,000 ખરેખર ફેન્સી-વાત, કે જે હમણાં જ તે 32-bit સરનામા વાપરે છે. 282 00:12:03,000 --> 00:12:05,370 અને કોરે ટેકનિકલ છે, તમે ક્યારેય આશ્ચર્ય છે જો 283 00:12:05,370 --> 00:12:09,630 શા માટે જૂની કમ્પ્યુટર્સ, ખરેખર તમે જો રેમ ઘણાં બધાં સાથે સૂપ તેમને પ્રયાસ કર્યો હતો, 284 00:12:09,630 --> 00:12:12,360 માત્ર મહત્તમ કરી શકે છે RAM ની ચાર ગીગાબાઇટ્સ છે, 285 00:12:12,360 --> 00:12:14,860 સારી રીતે કે શાબ્દિક, કારણ કે છે, તમારા જૂના કમ્પ્યુટર કરી શકે માત્ર 286 00:12:14,860 --> 00:12:17,250 4 જેટલા ઊંચા ગણતરી અબજ, 4 અબજ બાઇટ્સ, 287 00:12:17,250 --> 00:12:20,590 તે છે, કારણ કે 32-bit ઉપયોગ કરવામાં આવ્યો હતો સરનામાંઓ માટે નંબરો. 288 00:12:20,590 --> 00:12:23,260 >> પરંતુ કોઈ પણ સંજોગોમાં, આ ઉદાહરણ તરીકે, વાર્તા ખૂબ જ સરળ. 289 00:12:23,260 --> 00:12:27,250 ટી માત્ર અન્ય નિર્દેશક છે, અથવા ખરેખર એક કોલસો બનાવો સ્ટાર ઉર્ફે શબ્દમાળા. 290 00:12:27,250 --> 00:12:30,860 અને હું કેવી રીતે આ ચિત્ર અપડેટ કરવા માંગો છો હવે કોડ કે બીજા વાક્ય સાથે, 291 00:12:30,860 --> 00:12:31,950 ડોટ પછી, કોઈ, કોઈ? 292 00:12:31,950 --> 00:12:35,845 હું જ્યારે શબ્દમાળા ટી, ઓ અર્ધવિરામ બરાબર આ ચિત્ર કેવી રીતે બદલી છે? 293 00:12:35,845 --> 00:12:37,500 294 00:12:37,500 --> 00:12:38,000 અરે વાહ? 295 00:12:38,000 --> 00:12:38,916 >> AUDIENCE: [અશ્રાવ્ય]. 296 00:12:38,916 --> 00:12:41,087 297 00:12:41,087 --> 00:12:42,020 >> ડેવિડ જે MALAN: અરે વાહ. 298 00:12:42,020 --> 00:12:42,600 ચોક્કસ. 299 00:12:42,600 --> 00:12:45,620 હું માત્ર એક તીર મૂકી એ જ સરનામા પર ટી બોક્સ, 300 00:12:45,620 --> 00:12:47,570 એ જ પ્રથમ અક્ષર આપી હતી. 301 00:12:47,570 --> 00:12:50,850 અથવા ટેકનિકલી, તો આ વ્યક્તિ, 0x1 પર હજુ પણ હતા 302 00:12:50,850 --> 00:12:53,052 હું હતો છતાં તે છે અહીં 0x1 અને અહીં 0x1. 303 00:12:53,052 --> 00:12:54,760 પરંતુ ફરીથી, જે ધ્યાન આપતા સરનામાંઓ વિશે શું? 304 00:12:54,760 --> 00:12:56,345 તે હવે બાબતો કે માત્ર વિચાર છે. 305 00:12:56,345 --> 00:12:57,720 તેથી આ અહીં શું થઈ રહ્યું છે તે છે. 306 00:12:57,720 --> 00:13:02,690 અલબત્ત, જો તમે કરો, તો ટી કૌંસ તેથી એરે સંકેત છે, જે 0, 307 00:13:02,690 --> 00:13:05,650 ના કોર્સ અને પ્રમાણિકપણે, તે જુએ છે અહીં એક એરે છે, જેમ કે 308 00:13:05,650 --> 00:13:07,340 પરંતુ હવે આ વિચિત્ર વસ્તુ છે. 309 00:13:07,340 --> 00:13:11,160 કે પ્રોગ્રામિંગ ભાષા જાણો, સી, તો તમે આ લક્ષણ આપે છે 310 00:13:11,160 --> 00:13:14,650 જેમાં, ટી એક હોય તો પણ નિર્દેશક, અથવા ઓ એક નિર્દેશક છે, 311 00:13:14,650 --> 00:13:18,050 તમે હજુ પણ છે કે પરિચિત ઉપયોગ કરી શકો છો આરામદાયક ચોરસ કૌંસ 312 00:13:18,050 --> 00:13:22,520 સંકેત પ્રથમ તત્વ પર જવા માટે, બીજા તત્વ, અથવા કોઈપણ તત્વ કે 313 00:13:22,520 --> 00:13:26,130 કે નિર્દેશક પોઇન્ટ છે કે માટે કદાચ, કારણ કે, તે 314 00:13:26,130 --> 00:13:29,410 આ કિસ્સામાં, છે કેટલાક એરે નિર્દેશ કરતી. 315 00:13:29,410 --> 00:13:30,340 >> કેવી રીતે અમે આ ઠીક છે? 316 00:13:30,340 --> 00:13:33,660 તે મળી જ્યાં પ્રમાણિકપણે, આ છે પ્રથમ નજરમાં થોડી જબરજસ્ત. 317 00:13:33,660 --> 00:13:35,340 પરંતુ અહીં એક નવા અને સુધારેલ આવૃત્તિ છે. 318 00:13:35,340 --> 00:13:37,460 >> તેથી પ્રથમ, હું મેળવવામાં છું CS50 પુસ્તકાલય છુટકારો, 319 00:13:37,460 --> 00:13:41,170 માત્ર ખરેખર કે ઓ છે છતી ચાર રચે સ્ટાર, માત્ર એક પર્યાય. 320 00:13:41,170 --> 00:13:43,540 અને ટી પણ ચાર રચે સ્ટાર છે. 321 00:13:43,540 --> 00:13:48,290 પરંતુ પર શું ચાલી રહ્યું છે તે લીટી ની બાજુ જમણી બાજુ 322 00:13:48,290 --> 00:13:49,970 ટી નીચેની સોંપેલ છે? 323 00:13:49,970 --> 00:13:50,790 >> Malloc શું છે? 324 00:13:50,790 --> 00:13:51,630 તે શું strlen છે? 325 00:13:51,630 --> 00:13:52,547 Sizeof (કોલસો) શું છે? 326 00:13:52,547 --> 00:13:54,380 શા માટે હેક કરે રેખા દેખાવ જેથી જટિલ? 327 00:13:54,380 --> 00:13:55,713 શું તે ઊંચા સ્તરે કરી રહ્યો છે? 328 00:13:55,713 --> 00:13:56,482 329 00:13:56,482 --> 00:13:57,440 શું તે ટી માં સંગ્રહિત છે? 330 00:13:57,440 --> 00:13:58,646 અરે વાહ? 331 00:13:58,646 --> 00:14:01,104 પ્રેક્ષક: તે ફાળવણી છે એક મેમરી જગ્યા ચોક્કસ રકમ. 332 00:14:01,104 --> 00:14:03,032 તે સંગ્રહવા માટે છે હું ધારી, અક્ષરો [અશ્રાવ્ય]. 333 00:14:03,032 --> 00:14:04,032 >> ડેવિડ જે MALAN: યોગ્ય છે. 334 00:14:04,032 --> 00:14:04,540 યોગ્ય છે. 335 00:14:04,540 --> 00:14:06,650 તે ચોક્કસ ફાળવણી છે મેમરી જગ્યા રકમ 336 00:14:06,650 --> 00:14:08,940 , કદાચ, ભાવિ અક્ષરો સંગ્રહ છે. 337 00:14:08,940 --> 00:14:11,310 અને ખાસ કરીને, malloc તેથી શું પરત આવે છે? 338 00:14:11,310 --> 00:14:13,114 339 00:14:13,114 --> 00:14:14,851 >> પ્રેક્ષક: [અશ્રાવ્ય] પરત? 340 00:14:14,851 --> 00:14:15,850 ડેવિડ જે MALAN: ચોક્કસ. 341 00:14:15,850 --> 00:14:18,850 કે મેમરી ની સરનામું પરત, જે કહેતા ફેન્સી માર્ગ છે, 342 00:14:18,850 --> 00:14:21,640 આ ના સરનામા આપે છે કે મેમરી પ્રથમ બાઇટ. 343 00:14:21,640 --> 00:14:25,460 મને યાદ પર જવાબદારી છે કેટલી મેમરી હું ખરેખર 344 00:14:25,460 --> 00:14:27,140 ફાળવવામાં અથવા malloc કહ્યું હતું. 345 00:14:27,140 --> 00:14:28,384 >> હવે કેટલી છે? 346 00:14:28,384 --> 00:14:30,550 વેલ, ત્યાં છે, તેમ છતાં અહીં કૌંસ ઘણો, 347 00:14:30,550 --> 00:14:32,970 malloc માત્ર એક જ દલીલ છે. 348 00:14:32,970 --> 00:14:37,250 અને હું ઓ strlen સ્પષ્ટ, તેથી આપે છું મને ઘણા બાઇટ્સ s માં ત્યાં છે, 349 00:14:37,250 --> 00:14:37,800 પરંતુ એક ઉમેરો. 350 00:14:37,800 --> 00:14:38,300 શા માટે? 351 00:14:38,300 --> 00:14:39,030 352 00:14:39,030 --> 00:14:39,530 અરે વાહ? 353 00:14:39,530 --> 00:14:40,840 >> પ્રેક્ષક: આ બેકસ્લેશ 0. 354 00:14:40,840 --> 00:14:41,840 ડેવિડ જે MALAN: ચોક્કસ. 355 00:14:41,840 --> 00:14:43,423 અમે થોડી housekeeping કરવા મળી છે. 356 00:14:43,423 --> 00:14:45,970 એક બેકસ્લેશ છે કારણ કે તેથી 0, અમે વધુ સારી રીતે યાદ રાખો કે છો. 357 00:14:45,970 --> 00:14:47,310 અન્યથા, અમે જઈ રહ્યાં છો શબ્દમાળા બનાવવા માટે કે 358 00:14:47,310 --> 00:14:49,170 કે ખાસ ટર્મીનેટર નથી. 359 00:14:49,170 --> 00:14:52,640 >> દરમિયાન, માત્ર સુપર હોઈ ગુદા, હું sizeof (કોલસો) છે 360 00:14:52,640 --> 00:14:55,730 માત્ર કેસ કોઈને મારા ચાલે છે નથી આ CS50 ઉપકરણ પર કોડ, 361 00:14:55,730 --> 00:14:58,220 પરંતુ કદાચ એક અલગ કમ્પ્યુટર એકસાથે જ્યાં અક્ષરો 362 00:14:58,220 --> 00:15:01,470 સંમેલન દ્વારા, એક બાઈટ છે, પરંતુ બે બાઇટ્સ, અથવા તે કરતાં મોટી કંઈક. 363 00:15:01,470 --> 00:15:04,490 તે માત્ર સુપર હોઈ છે, ભૂલો માટે સુપર પ્રતિકૂળ. 364 00:15:04,490 --> 00:15:06,940 તેમ છતાં, વાસ્તવમાં, તે છે મોટા ભાગે એક 1 પ્રયત્ન રહ્યું. 365 00:15:06,940 --> 00:15:11,490 >> હવે દરમિયાન, હું આગળ જાઓ અને નકલ આ શબ્દમાળા ટી કૌંસ હું ટી કૌંસ ઓ સમકક્ષ હોય છે. 366 00:15:11,490 --> 00:15:14,962 અને હું છેલ્લા અઠવાડિયે માતાનો માટે અલગ પાડવા કરશે સ્ત્રોત કોડ થઈ રહ્યું છે તે જોવા માટે. 367 00:15:14,962 --> 00:15:17,670 કી takeaway, અને પણ કારણ હું લીલા હવે કોડ મૂકી 368 00:15:17,670 --> 00:15:22,520 , તે ખૂબ જ છેલ્લા વાક્ય કારણ છે ટી કૌંસ 0, toupper બરાબર 369 00:15:22,520 --> 00:15:25,230 અસર છે Capitalizing જે શબ્દમાળા? 370 00:15:25,230 --> 00:15:26,960 ટી અને / અથવા ઓ? 371 00:15:26,960 --> 00:15:29,280 372 00:15:29,280 --> 00:15:30,580 કોડ કે છેલ્લા વાક્ય. 373 00:15:30,580 --> 00:15:32,930 374 00:15:32,930 --> 00:15:35,560 >> શું છે કારણ કે, ફક્ત ટી આ સમય થયું 375 00:15:35,560 --> 00:15:41,500 હું સહેજ કે છેલ્લા પગલું પૂર્વવત્ જો, હું malloc કૉલ જ્યારે તે, છે થયું છે 376 00:15:41,500 --> 00:15:45,380 હું અનિવાર્યપણે મેમરી એક ભાગ વિચાર કે મૂળ જેવા જ માપ છે, 377 00:15:45,380 --> 00:15:47,020 કે અંકગણિત છે કારણ કે હું હતી. 378 00:15:47,020 --> 00:15:50,920 હું સરનામું ટી માં સ્ટોર છું મેમરી કે ભાગ છે. 379 00:15:50,920 --> 00:15:53,370 પણ આ સરસ લાગે છે છતાં અને, ખૂબ સરસ અને ખાલી, 380 00:15:53,370 --> 00:15:56,882 વાસ્તવિકતા શું અમે પડશે, ત્યાં છે અહીં, ફોન કચરો કિંમતો રાખો. 381 00:15:56,882 --> 00:15:59,340 મેમરી કે ભાગ કદાચ ખૂબ જ સાથે સાથે તે પહેલાં કરવામાં આવે છે, 382 00:15:59,340 --> 00:16:00,940 થોડીવાર, થોડી મિનિટો પહેલાં. 383 00:16:00,940 --> 00:16:04,410 તેથી સંપૂર્ણપણે નંબરો હોઇ શકે છે માત્ર અકસ્માત દ્વારા ત્યાં અથવા અક્ષરો. 384 00:16:04,410 --> 00:16:08,580 પરંતુ તેઓ મને ત્યાં સુધી માન્ય નથી મારી મેમરી આ ભાગ રચના 385 00:16:08,580 --> 00:16:12,510 વાસ્તવિક અક્ષરો સાથે, હું ત્યાં લૂપ માટે કે શું. 386 00:16:12,510 --> 00:16:13,180 બધા હક? 387 00:16:13,180 --> 00:16:16,180 >> તેથી હવે, ના અંત આ ત્રણ ઉદાહરણો 388 00:16:16,180 --> 00:16:20,730 કે મોટે ભાગે, છેલ્લા સમય ભાંગી હતી આ સ્વેપ ઉદાહરણ, આ કાર્ય 389 00:16:20,730 --> 00:16:23,670 અર્થમાં કામ કર્યું તે a અને b સ્વૅપ છે. 390 00:16:23,670 --> 00:16:25,620 પરંતુ તે શું અન્ય અર્થમાં કામ ન હતી? 391 00:16:25,620 --> 00:16:27,616 392 00:16:27,616 --> 00:16:28,614 અરે વાહ? 393 00:16:28,614 --> 00:16:29,612 >> AUDIENCE: [અશ્રાવ્ય]. 394 00:16:29,612 --> 00:16:35,600 395 00:16:35,600 --> 00:16:36,700 >> ડેવિડ જે MALAN: ચોક્કસ. 396 00:16:36,700 --> 00:16:39,530 હું આ કાર્ય કૉલ હતા દાખલા તરીકે another-- થી, 397 00:16:39,530 --> 00:16:42,870 , જ્યાં મુખ્ય જેમ કાર્ય થી હું તરીકે, ચલ, એક્સ અને વાય છે 398 00:16:42,870 --> 00:16:46,160 છેલ્લા અઠવાડિયે હતી, જ કોડ છે, અને હું એક્સ અને વાય પાસ 399 00:16:46,160 --> 00:16:49,860 સ્વેપ અને પછી Swap-- આ કૉલ, અલબત્ત, યોગ્ય આવૃત્તિ છે 400 00:16:49,860 --> 00:16:52,220 અમે કરી રહ્યાં છો શું છે see-- તે કામ ન હતી. 401 00:16:52,220 --> 00:16:53,770 તેથી સુધારો શું છે? 402 00:16:53,770 --> 00:16:56,850 >> ઠીક છે, તેથી માત્ર હોઈ સ્પષ્ટ, મને આગળ જાઓ 403 00:16:56,850 --> 00:17:05,450 and-- બીજા અહીં મને એક આપે છે, અને જુઓ હું તમને છેલ્લા એક, બતાવી શકો છો કે જે જો 404 00:17:05,450 --> 00:17:12,464 હું શોધી શકો છો માતાનો જોવા દો in-- હશે આ વાસ્તવિક fast-- બરાબર, [અશ્રાવ્ય]. 405 00:17:12,464 --> 00:17:18,440 406 00:17:18,440 --> 00:17:19,240 ઠીક છે, ત્યાં તે છે. 407 00:17:19,240 --> 00:17:21,000 તેથી હું માત્ર લખીને છું આદેશો અવગણો. 408 00:17:21,000 --> 00:17:23,780 હું તેને પ્રાપ્ત કરવા માંગો છો છેલ્લા મિનિટ એક ઉદાહરણ 409 00:17:23,780 --> 00:17:27,960 છેલ્લા સમય છે, જે હવે કોઈ સ્વેપ કહેવામાં આવે છે. 410 00:17:27,960 --> 00:17:30,200 >> તેથી કોઈ સ્વેપ જ્યાં છે અમે છેલ્લા સમય બોલ બાકી 411 00:17:30,200 --> 00:17:32,930 જેમાં, હું આરંભ 1 માટે એક્સ અને 2 વાય. 412 00:17:32,930 --> 00:17:35,840 હું પછી 1 અને 2 માં પસાર, સ્વેપ ફોન કરો. 413 00:17:35,840 --> 00:17:37,930 અને પછી આ કાર્ય અમુક અર્થમાં માં કામ કર્યું હતું, 414 00:17:37,930 --> 00:17:40,750 પરંતુ તે કોઈ કાયમી હતી એક્સ અને વાય પર અસર. 415 00:17:40,750 --> 00:17:45,430 તેથી હાથ પર પ્રશ્ન કેવી રીતે હવે છે અમે ખરેખર આ સમસ્યા ઠીક કરું? 416 00:17:45,430 --> 00:17:47,820 હાથ પર ઉકેલ શું છે? 417 00:17:47,820 --> 00:17:53,150 >> ઠીક છે, આજે નવા છે swap.c, માં, તફાવત એક દંપતી નોટિસ. 418 00:17:53,150 --> 00:17:54,700 એક્સ અને વાય જ છે. 419 00:17:54,700 --> 00:17:57,250 પરંતુ શું સ્પષ્ટ છે 25 લીટી વિશે અલગ? 420 00:17:57,250 --> 00:17:58,880 421 00:17:58,880 --> 00:18:01,715 તમે યાદ તો શું, ત્યાં નવા છે તે બીજી પહેલા જેવા દેખાતા શું? 422 00:18:01,715 --> 00:18:02,565 >> AUDIENCE: [અશ્રાવ્ય]. 423 00:18:02,565 --> 00:18:03,440 >> ડેવિડ જે MALAN: અરે વાહ. 424 00:18:03,440 --> 00:18:06,680 તેથી ampersands નવી ભાગ છે વાક્યરચના માત્ર આ કાર્યક્રમ માં, 425 00:18:06,680 --> 00:18:08,560 પણ વધુ સામાન્ય રીતે CS50 માં. 426 00:18:08,560 --> 00:18:10,680 તારીખ કરવા માટે, હું નથી લાગતું નથી અમે કોઈ ઉદાહરણો જોઇ છે 427 00:18:10,680 --> 00:18:14,070 અથવા ખરેખર કોઈપણ તેમને વિશે વાત કરી કદાચ, preemptively કરતાં અન્ય વિગત, 428 00:18:14,070 --> 00:18:16,467 વિભાગમાં, આ જેવા 'ચિન્હ. 429 00:18:16,467 --> 00:18:19,300 ઠીક છે, તે 'ચિન્હ છે બહાર વળે નવી વાક્યરચના ના છેલ્લા ટુકડાઓ 430 00:18:19,300 --> 00:18:20,174 અમે જાણવા રહ્યા છીએ. 431 00:18:20,174 --> 00:18:23,500 તે અર્થ એ થાય બધા છે કેટલાક ચલ સરનામું. 432 00:18:23,500 --> 00:18:25,070 શું સરનામું ખાતે એક્સ રહે છે? 433 00:18:25,070 --> 00:18:26,510 પરંતુ વાય શું સરનામું રહે છે? 434 00:18:26,510 --> 00:18:28,700 કારણ કે જો પહેલાં મૂળભૂત સમસ્યા 435 00:18:28,700 --> 00:18:32,970 કે એક્સ અને વાય પસાર કરવામાં આવી હતી આવી હતી અમે ખરેખર શું કરવા માંગો છો નકલો છે, 436 00:18:32,970 --> 00:18:38,780 એક ખજાનો જેવા સાથે સ્વેપ પૂરી પાડે છે જ્યાં એક્સ અને વાય ખરેખર તરફ દોરી જાય છે નકશો 437 00:18:38,780 --> 00:18:41,910 કે જેથી, રેમ છે સ્વેપ કે નકશો અનુસરી શકે છે 438 00:18:41,910 --> 00:18:47,760 એક્સ અથવા વાય હાજર ચિહ્નિત કરે છે ત્યાં અને પર જાઓ અને વાસ્તવિક કિંમતો બદલવા 1 અને 2 439 00:18:47,760 --> 00:18:48,270 ત્યાં. 440 00:18:48,270 --> 00:18:50,710 >> તેથી સ્વેપ પણ સહેજ બદલવા માટે જરૂર છે. 441 00:18:50,710 --> 00:18:53,760 અને પ્રથમ નજરમાં, આ શક્તિ ચાર સ્ટાર માટે થોડી જ લાગે છે. 442 00:18:53,760 --> 00:18:54,850 અને ખરેખર તે છે. 443 00:18:54,850 --> 00:18:59,635 તેથી માહિતી કયા પ્રકારનું માટે નિર્દેશક છે, આ પ્રકાશિત ભાગ પર આધારિત છે? 444 00:18:59,635 --> 00:19:00,810 445 00:19:00,810 --> 00:19:01,620 તેથી તે પૂર્ણાંક છે. 446 00:19:01,620 --> 00:19:04,880 >> તેથી લાંબા સમય સુધી પૂર્ણાંક છે, તે પૂર્ણાંક ની સરનામા છે. 447 00:19:04,880 --> 00:19:07,910 અને એ જ રીતે, બી હવે રહ્યું છે પૂર્ણાંક ની સરનામા છે. 448 00:19:07,910 --> 00:19:12,470 તેથી હવે હું મુખ્ય થી સ્વેપ કહી છે, હું સ્વેપ 1 અને 2 આપી રહ્યું નથી. 449 00:19:12,470 --> 00:19:15,540 હું એવું આપવા જઈ રહ્યો છું બળદની કંઈક અને બળદ કંઈક, 450 00:19:15,540 --> 00:19:19,820 દોરી જશે કે બે સરનામાં તેમના વાસ્તવિક સ્થાનો પર સ્વેપ 451 00:19:19,820 --> 00:19:21,310 મારા કમ્પ્યુટર મેમરી. 452 00:19:21,310 --> 00:19:25,580 >> તેથી હવે, મારા બાકીના અમલીકરણ તદ્ બદલવા માટે જરૂર છે. 453 00:19:25,580 --> 00:19:28,650 શું હવે દેખીતી રીતે અલગ છે કોડ આ ત્રણ રેખાઓ? 454 00:19:28,650 --> 00:19:31,350 આ બધા ખરેખર ખૂબ જ તારાઓ છે સ્થળ પર, બધા અધિકાર? 455 00:19:31,350 --> 00:19:33,014 તેથી શું અહીં ચાલી રહ્યું છે? 456 00:19:33,014 --> 00:19:33,514 અરે વાહ? 457 00:19:33,514 --> 00:19:35,055 >> પ્રેક્ષક: તે [અશ્રાવ્ય] દેખીતી રીતે છે. 458 00:19:35,055 --> 00:19:36,832 459 00:19:36,832 --> 00:19:37,990 >> ડેવિડ જે MALAN: ચોક્કસ. 460 00:19:37,990 --> 00:19:41,560 આ સંદર્ભમાં તેથી અને આ ન હતી શ્રેષ્ઠ ડિઝાઈન નિર્ણય, બેશક, 461 00:19:41,560 --> 00:19:42,530 વર્ષ પહેલાં. 462 00:19:42,530 --> 00:19:45,110 આ સંદર્ભમાં, જ્યાં માં તમે માત્ર એક સ્ટાર છે, 463 00:19:45,110 --> 00:19:48,240 અને તમે એક માહિતી પ્રકાર નથી, પૂર્ણાંક જેમ, તરત જ ડાબી, 464 00:19:48,240 --> 00:19:53,146 તેને બદલે તમે સ્પષ્ટ રીતે, એક સમાન સાઇન હોય છે, આ સંદર્ભમાં, તમે કહે છે ત્યારે એક તારો, 465 00:19:53,146 --> 00:19:56,980 કે પર જાઓ અર્થ એ થાય એક છે કે સરનામું. 466 00:19:56,980 --> 00:19:58,870 તેથી વાત કરવા માટે, ખજાનો નકશો અનુસરો. 467 00:19:58,870 --> 00:20:01,720 >> અને વચ્ચે, 37 લીટી માં, તે જ વસ્તુ છે. 468 00:20:01,720 --> 00:20:05,460 આ સરનામું, પર જાઓ, અને શું ત્યાં મૂકી? 469 00:20:05,460 --> 00:20:09,520 ગમે તે પર છે બી સ્પષ્ટ કરે તે સ્થાન. 470 00:20:09,520 --> 00:20:10,980 અન્ય શબ્દોમાં, b પર જાઓ. 471 00:20:10,980 --> 00:20:12,130 તે કિંમત મેળવો. 472 00:20:12,130 --> 00:20:15,620 સમાન દીઠ, એક પર જાઓ અને સાઇન ઇન કરો, સોંપણી ઓપરેટર, 473 00:20:15,620 --> 00:20:17,010 ત્યાં તે કિંમત મૂકો. 474 00:20:17,010 --> 00:20:19,272 >> એ જ રીતે, પૂર્ણાંક કામચલાઉ નોકર માત્ર પૂર્ણાંક છે. 475 00:20:19,272 --> 00:20:20,730 કંઈ કામચલાઉ નોકર વિશે બદલવા માટે જરૂર છે. 476 00:20:20,730 --> 00:20:24,810 તે Annenberg માંથી માત્ર એક ખાલી કાચ છે કેટલાક દૂધ અથવા નારંગી રસ માટે. 477 00:20:24,810 --> 00:20:27,630 પરંતુ હું કહે છે, બી પર જવા માટે જરૂર છે. 478 00:20:27,630 --> 00:20:31,449 કે સ્થળ પર જાઓ અને ત્યાં કામચલાઉ નોકર માં કિંમત મૂકો. 479 00:20:31,449 --> 00:20:32,490 તેથી પછી શું ચાલી રહ્યું છે? 480 00:20:32,490 --> 00:20:36,540 હું ખરેખર, આ સમય સ્વેપ કૉલ કરો ત્યારે આ પ્રથમ ટ્રે અહીં, મુખ્ય પ્રતિનિધિત્વ 481 00:20:36,540 --> 00:20:42,270 આ બીજા ટ્રે સ્વેપ રજૂ કરે છે, જ્યારે હું 'ચિન્હ એક્સ અને' ચિન્હ વાય પસાર 482 00:20:42,270 --> 00:20:47,150 મુખ્ય સ્વેપ થી, માત્ર સ્પષ્ટ કરવા આ સ્ટેક ફ્રેમ પ્રાપ્ત છે? 483 00:20:47,150 --> 00:20:48,700 484 00:20:48,700 --> 00:20:49,200 અરે વાહ? 485 00:20:49,200 --> 00:20:50,180 >> AUDIENCE: [અશ્રાવ્ય]. 486 00:20:50,180 --> 00:20:51,180 ડેવિડ જે MALAN: ચોક્કસ. 487 00:20:51,180 --> 00:20:53,129 X ની સરનામું અને વાય ના સરનામું. 488 00:20:53,129 --> 00:20:55,170 અને તમે આ વિચાર કરી શકો છો પોસ્ટલ સરનામાં ગમે છે. 489 00:20:55,170 --> 00:20:58,772 33 ઓક્સફર્ડ સ્ટ્રીટ અને 35 ઓક્સફર્ડ સ્ટ્રીટ, અને તમે 490 00:20:58,772 --> 00:21:01,230 બે ઇમારતો ખસેડવા માંગો છો તે સ્થળોએ છે. 491 00:21:01,230 --> 00:21:04,680 >> તે હાસ્યાસ્પદ વિચાર જેવું છે, પરંતુ તે અમે સરનામા દ્વારા અર્થ બધા છે. 492 00:21:04,680 --> 00:21:07,000 જ્યાં વિશ્વમાં કરી શકો છો તમે તે બે ints શોધવા? 493 00:21:07,000 --> 00:21:09,470 જ્યાં વિશ્વમાં તમે કરી શકો છો તે બે ઇમારતો શોધી? 494 00:21:09,470 --> 00:21:15,170 તેથી છેવટે તો આ બધા સમય બાદ આજે સ્રોત કોડ જાય અને સંકલન 495 00:21:15,170 --> 00:21:22,110 સ્વેપ અને રન ./swap, અંતે, માટે પ્રથમ વખત અમે ખરેખર જુઓ કે નથી 496 00:21:22,110 --> 00:21:25,330 મારા કિંમતો ખરેખર છે સફળતાપૂર્વક સ્વૅપ કરવામાં આવી. 497 00:21:25,330 --> 00:21:30,860 અને હવે, અમે પણ લઈ શકે છે આ કહે છે, GDB નોંધ. 498 00:21:30,860 --> 00:21:32,740 >> તેથી મને તે જ ફાઈલમાં જાઓ. 499 00:21:32,740 --> 00:21:35,010 મને આગળ વધો અને ./swap ના GDB ચલાવો. 500 00:21:35,010 --> 00:21:36,590 501 00:21:36,590 --> 00:21:40,547 અને હવે, સ્વેપ, હું જાઓ જાઉં છું આગળ અને મુખ્ય માં વિરામ બિંદુ સુયોજિત કરો. 502 00:21:40,547 --> 00:21:42,630 અને હવે હું જાઓ જાઉં છું આગળ અને કાર્યક્રમ ચલાવો. 503 00:21:42,630 --> 00:21:45,810 અને હવે અમે મારી કોડ જુઓ તે લીટી પર રોક્યો છે. 504 00:21:45,810 --> 00:21:48,330 >> હું આગળ અને પ્રિન્ટ જાઓ એક્સ, હું અહીં શું જોવું જોઈએ? 505 00:21:48,330 --> 00:21:49,314 506 00:21:49,314 --> 00:21:49,980 તે એક પ્રશ્ન છે. 507 00:21:49,980 --> 00:21:51,030 508 00:21:51,030 --> 00:21:51,530 ફરીથી કહો? 509 00:21:51,530 --> 00:21:52,295 >> AUDIENCE: [અશ્રાવ્ય]. 510 00:21:52,295 --> 00:21:53,910 >> ડેવિડ જે MALAN: તેથી રેન્ડમ નંબર, કદાચ. 511 00:21:53,910 --> 00:21:56,010 કદાચ હું નસીબદાર વિચાર છે, અને તે છે 0 જેમ, સરસ અને સરળ. 512 00:21:56,010 --> 00:21:57,230 પરંતુ કદાચ તે કેટલાક રેન્ડમ નંબર છે. 513 00:21:57,230 --> 00:21:58,090 આ કિસ્સામાં, હું નસીબદાર મળી. 514 00:21:58,090 --> 00:21:59,030 તે માત્ર 0 બને છે. 515 00:21:59,030 --> 00:22:00,780 પરંતુ તે ખરેખર નસીબ છે નથી ત્યાં સુધી કારણ કે હું 516 00:22:00,780 --> 00:22:06,280 આગામી લખો અને પછી પ્રિન્ટ એક્સ કે છે કોડ ઓફ લાઇન, 19 લીટી ચલાવવામાં આવી. 517 00:22:06,280 --> 00:22:10,942 >> દરમિયાન, હું લખો તો આગામી ફરી, અને હવે હું 2 જોવા માટે જાઉં છું, વાય છાપે. 518 00:22:10,942 --> 00:22:13,900 હું આગામી લખો હવે, જો, તે બનશે થોડો ગૂંચવણમાં મૂકે વિચાર, હવે કારણ કે, 519 00:22:13,900 --> 00:22:17,250 આ printf પર દેખાય રહ્યું છે સ્ક્રીન હતી, છે. એક્સ 1 છે. 520 00:22:17,250 --> 00:22:18,606 >> માતાનો આ ફરીથી દો. 521 00:22:18,606 --> 00:22:20,480 અને હવે, અહીં જ્યાં છે વસ્તુઓ રસપ્રદ છે. 522 00:22:20,480 --> 00:22:21,580 523 00:22:21,580 --> 00:22:26,580 હું સ્વેપ અથવા તો પગલું કૉલ પહેલાં તેને, ચાલો થોડું પિક લેવા દો. 524 00:22:26,580 --> 00:22:28,980 એક્સ, ફરી, 1 છે. 525 00:22:28,980 --> 00:22:33,240 વાય, અલબત્ત, ઝડપી સેનીટી છે જેથી હાર્ડ નથી ત્યાં, 2 તપાસો. 526 00:22:33,240 --> 00:22:35,740 પરંતુ 'ચિન્હ એક્સ શું છે? 527 00:22:35,740 --> 00:22:36,760 528 00:22:36,760 --> 00:22:39,350 જવાબ છે, તે પ્રકારની ફંકી જોઈ છે. 529 00:22:39,350 --> 00:22:43,500 પરંતુ કૌંસ માં પૂર્ણાંક સ્ટાર માત્ર છે આ કહેતા જીડીપી માર્ગ એક સરનામું છે. 530 00:22:43,500 --> 00:22:48,290 તે, તે માટે નિર્દેશક પૂર્ણાંક છે નથી પૂર્ણાંક, અથવા તો એક સરનામું તરીકે ઓળખાય છે. 531 00:22:48,290 --> 00:22:49,742 >> આ ક્રેઝી વસ્તુ શું છે? 532 00:22:49,742 --> 00:22:51,825 અમે કંઈક ક્યારેય જોઇ ​​છે તદ્દન પહેલાં કે. 533 00:22:51,825 --> 00:22:53,650 534 00:22:53,650 --> 00:22:58,120 તેથી આ મારા કમ્પ્યુટર માં સરનામું એક્સ રહેવા માટે થાય છે યાદમાં. 535 00:22:58,120 --> 00:22:59,040 તે બળદની-કંઈક છે. 536 00:22:59,040 --> 00:23:01,290 અને આ પ્રમાણિકપણે, શા માટે છે, હું તીર ચિત્રકામ શરૂ કર્યું છે, 537 00:23:01,290 --> 00:23:03,340 બદલે નંબરો, જે ખરેખર ધ્યાન આપતા કારણ કે 538 00:23:03,340 --> 00:23:06,890 તમારા પૂર્ણાંક ચોક્કસ છે કે મોટા કે છે કે સરનામું. 539 00:23:06,890 --> 00:23:12,160 પરંતુ bffff0c4, આ બધા છે ખરેખર હેક્સાડેસિમલ અંકો, 540 00:23:12,160 --> 00:23:13,720 એફ દ્વારા 0 છે. 541 00:23:13,720 --> 00:23:16,590 >> તેથી અમે પણ રહેવું નથી જઈ રહ્યાં છો તે વસ્તુઓ છે તેના પર લાંબા. 542 00:23:16,590 --> 00:23:19,400 પરંતુ હું વાય છાપી છે, અલબત્ત, હું 2 જુઓ. 543 00:23:19,400 --> 00:23:22,440 પરંતુ 'ચિન્હ વાય, હું આ સરનામા જુઓ. 544 00:23:22,440 --> 00:23:26,527 અને નોટિસ, આ વિચિત્ર માટે, સિવાય એક્સ અને વાય અત્યાર સુધી કેવી રીતે છે? 545 00:23:26,527 --> 00:23:27,985 તમે સરનામું સૌથી અવગણી શકો છો. 546 00:23:27,985 --> 00:23:29,330 547 00:23:29,330 --> 00:23:29,920 ચાર બાઇટ્સ. 548 00:23:29,920 --> 00:23:33,510 અને તે સાથે સુસંગત છે અમારા અગાઉ પૂર્ણાંક કેવી રીતે મોટા દાવો છે કે? 549 00:23:33,510 --> 00:23:34,130 ચાર બાઇટ્સ. 550 00:23:34,130 --> 00:23:37,420 તેથી તે બધું અસ્તર અપ જેવી લાગે છે સરસ રીતે, તમે મેમરી, આશા શકે છે. 551 00:23:37,420 --> 00:23:40,010 >> તેથી હવે, માત્ર ઝડપી આગળ ચાલો આ વાર્તા ઓવરને. 552 00:23:40,010 --> 00:23:43,290 , ચાલો આગળ વધો અને પગલું લખો આ સ્વેપ કાર્ય માં ડાઇવ. 553 00:23:43,290 --> 00:23:46,880 હવે હું લખો, તે છે, નોટિસ x ની સરનામું સમાન. 554 00:23:46,880 --> 00:23:52,130 હું બી લખો, તો તે સમાન છે વાય ના સરનામા માટે. 555 00:23:52,130 --> 00:23:57,020 તેથી હું જો તે જોવા જોઈએ , એક આ સરનામા પર જાઓ કહે છે? 556 00:23:57,020 --> 00:23:58,120 તેથી એક સ્ટાર છાપો. 557 00:23:58,120 --> 00:24:00,130 તેથી સ્ટાર આ સંદર્ભમાં, અર્થ ત્યાં જાઓ. 558 00:24:00,130 --> 00:24:02,730 'નું ચિહ્ન ના સરનામા શું થાય છે. 559 00:24:02,730 --> 00:24:05,000 તેથી એક સાધન 1 સ્ટાર. 560 00:24:05,000 --> 00:24:09,590 અને પ્રિન્ટ સ્ટાર બી મને 2 આપે છે. 561 00:24:09,590 --> 00:24:15,750 >> અને મને આ ક્ષણ માટે, ધારે દો, ઓછામાં ઓછા કોડ કે જે 562 00:24:15,750 --> 00:24:18,950 બની શકે છે હવે ચલાવવા માટે આગળ તે રીતે મારફતે કારણ. 563 00:24:18,950 --> 00:24:21,150 પરંતુ અમે લાંબા પહેલાં આ વિચાર ફોટાઓની પડશે. 564 00:24:21,150 --> 00:24:23,850 સ્વેપ તેથી આ આવૃત્તિ હવે સાચું છે અને પરવાનગી આપે છે 565 00:24:23,850 --> 00:24:26,650 અમને આ ચોક્કસ માહિતી પ્રકાર સ્વેપ. 566 00:24:26,650 --> 00:24:29,120 >> તેથી કોઇ પ્રશ્નો પછી સ્વેપ પર? 567 00:24:29,120 --> 00:24:29,890 સ્ટાર પર? 568 00:24:29,890 --> 00:24:30,690 સરનામું પર? 569 00:24:30,690 --> 00:24:33,270 અને તમે સાથે જોશો સમસ્યા પ્રકારના, 4 સેટ 570 00:24:33,270 --> 00:24:37,310 પરંતુ સમસ્યા 5, ચોક્કસપણે, કેવી રીતે આ સેટ વસ્તુઓ ઉપયોગી છે અને વિચાર વધુ 571 00:24:37,310 --> 00:24:39,584 પરિણામે, તેમની સાથે આરામદાયક. 572 00:24:39,584 --> 00:24:40,430 બધા કંઈપણ? 573 00:24:40,430 --> 00:24:40,930 અધિકાર છે. 574 00:24:40,930 --> 00:24:44,350 તેથી malloc, આ કાર્ય ફરી, છે કે જે હમણાં જ મેમરી, મેમરી ફાળવે 575 00:24:44,350 --> 00:24:45,330 ફાળવણી. 576 00:24:45,330 --> 00:24:47,024 અને શા માટે આ ઉપયોગી છે? 577 00:24:47,024 --> 00:24:48,940 વેલ, આ બધા સમય, તમે malloc ઉપયોગ કરી રહ્યો છું. 578 00:24:48,940 --> 00:24:52,230 તમે હવે કેવી રીતે ગણે છે કામ GetString, કદાચ, તે છે 579 00:24:52,230 --> 00:24:56,140 એક ભાગ માટે કોઈને પૂછ્યા કરવામાં મેમરી, ગમે ત્યારે વપરાશકર્તા પ્રકારો શબ્દમાળા 580 00:24:56,140 --> 00:24:59,040 માં, ચોક્કસપણે અમે કારણ કે ખબર ન હતી, CS50 સ્ટાફ છે, 581 00:24:59,040 --> 00:25:02,710 કેવી રીતે મોટા તે શબ્દમાળાઓ કે માનવીઓ હોઈ શકે લખો જવું છે. 582 00:25:02,710 --> 00:25:07,910 >> તેથી આપણે, પ્રથમ વખત માટે શરૂ કરો છાલ પાછા કેવી રીતે CS50 પુસ્તકાલય કામ કરે છે, 583 00:25:07,910 --> 00:25:10,990 ઉદાહરણો એક દંપતિ માર્ગ દ્વારા કે ત્યાં અમને દોરી જશે. 584 00:25:10,990 --> 00:25:15,300 હું gedit ખોલો તેથી જો અને, scanf 0 ખોલો 585 00:25:15,300 --> 00:25:17,055 અમે નીચેની કોડ જોઈ રહ્યા છીએ. 586 00:25:17,055 --> 00:25:18,720 587 00:25:18,720 --> 00:25:23,530 માટે વેબસાઇટ પર ઉપલબ્ધ Scanf 0, આજે કોડ પ્રમાણમાં થોડા લીટીઓ છે 588 00:25:23,530 --> 00:25:25,351 અહીં, 20 મારફતે 14. 589 00:25:25,351 --> 00:25:26,600 અને આપણે તેના કરી રહ્યો છે તે જોવા દો. 590 00:25:26,600 --> 00:25:28,920 તે પૂર્ણાંક કહેવાય એક્સ જાહેર. 591 00:25:28,920 --> 00:25:30,850 તે કંઈક જેમ, નંબર કરો કહે છે. 592 00:25:30,850 --> 00:25:33,940 અને હવે તે scanf% હું અને એક્સ, કહે છે. 593 00:25:33,940 --> 00:25:35,620 તેથી ત્યાં નવી સામગ્રી સમૂહ છે. 594 00:25:35,620 --> 00:25:38,420 >> પરંતુ scanf, તમે પ્રકારની વિચાર કરી શકો છો ના printf વિરુદ્ધની છે. 595 00:25:38,420 --> 00:25:40,090 printf, અલબત્ત, સ્ક્રીન પર પ્રિન્ટ. 596 00:25:40,090 --> 00:25:44,410 વપરાશકર્તાની માંથી સ્કેન ની scanf પ્રકારની કીબોર્ડ કંઈક તે અથવા તેણી લખ્યો છે. 597 00:25:44,410 --> 00:25:46,550 >> % હું માત્ર printf જેવી છે. 598 00:25:46,550 --> 00:25:49,410 આ અપેક્ષા અર્થ એ થાય વપરાશકર્તા પૂર્ણાંક લખો. 599 00:25:49,410 --> 00:25:52,820 અને હવે, તમે શા માટે મને લાગે છે નથી scanf અને એક્સ પસાર કરી શકે છે? 600 00:25:52,820 --> 00:25:54,030 601 00:25:54,030 --> 00:25:57,770 જો scanf ના જીવન માં હેતુ વપરાશકર્તા માંથી કંઈક વિચાર છે, 602 00:25:57,770 --> 00:26:02,480 અર્થ શું છે હવે, તે પસાર, અને એક્સ? 603 00:26:02,480 --> 00:26:02,980 અરે વાહ? 604 00:26:02,980 --> 00:26:03,896 >> AUDIENCE: [અશ્રાવ્ય]. 605 00:26:03,896 --> 00:26:05,540 606 00:26:05,540 --> 00:26:06,540 ડેવિડ જે MALAN: ચોક્કસ. 607 00:26:06,540 --> 00:26:12,900 ગમે હું, માનવ, મારા ઇનપુટ લખો તે સ્થાન પર સેવ કરી રહ્યું છે. 608 00:26:12,900 --> 00:26:17,660 તે માત્ર છે, યાદ, પૂરતી નથી અમે પહેલેથી જ જોઇ છે, કારણ કે એક્સ પાસ, 609 00:26:17,660 --> 00:26:21,630 કોઈપણ સમયે તમે માત્ર એક કાચા ચલ પસાર પૂર્ણાંક, જેમ કે કેટલાક અન્ય કાર્ય કરવા માટે, 610 00:26:21,630 --> 00:26:25,640 ખાતરી કરો કે, તે બદલી શકો છો ચલ, પરંતુ કાયમ માટે. 611 00:26:25,640 --> 00:26:27,360 તે મુખ્ય પર અસર હોઈ શકે નહિં. 612 00:26:27,360 --> 00:26:29,420 તે માત્ર ત્યારે જ તેની પોતાની સ્થાનિક નકલ બદલી શકો છો. 613 00:26:29,420 --> 00:26:32,560 પરંતુ જો, તેની બદલે, તમે નથી મને વાસ્તવિક પૂર્ણાંક આપે છે, 614 00:26:32,560 --> 00:26:36,640 પરંતુ તમે મને દિશાઓ આપે છે કે પૂર્ણાંક, હું હવે, scanf છે 615 00:26:36,640 --> 00:26:41,050 ચોક્કસ, હું કે અનુસરી શકે છે સંબોધવા માટે અને ત્યાં એક નંબર મૂકી 616 00:26:41,050 --> 00:26:43,280 તેથી તમે પણ તે વપરાશ હોય છે. 617 00:26:43,280 --> 00:26:45,120 >> હું આ કાર્યક્રમ ચલાવવા તેથી, જ્યારે માતાનો જોવા દો. 618 00:26:45,120 --> 00:26:49,660 Scanf 0 કોઈ સ્લેશ કરો, 0 scanf. 619 00:26:49,660 --> 00:26:54,030 અને હવે હું એક નંબર લખો, તો 50, જેમ કે 50 માટે આભાર. 620 00:26:54,030 --> 00:26:58,150 હવે હું જેવી નંબર લખો, તો નકારાત્મક 1 માટે, 1 નકારાત્મક. 621 00:26:58,150 --> 00:27:04,200 હું હવે એચએમ, 1.5 જેવા નંબર લખો. 622 00:27:04,200 --> 00:27:06,030 શા માટે મારા કાર્યક્રમ મને અવગણો હતી? 623 00:27:06,030 --> 00:27:07,300 624 00:27:07,300 --> 00:27:09,880 ઠીક છે, કારણ કે સરળ, હું જણાવ્યું તે પૂર્ણાંક માત્ર અપેક્ષા છે. 625 00:27:09,880 --> 00:27:10,380 અધિકાર છે. 626 00:27:10,380 --> 00:27:11,630 જેથી આ એક આવૃત્તિ છે. 627 00:27:11,630 --> 00:27:16,600 ચાલો એક ઉત્તમ અપ વસ્તુઓ લે છે અને આ સારી નથી કે પ્રસ્તાવ. 628 00:27:16,600 --> 00:27:20,530 અને અહીં એક ખૂબ જ સરળ ઉદાહરણ આવેલું અમે લેખન કોડ શરૂ કરી શકો છો કેવી રીતે 629 00:27:20,530 --> 00:27:24,450 અન્ય લોકો બગાડી શકે છે અથવા ખરાબ વસ્તુઓ કરવાથી સમાધાન. 630 00:27:24,450 --> 00:27:28,336 તેથી 16 લીટી, તેથી જ ભાવના પહેલાં માટે, 631 00:27:28,336 --> 00:27:29,960 પણ હું તેને આ સમય પૂર્ણાંક જાહેર છું. 632 00:27:29,960 --> 00:27:32,970 હું શબ્દમાળા ઉર્ફ, તે ચાર સ્ટાર જાહેર છું. 633 00:27:32,970 --> 00:27:35,190 >> પરંતુ તે ખરેખર શું અર્થ છે? 634 00:27:35,190 --> 00:27:38,790 તેથી હું એક સરનામાં સ્પષ્ટ ન હોય તો અને હું આપખુદ તે ફોન કરું છું, બફર, 635 00:27:38,790 --> 00:27:43,370 પણ હું simple-- છે, તે ઓ કહી શકે છે અને પછી હું આ કરવા મને સમજાવવા, 636 00:27:43,370 --> 00:27:48,630 તમે પહેલાંની પર આધારિત છે, કરી શકે છે જો તર્કશાસ્ત્ર, scanf 18 લીટી માં કરી છે તે, 637 00:27:48,630 --> 00:27:55,000 પાસ% અને બફર જો, એક સરનામું કે જે છે? 638 00:27:55,000 --> 00:27:58,210 તમે લાગુ પડે છે scanf, શું છે આવૃત્તિ 0 તરીકે ચોક્કસ જ તર્ક, 639 00:27:58,210 --> 00:28:00,640 અહીં કરવા માટે પ્રયત્ન રહ્યું છે, જ્યારે માં વપરાશકર્તા પ્રકારો કંઈક? 640 00:28:00,640 --> 00:28:02,630 641 00:28:02,630 --> 00:28:03,409 અરે વાહ? 642 00:28:03,409 --> 00:28:04,407 >> AUDIENCE: [અશ્રાવ્ય]. 643 00:28:04,407 --> 00:28:07,401 644 00:28:07,401 --> 00:28:08,890 >> ડેવિડ જે MALAN: ચોક્કસ. 645 00:28:08,890 --> 00:28:11,577 Scanf, તર્ક અગાઉ દ્વારા, શબ્દમાળા લાગી રહ્યું છે 646 00:28:11,577 --> 00:28:13,410 માનવ લખેલા કે , તે હવે એક શબ્દમાળા છે in-- 647 00:28:13,410 --> 00:28:15,790 તે, કદાચ, એક નંબર નથી તે અથવા તેણી cooperates-- જો 648 00:28:15,790 --> 00:28:19,310 અને તે મૂકવા પ્રયાસ ચાલી રહ્યું છે ગમે સરનામા પર મેમરીમાં શબ્દમાળા 649 00:28:19,310 --> 00:28:20,340 બફર સ્પષ્ટ કરે છે. 650 00:28:20,340 --> 00:28:23,870 અને આ મહાન છે, કારણ કે બફર ખરેખર એક સરનામું થઈ ગયું છે. 651 00:28:23,870 --> 00:28:30,470 >> પરંતુ હું આ કાર્યક્રમ માં બગડેલ છે દાવો ખૂબ જ ગંભીર રીતે, કિંમત શું છે કારણ કે 652 00:28:30,470 --> 00:28:31,330 મૂળભૂત રીતે બફર? 653 00:28:31,330 --> 00:28:33,380 654 00:28:33,380 --> 00:28:34,790 હું શું માં આરંભ છે? 655 00:28:34,790 --> 00:28:35,770 મેમરી શું ભાગ? 656 00:28:35,770 --> 00:28:37,480 657 00:28:37,480 --> 00:28:38,620 હું નથી, અધિકાર? 658 00:28:38,620 --> 00:28:42,265 >> તેથી હું ફાળવવામાં કર્યું છે, તેમ છતાં એક લાંબા સમય સુધી ઓ કહેવાય છે કે ચાર સ્ટાર, 659 00:28:42,265 --> 00:28:48,030 તે બદલે કહેવાય છે, તેથી buffer-- માતાનો ચલ નામ ડ્રો દો 660 00:28:48,030 --> 00:28:53,380 હું નથી તો હવે buffer-- અહીં GetString અથવા malloc કહેવાય છે, 661 00:28:53,380 --> 00:28:56,030 કે અસરકારક રીતે અર્થ એ થાય કે બફર માત્ર કેટલાક કચરો કિંમત છે. 662 00:28:56,030 --> 00:28:57,030 >> હવે તે શું અર્થ છે? 663 00:28:57,030 --> 00:29:00,220 હું scanf કહ્યું છે કે જે થાય છે વપરાશકર્તા માંથી શબ્દમાળા અપેક્ષા છે. 664 00:29:00,220 --> 00:29:01,300 અને તમે શું જાણો છો? 665 00:29:01,300 --> 00:29:03,883 ગમે આ વસ્તુ પોઇન્ટ છે to-- અને હું પ્રશ્ન ચિહ્ન ડ્રો, 666 00:29:03,883 --> 00:29:07,060 પરંતુ વાસ્તવમાં, તે જ હશે Ox1, 2, 3, કંઈક અધિકાર? 667 00:29:07,060 --> 00:29:10,730 કેટલાક બનાવટી કિંમત છે કે જે હમણાં જ પહેલાં ત્યાં બને છે. 668 00:29:10,730 --> 00:29:13,440 તેથી બીજી રીતે મૂકો, તે છે બફર માત્ર છે છતાં 669 00:29:13,440 --> 00:29:16,180 મેમરી કંઈક પોઇન્ટ. 670 00:29:16,180 --> 00:29:17,610 હું કોઈ વિચાર શું છે. 671 00:29:17,610 --> 00:29:24,130 >> હવે હું ગાબે લખો તેથી જો, તે રહ્યું છે ત્યાં ત અ બાય ઈ / 0 મૂકવા પ્રયાસ કરો. 672 00:29:24,130 --> 00:29:25,530 પરંતુ જે છે તે જાણે છે? 673 00:29:25,530 --> 00:29:27,480 અને ભૂતકાળમાં, કોઈપણ અમે સ્પર્શ કરવાનો પ્રયત્ન કર્યો છે સમય 674 00:29:27,480 --> 00:29:29,770 અનુલક્ષતું નથી કે મેમરી અમને શું થયું છે? 675 00:29:29,770 --> 00:29:31,020 676 00:29:31,020 --> 00:29:32,870 અથવા લગભગ દરેક સમય. 677 00:29:32,870 --> 00:29:34,310 વિભાગીય દોષ, અધિકાર? 678 00:29:34,310 --> 00:29:37,829 >> તે છે જ્યાં આ તીર, હું કોઈ વિચાર હોય છે પોઇન્ટ. તે માત્ર કેટલાક રેન્ડમ કિંમત છે. 679 00:29:37,829 --> 00:29:40,370 અને અલબત્ત, તમે અર્થઘટન જો એક સરનામું તરીકે રેન્ડમ કિંમત, 680 00:29:40,370 --> 00:29:42,610 તમે પર જાઓ રહ્યા છીએ કેટલાક રેન્ડમ સ્થળ. 681 00:29:42,610 --> 00:29:46,810 તેથી ગાબે ક્રેશ ખરેખર કદાચ અહીં આ કિસ્સામાં મારા કાર્યક્રમ. 682 00:29:46,810 --> 00:29:50,600 >> તેથી અમે તે લગભગ ખરાબ છે શું કરી શકો છો? 683 00:29:50,600 --> 00:29:52,660 આ ત્રીજા ધ્યાનમાં અને scanf અંતિમ ઉદાહરણ. 684 00:29:52,660 --> 00:29:53,890 685 00:29:53,890 --> 00:29:56,870 આ આવૃત્તિ કયા અર્થમાં વધુ સારી છે? 686 00:29:56,870 --> 00:29:57,990 687 00:29:57,990 --> 00:30:01,400 તમે સાથે આરામદાયક છે, તો અગાઉના સમસ્યા, આ સારું છે. 688 00:30:01,400 --> 00:30:02,250 શા માટે? 689 00:30:02,250 --> 00:30:03,250 >> AUDIENCE: [અશ્રાવ્ય]. 690 00:30:03,250 --> 00:30:06,235 691 00:30:06,235 --> 00:30:07,110 ડેવિડ જે MALAN: સારી. 692 00:30:07,110 --> 00:30:09,970 રેખા 16 તેથી આ કિસ્સામાં આ અર્થમાં, વધુ સારી છે 693 00:30:09,970 --> 00:30:12,030 અમે સ્પષ્ટપણે છો અમુક મેમરી ફાળવણી. 694 00:30:12,030 --> 00:30:14,190 અમે malloc ઉપયોગ કરી રહ્યાં છો અમે સપ્તાહ 2 ઉપયોગ કરી રહ્યાં છો 695 00:30:14,190 --> 00:30:16,060 માત્ર એક એરે જાહેર ના અભિગમ. 696 00:30:16,060 --> 00:30:18,130 અને અમે તે શબ્દમાળા પહેલાં જણાવ્યું હતું કે કર્યું માત્ર અક્ષરો ઝાકઝમાળ છે, 697 00:30:18,130 --> 00:30:19,690 તેથી આ તદ્દન કાયદેસર છે. 698 00:30:19,690 --> 00:30:22,910 પરંતુ તે છે, અલબત્ત, છે તમે 16,, નિયત માપ નોંધ કરો. 699 00:30:22,910 --> 00:30:25,440 >> તેથી આ કાર્યક્રમ છે તદ્દન સલામત, હું લખો તો 700 00:30:25,440 --> 00:30:29,760 એક અક્ષર શબ્દમાળાઓ માં, બે અક્ષર શબ્દમાળાઓ, 15 અક્ષર શબ્દમાળાઓ. 701 00:30:29,760 --> 00:30:34,970 પરંતુ જલદી હું 16 લખીને શરૂ કરવા માટે, 17, 18, 1000 અક્ષર શબ્દમાળાઓ, 702 00:30:34,970 --> 00:30:37,390 જ્યાં કે જેઓ શબ્દમાળા અંત રહ્યું છે? 703 00:30:37,390 --> 00:30:39,570 તે અંશતઃ અહીં અંત બનશે. 704 00:30:39,570 --> 00:30:42,820 પરંતુ તે પછી જે તે બીજું જાણે સરહદો બહાર છે 705 00:30:42,820 --> 00:30:44,270 આ ચોક્કસ ઍરેની? 706 00:30:44,270 --> 00:30:48,015 >> હું કર્યું છતાં તે અહીં 16 બોક્સ જાહેર કર્યો. 707 00:30:48,015 --> 00:30:49,300 708 00:30:49,300 --> 00:30:52,690 તેથી એ બધા 16 બહાર ડ્રો બદલે, અમે પડશે માત્ર હું 16 દોરવામાં કર્યું છે ડોળ. 709 00:30:52,690 --> 00:30:56,540 પરંતુ હું પછી શબ્દમાળા વાંચવાનો પ્રયત્ન કરો તો કે 50 અક્ષરો, જેમ કે ખૂબ લાંબા સમય સુધી છે, 710 00:30:56,540 --> 00:31:01,270 હું મૂકવા શરૂ જાઉં છું એ, બી, સી, ડી, એક્સ, વાય, Z. 711 00:31:01,270 --> 00:31:04,916 અને આ કદાચ છે કેટલાક અન્ય મેમરી સેગમેન્ટ 712 00:31:04,916 --> 00:31:06,790 કે, ફરી, થઇ શકે છે મારા કાર્યક્રમ, ભાંગી 713 00:31:06,790 --> 00:31:10,600 હું માટે પૂછવામાં ન કર્યું કારણ કે માત્ર 16 બાઇટ્સ કરતાં વધુ કંઇ. 714 00:31:10,600 --> 00:31:12,260 >> તેથી જેઓ ધ્યાન આપતા? 715 00:31:12,260 --> 00:31:13,880 ઠીક છે, અહીં આ CS50 પુસ્તકાલય છે. 716 00:31:13,880 --> 00:31:17,220 અને આ મોટા ભાગના માત્ર છે ઉપર સૂચનો છે. 717 00:31:17,220 --> 00:31:21,670 આ CS50 પુસ્તકાલય, આ બધા સમય, રેખા 52 માં આ વાક્ય ધરાવે છે. 718 00:31:21,670 --> 00:31:23,680 અમે typedef જોવા મળે છે, અથવા છે તમે typedef જોશો 719 00:31:23,680 --> 00:31:27,930 માત્ર એક બનાવે છે, જે 4 pset માં સમાનાર્થી ચાર સ્ટાર વધુ હોઈ શકે છે જેમાં 720 00:31:27,930 --> 00:31:29,290 ખાલી શબ્દમાળા તરીકે ઓળખવામાં આવે છે. 721 00:31:29,290 --> 00:31:31,540 તેથી આ એક છે થોડા તાલીમ વ્હીલ્સ 722 00:31:31,540 --> 00:31:34,120 અમે હૂડ નીચે ગુપ્ત ઉપયોગ કર્યા. 723 00:31:34,120 --> 00:31:36,490 >> દરમિયાન, અહીં GetChar, કાર્ય છે. 724 00:31:36,490 --> 00:31:38,190 હવે દેખીતી રીતે, તે આ બોલ પર કોઈ શરીર છે. 725 00:31:38,190 --> 00:31:40,273 અને હકીકતમાં, હું રાખવા જો સરકાવનાર, હું ખરેખર નથી 726 00:31:40,273 --> 00:31:42,080 કોઈપણ અમલીકરણો જુઓ આ વિધેયો. 727 00:31:42,080 --> 00:31:43,140 728 00:31:43,140 --> 00:31:45,516 એક સેનીટી ચેક તરીકે, કે શા માટે છે? 729 00:31:45,516 --> 00:31:46,795 >> AUDIENCE: [અશ્રાવ્ય]. 730 00:31:46,795 --> 00:31:47,670 ડેવિડ જે MALAN: અરે વાહ. 731 00:31:47,670 --> 00:31:48,950 તેથી આ હેડર ફાઇલ છે. 732 00:31:48,950 --> 00:31:52,520 અને હેડર ફાઈલો પ્રોટોટાઇપ છે, વત્તા કેટલાક અન્ય સામગ્રી, તે લાગે છે 733 00:31:52,520 --> 00:31:53,780 typedefs ગમે છે. 734 00:31:53,780 --> 00:31:56,910 પરંતુ cs50.c, અમે કર્યું જે સંપૂર્ણ તમે ક્યારેય આપવામાં, 735 00:31:56,910 --> 00:32:02,100 પરંતુ CS50 સાધન રહ્યું છે બધા આ જ સમયે, ઊંડા તેના ફોલ્ડર્સ અંદર, 736 00:32:02,100 --> 00:32:04,990 સમગ્ર છે નોંધ્યું છે કે અહીં વિધેયો સમૂહ. 737 00:32:04,990 --> 00:32:06,720 >> હકીકતમાં, ચાલો સરકાવો દો. 738 00:32:06,720 --> 00:32:08,810 હવે માટે, તેમને મોટા ભાગના અવગણો દો. 739 00:32:08,810 --> 00:32:12,670 પરંતુ getInt સુધી સરકાવો અને GetInt કેવી રીતે કામ કરે છે. 740 00:32:12,670 --> 00:32:13,890 અહીં getInt છે. 741 00:32:13,890 --> 00:32:17,727 તમે ક્યારેય ખરેખર સંભાળ તો કેવી રીતે મેળવશો પૂર્ણાંક અહીં કામ કરે છે, તેના દસ્તાવેજ છે. 742 00:32:17,727 --> 00:32:19,560 અને વસ્તુઓ વચ્ચે તે તમને કહે છે 743 00:32:19,560 --> 00:32:21,340 કિંમતો રેન્જ તે પરત કરી શકે છે તે. 744 00:32:21,340 --> 00:32:24,400 તે આવશ્યકપણે નકારાત્મક છે 2 અબજ હકારાત્મક 2 અબજ, આપે અથવા લે છે. 745 00:32:24,400 --> 00:32:26,420 >> અને તે આ બધા તારણ સમય, અમે ક્યારેય કર્યું છે, તેમ છતાં 746 00:32:26,420 --> 00:32:28,570 તમે તે માટે તપાસ કરી હતી, કંઈક ખોટું થાય તો, 747 00:32:28,570 --> 00:32:30,680 તે બધા તારણ છે કે આ જ સમયે, getInt છે 748 00:32:30,680 --> 00:32:33,600 ખાસ પરત કરવામાં આવી , નલ, સતત નથી 749 00:32:33,600 --> 00:32:36,760 પરંતુ, કે જે INT_MAX માત્ર એક પ્રોગ્રામર માતાનો સંમેલન. 750 00:32:36,760 --> 00:32:38,846 તે અહીં અર્થ એક ખાસ કિંમત છે. 751 00:32:38,846 --> 00:32:41,470 માત્ર, આ માટે ચકાસવા માટે ખાતરી કરો કિસ્સામાં કંઈક ખોટું. 752 00:32:41,470 --> 00:32:43,261 પરંતુ અમે હેરાનગતિ ક્યારેય કર્યું તારીખ સાથે, 753 00:32:43,261 --> 00:32:45,200 ફરીથી, આ કારણ કે સરળ બનાવવા માટે જ છે. 754 00:32:45,200 --> 00:32:46,950 >> પરંતુ કેવી રીતે getInt અમલ કરવા કરે છે? 755 00:32:46,950 --> 00:32:48,450 વેલ, એક, તે કોઈ દલીલો લે છે. 756 00:32:48,450 --> 00:32:49,390 અમે તે જાણો છો. 757 00:32:49,390 --> 00:32:50,820 તે પૂર્ણાંક આપે છે. 758 00:32:50,820 --> 00:32:51,950 અમે તે જાણો છો. 759 00:32:51,950 --> 00:32:54,460 તેથી તે કેવી રીતે હૂડ નીચે કામ કરે છે? 760 00:32:54,460 --> 00:32:58,290 >> તેથી દેખીતી રીતે અનંત છે લૂપ, એક ઓછામાં ઓછા દેખાવ. 761 00:32:58,290 --> 00:33:00,290 અમે GetString ઉપયોગ કરી રહ્યાં છો કે નોટિસ. 762 00:33:00,290 --> 00:33:04,000 જેથી રસપ્રદ છે. getInt આપણા પોતાના કાર્ય, getString કહે છે. 763 00:33:04,000 --> 00:33:05,645 અને હવે શા માટે આ કેસ હોઈ શકે છે? 764 00:33:05,645 --> 00:33:07,400 765 00:33:07,400 --> 00:33:09,842 શા માટે હું રક્ષણાત્મક હોવા છું અહીં લાઇન 165 માં? 766 00:33:09,842 --> 00:33:11,390 767 00:33:11,390 --> 00:33:15,639 શું વાક્ય બની શકે છે 164, માત્ર સ્પષ્ટ કરવા? 768 00:33:15,639 --> 00:33:16,930 તે પહેલાની જેમ જ જવાબ છે. 769 00:33:16,930 --> 00:33:18,660 770 00:33:18,660 --> 00:33:20,089 માત્ર મેમરી સમાપ્ત થઈ શકે છે. 771 00:33:20,089 --> 00:33:23,130 કંઈક, GetString સાથે ખોટું અમે તે નિયંત્રિત કરવા માટે સમર્થ થવા માટે મળી છે. 772 00:33:23,130 --> 00:33:27,070 અને કારણ હું નલ છે પાછા નથી કે, તકનીકી, નલ નિર્દેશક છે. 773 00:33:27,070 --> 00:33:29,120 getInt પૂર્ણાંક પાછા છે. 774 00:33:29,120 --> 00:33:31,060 તેથી હું આપખુદ કર્યું , અનિવાર્યપણે, નક્કી કર્યું 775 00:33:31,060 --> 00:33:34,600 2 અબજ છે, ચાલે છે, આપે છે અથવા લો ખાસ કિંમત હોઈ કે હું ક્યારેય કરી શકો છો 776 00:33:34,600 --> 00:33:35,970 ખરેખર વપરાશકર્તા માંથી મળે છે. 777 00:33:35,970 --> 00:33:39,930 હું જાઉં છું માત્ર એક કિંમત છે ભૂલ કોડ પ્રતિનિધિત્વ કચરો. 778 00:33:39,930 --> 00:33:41,540 >> તેથી હવે, વસ્તુઓ થોડી ફેન્સી વિચાર. 779 00:33:41,540 --> 00:33:44,670 અને તે ખૂબ જ કાર્ય નથી પહેલાની જેમ, પણ તે ખૂબ જ સમાન છે. 780 00:33:44,670 --> 00:33:50,120 તેથી હું લીટી માં, અહીં જાહેર નોટિસ 172, પૂર્ણાંક n એ અને ચાર રચે સી બંને. 781 00:33:50,120 --> 00:33:53,600 અને પછી હું આ ફંકી લીટી વાપરો તે તારણ કે જે sscanf, 782 00:33:53,600 --> 00:33:55,990 કીબોર્ડ માંથી શબ્દમાળા સ્કેન નથી. 783 00:33:55,990 --> 00:33:59,226 તે હાલના શબ્દમાળા રહે છે વપરાશકર્તા પહેલાથી જ માં લખ્યો છે. 784 00:33:59,226 --> 00:34:02,100 તેથી હું પહેલેથી જ getString, કહેવાય જે હું મેમરીમાં શબ્દમાળા હોય છે. 785 00:34:02,100 --> 00:34:05,020 sscanf શું તમે છો છે એક પદચ્છેદન કાર્ય ફોન કરો. 786 00:34:05,020 --> 00:34:07,760 હું કર્યું શબ્દમાળા જુએ , અક્ષર દ્વારા, અક્ષર લખ્યો 787 00:34:07,760 --> 00:34:09,250 અને ઉપયોગી કંઈક કરે છે. 788 00:34:09,250 --> 00:34:10,969 તે શબ્દમાળા લાઇન માં સંગ્રહાય છે. 789 00:34:10,969 --> 00:34:13,560 અને હું માત્ર દ્વારા જઈને ખબર છે કે ઠીક છે, ઓહ, અહીં અને કહ્યું બેકઅપ, 790 00:34:13,560 --> 00:34:15,143 હું નથી આ સમય છે, પરંતુ રેખા કહેવાય છે. 791 00:34:15,143 --> 00:34:15,989 792 00:34:15,989 --> 00:34:18,080 >> અને હવે આ થોડી અલગ છે. 793 00:34:18,080 --> 00:34:22,480 પરંતુ આ અસરકારક રીતે કારણોસર, એનો અર્થ એ થાય અમે કંઈક, આજે અમારા હાથ વેવ પડશે 794 00:34:22,480 --> 00:34:26,070 અમે ચકાસણી કરવામાં આવે છે વપરાશકર્તા માં ટાઇપ તે જોવા 795 00:34:26,070 --> 00:34:29,909 અને પૂર્ણાંક અને કદાચ અન્ય પાત્ર. 796 00:34:29,909 --> 00:34:33,610 વપરાશકર્તા પૂર્ણાંક માં લખ્યો છે, તે છે હું છું કારણ કે જવાનું, એ સંગ્રહિત કરી 797 00:34:33,610 --> 00:34:36,739 સરનામું આ પસાર આજે આપણે જોઇ છે નવા યુક્તિ. 798 00:34:36,739 --> 00:34:41,570 વપરાશકર્તા પણ લખ્યો તો જેમ 123x, તે એક્સ 799 00:34:41,570 --> 00:34:45,060 એક અંત રહ્યું છે અક્ષર સી અક્ષર. 800 00:34:45,060 --> 00:34:48,739 >> હવે તે sscanf તારણ આપે છે intelligently, મને કહેશે, 801 00:34:48,739 --> 00:34:54,750 કેટલા ચલો sscanf હતી ભરવા માટે સફળતાપૂર્વક સક્ષમ. 802 00:34:54,750 --> 00:34:58,770 આ તર્ક દ્વારા, તેથી જો કાર્ય હું getInt છે અમલીકરણ છું 803 00:34:58,770 --> 00:35:00,900 પણ હું ચકાસણી છું, સંભવિત, વપરાશકર્તા માટે 804 00:35:00,900 --> 00:35:04,190 પૂર્ણાંક માં લખ્યો છે કંઈક બીજું દ્વારા અનુસરવામાં, 805 00:35:04,190 --> 00:35:08,580 શું હું sscanf માતાનો માંગો છો પરત કિંમત સાચી હોઈ? 806 00:35:08,580 --> 00:35:10,950 હેતુ વિચાર છે માત્ર વપરાશકર્તા માંથી પૂર્ણાંક? 807 00:35:10,950 --> 00:35:13,980 808 00:35:13,980 --> 00:35:19,300 >> તેથી sscanf વળતર જો 2, કે શું અર્થ છે? 809 00:35:19,300 --> 00:35:21,660 વપરાશકર્તા માં ટાઇપ કંઈક જેમ, શાબ્દિક, 810 00:35:21,660 --> 00:35:24,770 માત્ર નોનસેન્સ છે 123x,. 811 00:35:24,770 --> 00:35:27,490 તે ભૂલ શરત છે, અને હું તે માટે ચેક કરવા માંગો છો. 812 00:35:27,490 --> 00:35:32,960 >> તેથી આ માં વપરાશકર્તા પ્રકારો જો, દ્વારા આ તર્ક, પાછા sscanf શું કરે છે, 813 00:35:32,960 --> 00:35:33,740 તમે કહે છે? 814 00:35:33,740 --> 00:35:35,070 815 00:35:35,070 --> 00:35:39,130 તેથી તે છે, કારણ કે 2 પરત ચાલી રહ્યું છે આ 123, અહીં જાઓ રહ્યું છે 816 00:35:39,130 --> 00:35:41,580 અને એક્સ અહીં અંત રહ્યું છે. 817 00:35:41,580 --> 00:35:43,970 પરંતુ હું એક્સ ભરવામાં કરો નહિં માંગો. 818 00:35:43,970 --> 00:35:48,580 હું માત્ર સફળ sscanf કરવા માંગો છો તેના ચલો પ્રથમ ભરવા. 819 00:35:48,580 --> 00:35:52,490 અને તેથી કે શા માટે છે હું sscanf 1 પરત કરવા માંગો છો. 820 00:35:52,490 --> 00:35:55,750 >> અને આ માથા ઉપર થોડી છે આ ક્ષણ માટે, તે તદ્દન દંડ છે. 821 00:35:55,750 --> 00:36:00,030 , છતાં તે એક ખ્યાલ getInt અને GetString કિંમતો 822 00:36:00,030 --> 00:36:03,630 અમે એક એક હેક કરી રહ્યા છીએ છે આ રીતે ચકાસણી ભૂલ ઘણો 823 00:36:03,630 --> 00:36:07,130 કે, તારીખ કરવા માટે, તમે ખૂબ ખૂબ કરી શકો છો તમારા કીબોર્ડ પર કંઈપણ લખો 824 00:36:07,130 --> 00:36:08,490 અને અમે તેને પકડી કરશે. 825 00:36:08,490 --> 00:36:10,592 અને અમે ચોક્કસપણે, આ સ્ટાફ નથી, ચોક્કસપણે કરશે 826 00:36:10,592 --> 00:36:13,300 એક ભૂલ સ્ત્રોત હોઈ તમારા કાર્યક્રમ, અમે સંરક્ષક છો કારણ કે 827 00:36:13,300 --> 00:36:16,270 આ મૂર્ખ બધા ​​માટે ચકાસણી વપરાશકર્તા કરી શકે છે વસ્તુઓ છે કે જે, 828 00:36:16,270 --> 00:36:18,900 , જ્યારે શબ્દમાળા લખીને જેવા તમે ખરેખર પૂર્ણાંક માગતા હતા. 829 00:36:18,900 --> 00:36:21,350 તેથી અમે આવો પડશે હવે માટે પાછા આ લાંબા પહેલાં 830 00:36:21,350 --> 00:36:23,710 પરંતુ આ બધા સમય, GetString અને GetInt છે 831 00:36:23,710 --> 00:36:29,950 આ ઉપયોગ હૂડ નીચે કરવામાં આવી મેમરી સરનામાંઓ મૂળભૂત વિચાર. 832 00:36:29,950 --> 00:36:32,580 >> તેથી હવે, એક માતાનો વસ્તુઓ બનાવવા દો વપરાશકર્તા મૈત્રીપૂર્ણ થોડી વધુ. 833 00:36:32,580 --> 00:36:38,740 તમે Binky છેલ્લા છે, યાદ શકે છે સમય મારા માઉસ જેથી cooperate-- કરશે 834 00:36:38,740 --> 00:36:42,560 અમે આ કોડ છે, હતી જે પ્રમાણિકપણે, એકદમ વાહિયાત છે. 835 00:36:42,560 --> 00:36:45,330 આ કોડ કંઈ હાંસલ ઉપયોગી છે, પરંતુ તે ઉદાહરણ હતું 836 00:36:45,330 --> 00:36:48,330 કે પ્રોફેસર Parlante પ્રતિનિધિત્વ કરવા માટે ઉપયોગ થાય છે 837 00:36:48,330 --> 00:36:51,840 શું ચાલી રહ્યું હતું મેમરી સંડોવતા કાર્યક્રમ. 838 00:36:51,840 --> 00:36:54,850 >> તેથી આપણે આ retell દો વાર્તા સુપર થોડા સમય. 839 00:36:54,850 --> 00:36:58,720 આ પ્રથમ બે લીટીઓ માં ઇંગલિશ, તમે શું, કહે છે નથી? 840 00:36:58,720 --> 00:37:01,230 841 00:37:01,230 --> 00:37:05,430 જસ્ટ વ્યાજબી માનવ, પરંતુ સહેજ પારિભાષિક શબ્દો, ઘણો પ્રયાસ લે છે. 842 00:37:05,430 --> 00:37:06,346 AUDIENCE: [અશ્રાવ્ય]. 843 00:37:06,346 --> 00:37:07,705 844 00:37:07,705 --> 00:37:11,080 >> ડેવિડ જે MALAN: ઠીક છે, તમે સ્થાપિત કરી રહ્યા છીએ તમારા એક્સ અને વાય ચલો માટે સરનામાઓ. 845 00:37:11,080 --> 00:37:15,520 નથી તદ્દન, એક્સ અને વાય નથી કારણ કે પરંપરાગત અર્થમાં ચલો. 846 00:37:15,520 --> 00:37:18,054 એક્સ અને વાય સરનામાં છે અથવા સરનામું સ્ટોર કરશે. 847 00:37:18,054 --> 00:37:19,220 તેથી આપણે આ વધુ એક વખત પ્રયાસ કરો. 848 00:37:19,220 --> 00:37:21,010 નથી ખરાબ શરૂઆત, જોકે. 849 00:37:21,010 --> 00:37:21,510 અરે વાહ? 850 00:37:21,510 --> 00:37:22,426 >> AUDIENCE: [અશ્રાવ્ય]. 851 00:37:22,426 --> 00:37:23,966 852 00:37:23,966 --> 00:37:24,840 ડેવિડ જે MALAN: સારી. 853 00:37:24,840 --> 00:37:26,173 હું થોડો ક્લીનર લાગે. 854 00:37:26,173 --> 00:37:28,630 બે પોઇન્ટર, બે પૂર્ણાંકો જાહેર. 855 00:37:28,630 --> 00:37:30,150 અને અમે તેમને એક્સ અને વાય કૉલ કરી રહ્યાં છો. 856 00:37:30,150 --> 00:37:32,790 અથવા આપણે તો ડ્રો આ એક ચિત્ર છે, ફરી, 857 00:37:32,790 --> 00:37:36,410 તદ્દન સરળ છે કે જે બધા યાદ અમે તે પ્રથમ વાક્ય સાથે કરી રહ્યા છીએ 858 00:37:36,410 --> 00:37:39,690 આ જેવી બોક્સ ચિત્રકામ છે, તે કેટલાક કચરો કિંમત સાથે, 859 00:37:39,690 --> 00:37:41,920 અને પછી તે એક્સ ફોન, અને આ જેમ અન્ય બોક્સ, 860 00:37:41,920 --> 00:37:43,880 કેટલાક કચરો કિંમત સાથે તે, વાય તે કહે છે. 861 00:37:43,880 --> 00:37:45,810 અમે બે જાહેર કર્યું છે પોઇન્ટર કે આખરે 862 00:37:45,810 --> 00:37:47,860 પૂર્ણાંક ની સરનામા સ્ટોર કરશે. 863 00:37:47,860 --> 00:37:49,170 જેથી બધા છે. 864 00:37:49,170 --> 00:37:53,290 >> Binky આ ​​હતી તેથી, જ્યારે માટી માત્ર આ જેવો દેખાતો હતો. 865 00:37:53,290 --> 00:37:55,350 અને નિક માત્ર પ્રકારની આ તીર આવરિત, 866 00:37:55,350 --> 00:37:57,590 છતાં તેઓ ગમે ત્યાં પોઇન્ટ નથી ખાસ કરીને, કારણ કે તેઓ માત્ર છો 867 00:37:57,590 --> 00:37:58,250 કચરો કિંમતો. 868 00:37:58,250 --> 00:38:01,670 તેઓ બાહ્ય રીતે આરંભ કરી રહ્યા છીએ ગમે ત્યાં ખાસ કરીને. 869 00:38:01,670 --> 00:38:03,980 >> હવે આગળના વાક્ય કોડ છે, સ્મૃતિ, આ હતી. 870 00:38:03,980 --> 00:38:07,510 , વ્યાજબી વપરાશકર્તા મૈત્રીપૂર્ણ તેથી પરંતુ કંઈક અંશે ટેકનિકલ ઇંગલિશ, 871 00:38:07,510 --> 00:38:09,790 કોડ કરી આ વાક્ય શું છે? 872 00:38:09,790 --> 00:38:10,391 અરે વાહ? 873 00:38:10,391 --> 00:38:11,333 >> AUDIENCE: [અશ્રાવ્ય]. 874 00:38:11,333 --> 00:38:12,746 875 00:38:12,746 --> 00:38:13,950 >> ડેવિડ જે MALAN: યોગ્ય છે. 876 00:38:13,950 --> 00:38:17,016 તે ના ભાગ allocating છે પૂર્ણાંક માપ છે કે મેમરી. 877 00:38:17,016 --> 00:38:18,140 અને તે અડધા જવાબ નથી. 878 00:38:18,140 --> 00:38:20,056 તમે જમણી જવાબ આપ્યો અભિવ્યક્તિ અડધા. 879 00:38:20,056 --> 00:38:22,473 શું પર થઈ રહ્યું છે આ સમાન સાઇન ડાબી બાજુ? 880 00:38:22,473 --> 00:38:22,972 અરે વાહ? 881 00:38:22,972 --> 00:38:24,814 પ્રેક્ષક: અને સોંપે તે ચલ x માટે? 882 00:38:24,814 --> 00:38:27,690 >> ડેવિડ જે MALAN: અને સોંપે તે ચલ x છે. 883 00:38:27,690 --> 00:38:31,650 રીકેપ, બાજુ જમણી બાજુ ફાળવે તેથી પૂરતી મેમરી પૂર્ણાંક સંગ્રહવા માટે. 884 00:38:31,650 --> 00:38:34,150 પરંતુ malloc ખાસ સરનામા આપે 885 00:38:34,150 --> 00:38:37,270 તમે કર્યું, જે મેમરી કે ભાગ છે, માત્ર એક્સ માં સંગ્રહિત નહીં પ્રસ્તાવ મૂક્યો. 886 00:38:37,270 --> 00:38:42,560 >> તેથી શું નિક Binky સાથે છેલ્લા સમય હતી છે તેમણે તે નિર્દેશક બહાર ખેંચી, માટી, 887 00:38:42,560 --> 00:38:46,820 મેમરી એક સફેદ ભાગ પર હવે નિર્દેશ કે પૂર્ણાંક માપ સમાન છે. 888 00:38:46,820 --> 00:38:49,360 અને ખરેખર, કે અર્થ થાય છે ચાર બાઇટ્સ પ્રતિનિધિત્વ. 889 00:38:49,360 --> 00:38:55,310 >> કોડ ઓફ હવે, આગામી વાક્ય આ હતી, સ્ટાર એક્સ 42 નોંધાયો નહીં. 890 00:38:55,310 --> 00:38:58,530 તેથી 42 પર સીધું છે બાજુ જમણી બાજુ, જીવન અર્થ. 891 00:38:58,530 --> 00:39:00,500 ડાબી બાજુ, સ્ટાર એક્સ શું અર્થ થાય છે? 892 00:39:00,500 --> 00:39:01,600 893 00:39:01,600 --> 00:39:03,280 કે ઠીક છે gone-- કે પણ હોય શકે છે. 894 00:39:03,280 --> 00:39:04,220 બરાબર. 895 00:39:04,220 --> 00:39:06,875 >> પ્રેક્ષક: સામાન્ય રીતે, [અશ્રાવ્ય] પર જાઓ 896 00:39:06,875 --> 00:39:07,750 ડેવિડ જે MALAN: સારી. 897 00:39:07,750 --> 00:39:08,760 AUDIENCE: [અશ્રાવ્ય]. 898 00:39:08,760 --> 00:39:09,760 ડેવિડ જે MALAN: ચોક્કસ. 899 00:39:09,760 --> 00:39:11,979 ડાબી બાજુ એક્સ પર જાઓ છે. 900 00:39:11,979 --> 00:39:12,520 એક્સ સરનામું છે. 901 00:39:12,520 --> 00:39:15,520 તે 33 ઓક્સફર્ડ સ્ટ્રીટ, અથવા Ox1 જેવું છે. 902 00:39:15,520 --> 00:39:18,690 અને સ્ટાર એક્સ કે પર જાઓ અર્થ એ થાય સંબોધવા માટે અને શું ત્યાં મૂકી? 903 00:39:18,690 --> 00:39:19,520 42. 904 00:39:19,520 --> 00:39:21,290 >> તેથી ખરેખર, કે નિક હતી બરાબર છે. 905 00:39:21,290 --> 00:39:23,740 તેમણે દ્વારા સાથે પ્રારંભ અનિવાર્યપણે, માનસિક 906 00:39:23,740 --> 00:39:26,270 આંગળી નિર્દેશ કરતી એક્સ, તીર નીચેના 907 00:39:26,270 --> 00:39:30,670 જમણી બાજુ સફેદ બોક્સ બાજુ, અને ત્યાં સંખ્યા 42 મૂકવા. 908 00:39:30,670 --> 00:39:34,120 પરંતુ પછી વસ્તુઓ મળી એક ઓછી ખતરનાક, અધિકાર? 909 00:39:34,120 --> 00:39:35,860 Binky માતાનો તેના માથા ગુમાવી વિશે. 910 00:39:35,860 --> 00:39:39,465 >> સ્ટાર વાય શું અર્થ થાય છે, 13, ખરાબ નસીબ બરાબર? 911 00:39:39,465 --> 00:39:43,620 તેથી સ્ટાર વાય અર્થ વાય માં સરનામા પર જાઓ. 912 00:39:43,620 --> 00:39:45,630 પરંતુ વાય માં સરનામા શું છે? 913 00:39:45,630 --> 00:39:47,899 914 00:39:47,899 --> 00:39:49,440 બધા હક છે, તે કચરો કિંમત અધિકાર છે? 915 00:39:49,440 --> 00:39:50,800 હું એક પ્રશ્ન ચિહ્ન તરીકે હતી. 916 00:39:50,800 --> 00:39:54,850 નિક એક અપ વળાંકવાળા તીર તરીકે હતી. 917 00:39:54,850 --> 00:39:59,600 અને જલદી તમે પ્રયત્ન કરો, કારણ કે ત્યાં જવા કહ્યું, સ્ટાર વાય છે, 918 00:39:59,600 --> 00:40:03,872 પરંતુ કાયદેસર નથી સરનામું, તે કેટલાક બનાવટી સ્થાન છે, 919 00:40:03,872 --> 00:40:05,080 કાર્યક્રમ ભાંગી બનશે. 920 00:40:05,080 --> 00:40:08,580 અને Binky વડા રહ્યું છે તે કર્યું છે, અહીં બંધ ઉડાન. 921 00:40:08,580 --> 00:40:12,130 >> અંતે, આ કાર્યક્રમ તેથી માત્ર ફ્લેટ બહાર પ્રવાહ હતો. 922 00:40:12,130 --> 00:40:13,540 તે બગડેલ કાર્યક્રમ હતો. 923 00:40:13,540 --> 00:40:14,760 અને તે ઠીક કરવાની જરૂર છે. 924 00:40:14,760 --> 00:40:18,260 અને માત્ર એક જ રસ્તો છે, ખરેખર, તે સુધારવા માટે હશે, દાખલા તરીકે, આ વાક્ય, 925 00:40:18,260 --> 00:40:21,010 અમે પણ કરવા નથી, જે કારણ કે કાર્યક્રમ ખૂબ જલ્દી ક્રેશ થયું. 926 00:40:21,010 --> 00:40:26,170 પરંતુ અમે આ ઠીક હતા, શું અસર વાય સમાન એક્સ છે કરી છે? 927 00:40:26,170 --> 00:40:30,010 ઠીક છે, તે અનિવાર્યપણે પર વાય નિર્દેશ ગમે કિંમત એક્સ નિર્દેશ કરતી હોય છે. 928 00:40:30,010 --> 00:40:32,430 >> નિક વાર્તા તેથી, અથવા Binky વાર્તા, બંને 929 00:40:32,430 --> 00:40:34,640 એક્સ અને વાય નિર્દેશ કરતી હતી મેમરી સફેદ ભાગ, 930 00:40:34,640 --> 00:40:38,300 જેથી, છેવટે, જ્યારે તમે વાય ફરીથી 13 બરાબર સ્ટાર નથી, 931 00:40:38,300 --> 00:40:43,080 તમે 13 મૂકવા અંત યોગ્ય સ્થાન. 932 00:40:43,080 --> 00:40:47,640 તેથી આ રેખાઓ તમામ સંપૂર્ણપણે છે કાયદેસર, આ એક સિવાય 933 00:40:47,640 --> 00:40:51,730 તે તમે પહેલાં થયું ત્યારે ખરેખર વાય કેટલાક કિંમત આઈડી. 934 00:40:51,730 --> 00:40:54,290 >> હવે Thankfully, તમે નથી તમામ મારફતે કારણ છે 935 00:40:54,290 --> 00:40:56,560 તમારા પોતાના પર મુદ્દાઓ આ પ્રકારના. 936 00:40:56,560 --> 00:40:59,310 મને આગળ વધો અને ખોલો અહીં એક ટર્મિનલ વિન્ડોમાં 937 00:40:59,310 --> 00:41:03,050 અને માત્ર એક ક્ષણ માટે, ખોલો, એક સુપર ટૂંકા કાર્યક્રમ કે 938 00:41:03,050 --> 00:41:04,360 પણ પ્રકારના અર્થહીન છે. 939 00:41:04,360 --> 00:41:05,152 તે નીચ છે. 940 00:41:05,152 --> 00:41:06,610 તે ઉપયોગી કંઈપણ હાંસલ નથી. 941 00:41:06,610 --> 00:41:10,180 પરંતુ તે મુદ્દાઓ નિદર્શન કરે છે મેમરી છે, તેથી આપણે એક નજર. 942 00:41:10,180 --> 00:41:11,830 >> મુખ્ય, સુપર સરળ. 943 00:41:11,830 --> 00:41:14,830 તે દેખીતી રીતે એક કાર્ય કહે છે, એફ, અને પછી 0 આપે છે. 944 00:41:14,830 --> 00:41:16,310 તે વાસણ આ પ્રકારની મુશ્કેલ છે. 945 00:41:16,310 --> 00:41:18,540 તેથી મુખ્ય અત્યાર સુધી, ખૂબ સારી છે. 946 00:41:18,540 --> 00:41:20,100 >> તેથી એફ સમસ્યારૂપ છે. 947 00:41:20,100 --> 00:41:22,120 અને માત્ર ખૂબ આવ્યો ન હતો તે નામકરણ માં પ્રયાસ 948 00:41:22,120 --> 00:41:23,990 અહીં, આ કોડ પર ધ્યાન રાખો. 949 00:41:23,990 --> 00:41:25,740 એફ બે લીટીઓ છે. 950 00:41:25,740 --> 00:41:27,610 અને હવે શું થઈ રહ્યું છે તે જોવા દો. 951 00:41:27,610 --> 00:41:29,840 તેથી એક તરફ અહીં અને મને બનાવવા દો 952 00:41:29,840 --> 00:41:32,680 અગાઉના સાથે આ સુસંગત એક તરફ ઉદાહરણ, 953 00:41:32,680 --> 00:41:35,830 ડાબી બાજુ છે ઇંગલિશ માં, શું કરી? 954 00:41:35,830 --> 00:41:36,493 તે ઠીક છે 955 00:41:36,493 --> 00:41:37,701 પ્રેક્ષક: નિર્દેશક બનાવી રહ્યા છે. 956 00:41:37,701 --> 00:41:40,830 ડેવિડ જે MALAN: નિર્દેશક બનાવી પૂર્ણાંક અને ફોન તે એક્સ. 957 00:41:40,830 --> 00:41:43,789 તેથી તે તે બોક્સ એક બનાવી છે હું ટચ સ્ક્રીન પર ચિત્રકામ રાખવા. 958 00:41:43,789 --> 00:41:45,913 અને હવે, જમણી બાજુ બાજુ, malloc, અલબત્ત, 959 00:41:45,913 --> 00:41:47,420 મેમરી એક ભાગ allocating છે. 960 00:41:47,420 --> 00:41:49,989 અને માત્ર સ્પષ્ટ કરવા માટે, કેવી રીતે બધી મેમરીનો દેખીતી રીતે તે છે 961 00:41:49,989 --> 00:41:52,030 ફાળવણી, તમે જો માત્ર પ્રકારની અહીં ગણિત છે? 962 00:41:52,030 --> 00:41:53,200 963 00:41:53,200 --> 00:41:54,040 >> તેથી તે 40 બાઇટ્સ છે. 964 00:41:54,040 --> 00:41:57,400 અને મને ખબર છે કે હું એક ખબર માત્ર કારણ કે પૂર્ણાંક, CS50 સાધન પર, ઓછામાં ઓછા, 965 00:41:57,400 --> 00:41:58,060 ચાર બાઇટ્સ છે. 966 00:41:58,060 --> 00:41:59,610 તેથી 10 વખત 4 40 છે. 967 00:41:59,610 --> 00:42:04,924 તેથી આ એક એક્સ સ્ટોર કરે છે, સરનામાં 40 ints પ્રથમ બહાર કે 968 00:42:04,924 --> 00:42:07,340 પાછા જગ્યા ફાળવવામાં કરવામાં આવી છે, પાછળ, પાછળ, પાછળ. 969 00:42:07,340 --> 00:42:08,470 >> અને તે malloc વિશે કી શું છે. 970 00:42:08,470 --> 00:42:11,261 તે થોડો મેમરી નથી અહીં, એક અહીં થોડી, થોડી અહીં. 971 00:42:11,261 --> 00:42:14,220 તે તમને મેમરી એક ભાગ આપે છે નજીકના, ઓપરેટિંગ થી 972 00:42:14,220 --> 00:42:15,240 સિસ્ટમ. 973 00:42:15,240 --> 00:42:18,500 >> હવે આ વિશે શું, એક્સ કૌંસ 10 0 સમકક્ષ હોય છે? 974 00:42:18,500 --> 00:42:19,470 કોડ ઓફ આર્બિટરિ વાક્ય. 975 00:42:19,470 --> 00:42:21,100 તે ઉપયોગી કંઈપણ હાંસલ નથી. 976 00:42:21,100 --> 00:42:26,128 પરંતુ તે રસપ્રદ છે એક્સ કૌંસ 10-- કારણ કે? 977 00:42:26,128 --> 00:42:26,628 અરે વાહ? 978 00:42:26,628 --> 00:42:27,912 >> AUDIENCE: [અશ્રાવ્ય]? 979 00:42:27,912 --> 00:42:30,500 >> ડેવિડ જે MALAN: એક્સ કૌંસ 10 નલ હોય છે નથી. 980 00:42:30,500 --> 00:42:35,070 આ નલ વિગતવાર માત્ર નાટક આવે શબ્દમાળાઓ સાથે, શબ્દમાળા ઓવરને અંતે. 981 00:42:35,070 --> 00:42:36,700 પરંતુ એક સારો વિચાર. 982 00:42:36,700 --> 00:42:39,615 >> કેવી રીતે મોટા પણ, આ એરે છે હું 40 બાઇટ્સ ફાળવવામાં કર્યું છે છતાં? 983 00:42:39,615 --> 00:42:42,560 984 00:42:42,560 --> 00:42:43,690 તે હક, નવ મારફતે 0 છે? 985 00:42:43,690 --> 00:42:45,120 તે કુલ, 10 ints છે. 986 00:42:45,120 --> 00:42:48,790 40 બાઇટ્સ, પરંતુ 10 ints, 0 મારફતે 0 અનુક્રમિત. 987 00:42:48,790 --> 00:42:50,930 >> જેથી એક્સ કૌંસ 10 શું છે? 988 00:42:50,930 --> 00:42:53,090 તે ખરેખર છે કેટલાક અજ્ઞાત કચરો કિંમત. 989 00:42:53,090 --> 00:42:54,780 તે મારા માટે સંબંધ નથી મેમરી છે. 990 00:42:54,780 --> 00:42:59,650 હું સ્પર્શ ન કરવો જોઇએ બાઇટ નંબર 41, 42, 43, 44. 991 00:42:59,650 --> 00:43:01,420 હું ખૂબ દૂર સહેજ જાઉં છું. 992 00:43:01,420 --> 00:43:04,490 >> અને ખરેખર, હું ચલાવી રહ્યા હોય તો આ કાર્યક્રમ, તે ખૂબ જ સારી રીતે ભાંગી શકે છે. 993 00:43:04,490 --> 00:43:05,790 પરંતુ ક્યારેક, અમે નસીબદાર મળશે. 994 00:43:05,790 --> 00:43:07,706 અને તેથી માત્ર નિદર્શન this-- અને પ્રમાણિકપણે, 995 00:43:07,706 --> 00:43:11,000 જો તમે પહેલાં ક્યારેય ખબર તેને આ ચલાવો નથી. 996 00:43:11,000 --> 00:43:12,480 તે ખરેખર ભાંગી ન હતી. 997 00:43:12,480 --> 00:43:15,032 >> પરંતુ હું માટે આ ફેરફાર જો ઉદાહરણ, 1000 જેવા હોઈ 998 00:43:15,032 --> 00:43:16,740 ખરેખર આ કરવા માટે ઇરાદાપૂર્વકની, માતાનો જોવા દો 999 00:43:16,740 --> 00:43:18,710 અમે વિચાર કરી શકો છો તે આ સમય ભાંગી. 1000 00:43:18,710 --> 00:43:20,070 ઠીક છે, તે તૂટી ન હતી. 1001 00:43:20,070 --> 00:43:22,600 કેવી રીતે 100,000 વિશે શું? 1002 00:43:22,600 --> 00:43:25,000 ચાલો તે રિમેક છે, અને હવે તે પુનઃ ચલાવો. 1003 00:43:25,000 --> 00:43:25,500 બરાબર. 1004 00:43:25,500 --> 00:43:25,960 Phew. 1005 00:43:25,960 --> 00:43:26,460 અધિકાર છે. 1006 00:43:26,460 --> 00:43:29,090 તેથી દેખીતી રીતે, ફરી, આ મેમરી સેગમેન્ટો, તેથી વાત કરવા માટે 1007 00:43:29,090 --> 00:43:32,660 જેથી અમે કરી શકો છો, વ્યાજબી મોટી છે ફરીથી અને ફરીથી નસીબદાર વિચાર. 1008 00:43:32,660 --> 00:43:36,510 પરંતુ છેવટે, એક વખત તમે હાસ્યાસ્પદ વિચાર અને ખરેખર, સ્ક્રીન પર અત્યાર સુધી બહાર જાઓ 1009 00:43:36,510 --> 00:43:39,120 તમે, કે જે ખરેખર મેમરી સ્પર્શ ખરેખર તમે સંબંધ નથી. 1010 00:43:39,120 --> 00:43:40,870 >> પરંતુ પ્રમાણિકપણે, આ ભૂલો પ્રકારના જવું છે 1011 00:43:40,870 --> 00:43:43,020 કઠણ અને કઠણ હોય છે તમારા પોતાના પર બહાર આકૃતિ. 1012 00:43:43,020 --> 00:43:47,880 પરંતુ thankfully, પ્રોગ્રામરો, અમે છે અમને અમારા માટે આ કરવા માટે પરવાનગી આપે છે સાધનો. 1013 00:43:47,880 --> 00:43:50,140 તેથી આ કદાચ, એક છે આ ugliest કાર્યક્રમો, 1014 00:43:50,140 --> 00:43:52,060 GDB આઉટપુટ કરતાં પણ uglier. 1015 00:43:52,060 --> 00:43:55,670 પરંતુ તે હંમેશા એક લાઇન છે કે સુપર ઉપયોગી છે કે બે. 1016 00:43:55,670 --> 00:44:00,310 >> Valgrind મદદ કરે છે એક કાર્યક્રમ છે તમે એક કાર્યક્રમ ડિબગ નથી, સે દીઠ, 1017 00:44:00,310 --> 00:44:03,500 પરંતુ મેમરી સંબંધિત શોધવા સમસ્યાઓ, ખાસ. 1018 00:44:03,500 --> 00:44:07,590 તે આપમેળે તમારા કોડ ચાલશે તમે અને ઓછામાં ઓછા બે વસ્તુઓ માટે જુઓ. 1019 00:44:07,590 --> 00:44:10,680 એક, તમે કંઈક કરી ટચ મેમરી જેવા આકસ્મિક 1020 00:44:10,680 --> 00:44:11,980 કે તમે સંબંધ ન હતી? 1021 00:44:11,980 --> 00:44:13,590 તે તમને તે કિસ્સાઓમાં શોધવા મદદ કરશે. 1022 00:44:13,590 --> 00:44:15,710 >> અને બે, તે મદદ કરશે તમે કહેવાય કંઈક શોધવા 1023 00:44:15,710 --> 00:44:19,270 મેમરી લીક્સ, અમે હોય છે જે સંપૂર્ણપણે અવગણવામાં, નિખાલસ રીતે, 1024 00:44:19,270 --> 00:44:21,380 કેટલાક સમય માટે અને પરમ સુખથી. 1025 00:44:21,380 --> 00:44:23,140 પરંતુ તે તમામ, બહાર વળે આ જ સમયે, જ્યારે 1026 00:44:23,140 --> 00:44:26,620 તમે GetString કહેવાય છે અમારા કાર્યક્રમો ઘણા, 1027 00:44:26,620 --> 00:44:28,930 તમે ઓપરેટિંગ કહીએ છીએ મેમરી માટે સિસ્ટમ, 1028 00:44:28,930 --> 00:44:32,070 પરંતુ તમે કોઇ સ્મરણ છે ક્યારેય તે આપ્યા 1029 00:44:32,070 --> 00:44:36,169 પાછા, કરી unalloc, અથવા મફત, તે કહે છે, કારણ કે. 1030 00:44:36,169 --> 00:44:37,960 ના, કારણ કે અમે ક્યારેય કર્યું આમ કરવા માટે તમને પૂછવામાં. 1031 00:44:37,960 --> 00:44:41,250 >> પરંતુ આ બધા સમય, કાર્યક્રમો તમે સી લખી રહ્યો છું 1032 00:44:41,250 --> 00:44:43,800 મેમરી લીક કરવામાં આવી છે, ઓપરેટિંગ પૂછવા 1033 00:44:43,800 --> 00:44:46,190 વધુ અને વધુ માટે સિસ્ટમ શબ્દમાળાઓ અને whatnot માટે મેમરી, 1034 00:44:46,190 --> 00:44:47,870 પરંતુ તે પાછા સોંપવામાં નથી. 1035 00:44:47,870 --> 00:44:50,080 અને હવે આ એક બીટ છે એક વધુ પડતી સાદગીની છે, 1036 00:44:50,080 --> 00:44:53,550 પરંતુ તમે ક્યારેય કર્યું હોય તો તમારા મેક ચલાવવા અથવા અમુક સમય, ઉદઘાટન માટે તમારા PC 1037 00:44:53,550 --> 00:44:55,790 કાર્યક્રમો ઘણાં, કદાચ, કાર્યક્રમો બંધ 1038 00:44:55,790 --> 00:44:57,795 અને છતાં પણ તમારા કમ્પ્યુટર ક્રેશ થયું છે, 1039 00:44:57,795 --> 00:45:01,690 તે ખૂબ જ ધીમી મેળવવામાં આવ્યું તે ખરેખર છે છતાં 1040 00:45:01,690 --> 00:45:04,290 મેમરીની જરુર મદદથી અથવા સાધનો, છતાં પણ, 1041 00:45:04,290 --> 00:45:06,070 તમે ન હો તો પણ કીબોર્ડ સ્પર્શ, 1042 00:45:06,070 --> 00:45:10,430 કે હોઈ પરંતુ always-- શકે શકે આ કાર્યક્રમો તમે ચલાવી રહ્યા છો કે હોઈ 1043 00:45:10,430 --> 00:45:11,920 પોતાને મેમરી લીક્સ હોય છે. 1044 00:45:11,920 --> 00:45:15,645 અને તેઓ વધુ અને માટે ઓએસ પૂછવા રાખવા વધુ મેમરી છે, પરંતુ તે વિશે ભૂલી, 1045 00:45:15,645 --> 00:45:18,470 ખરેખર, તેનો ઉપયોગ નથી પરંતુ તેથી દૂર મેમરી લેવા 1046 00:45:18,470 --> 00:45:20,500 તેને કરવા માંગો છો શકે છે અન્ય કાર્યક્રમો. 1047 00:45:20,500 --> 00:45:23,940 જેથી એક સામાન્ય સમજૂતી છે. 1048 00:45:23,940 --> 00:45:25,940 હવે અહીં જ્યાં Valgrind માતાનો છે આઉટપુટ સંપૂર્ણપણે છે 1049 00:45:25,940 --> 00:45:29,290 તે ઓછી માટે ભયાનક અને જેવું વધુ આરામદાયક. 1050 00:45:29,290 --> 00:45:32,690 પરંતુ રસપ્રદ સામગ્રી અહીં અધિકાર છે. 1051 00:45:32,690 --> 00:45:37,060 તે મને એક અમાન્ય લખવા કહેવાની છે કદ ચાર, આ કાર્યક્રમ માં થાય છે 1052 00:45:37,060 --> 00:45:40,640 ખાસ કરીને, memory.c ઓફ 21 વાક્ય પર. 1053 00:45:40,640 --> 00:45:45,450 >> હું એચએમ, ત્યાં ખરેખર, 21 વાક્ય પર જાઓ કદ ચાર એક અમાન્ય લખવા છે. 1054 00:45:45,450 --> 00:45:46,250 શા કદ ચાર? 1055 00:45:46,250 --> 00:45:49,500 વેલ, આ નંબર અને તે કંઈ હોઈ શકે પૂર્ણાંક છે. 1056 00:45:49,500 --> 00:45:50,450 તેથી તે ચાર બાઇટ્સ છે. 1057 00:45:50,450 --> 00:45:52,550 તેથી હું ચાર બાઇટ્સ મૂકી રહ્યો છું જ્યાં તેઓ અનુસરતા નહિં હોય. 1058 00:45:52,550 --> 00:45:55,080 કે શું Valgrind છે ખરેખર મને કહી છે. 1059 00:45:55,080 --> 00:45:57,600 વધુમાં, તે પણ કરશે અમે જોશો, મને કહો, 1060 00:45:57,600 --> 00:46:01,490 જો તમે આ ભવિષ્યના pset માં ચલાવો, કારણ કે તો તમે જે ખરેખર મેમરી, લીક કર્યું જ્યારે 1061 00:46:01,490 --> 00:46:05,300 હું કહેવાય છે, કારણ કે હું હોય છે malloc છે, પણ હું ખરેખર નથી 1062 00:46:05,300 --> 00:46:08,010 મફત, આ કિસ્સામાં, કહેવાય છે, જે અમે આખરે જોશો 1063 00:46:08,010 --> 00:46:09,830 malloc ના વિરોધી છે. 1064 00:46:09,830 --> 00:46:10,860 1065 00:46:10,860 --> 00:46:12,930 >> તેથી હવે, હું એક અંતિમ ઉદાહરણ છે. 1066 00:46:12,930 --> 00:46:14,050 1067 00:46:14,050 --> 00:46:16,690 તેથી આ એક થોડી વધુ છે arcane છે, પરંતુ તે કદાચ છે 1068 00:46:16,690 --> 00:46:19,180 માટે સૌથી મોટી કારણ , મેમરી સાથે ખૂબ કાળજી રાખો 1069 00:46:19,180 --> 00:46:24,490 અને કારણ કે ઘણા કાર્યક્રમો અને તે પણ આ દિવસ માટે / અથવા વેબ સર્વરો, 1070 00:46:24,490 --> 00:46:28,200 ક્યાંક ખરાબ ગાય્ઝ દ્વારા લેવામાં આવે છે ઇન્ટરનેટ પર કોઈક જે છે 1071 00:46:28,200 --> 00:46:33,390 તમારા સર્વર માટે બનાવટી પેકેટો મોકલીને તમારા એકાઉન્ટ્સ સમાધાન કરવાનો પ્રયાસ કરી, 1072 00:46:33,390 --> 00:46:36,420 અથવા તમારા ડેટા લે છે, અથવા માત્ર સામાન્ય રીતે મશીન પર લે છે. 1073 00:46:36,420 --> 00:46:38,910 બફર ઓવરફ્લો, તરીકે નામ, અર્થ સૂચવે છે 1074 00:46:38,910 --> 00:46:40,740 નથી પૂર્ણાંક છે, પરંતુ એક બફર વહેતું. 1075 00:46:40,740 --> 00:46:43,490 અને એક બફર માત્ર એક ફેન્સી માર્ગ છે કહેતા તે મેમરી એક ટોળું છે. 1076 00:46:43,490 --> 00:46:46,710 >> અને ખરેખર, હું એક શબ્દમાળા કહેવાય બદલે ઓ બફર, પહેલાં. 1077 00:46:46,710 --> 00:46:49,234 તે બફર જો કારણ કે, આ યુ ટ્યુબ અર્થમાં જેમ, 1078 00:46:49,234 --> 00:46:52,400 અથવા તમે એક વિડિઓ જોઈ રહ્યાં છો કોઈપણ સમયે, તમે આ શબ્દ બફરીંગને જોઈ હોય શકે છે, 1079 00:46:52,400 --> 00:46:53,040 ડોટ, કોઈ ડોટ. 1080 00:46:53,040 --> 00:46:54,240 તે માનવામાં ન આવે એવી નકામી છે. 1081 00:46:54,240 --> 00:46:55,990 અને તે માત્ર અર્થ એ થાય તમારા વિડિઓ પ્લેયર છે 1082 00:46:55,990 --> 00:46:58,710 ઘણાં ડાઉનલોડ કરવા માટે પ્રયત્ન કરી રહ્યા છે બાઇટ્સ બાઇટ્સ, ઘણાં 1083 00:46:58,710 --> 00:47:00,170 ઇન્ટરનેટ પરથી વિડિઓ છે. 1084 00:47:00,170 --> 00:47:02,920 પરંતુ તે ધીમી છે, તેથી તે પ્રયાસ કરી છે તેમને એક ટોળું ડાઉનલોડ કરવા માટે 1085 00:47:02,920 --> 00:47:06,430 કે જેથી એક બફર, કન્ટેનર, ભરવા માટે તમે તે પછી કરી શકો છો પૂરતી બાઇટ્સ છે 1086 00:47:06,430 --> 00:47:09,174 , તમે વિડિઓ બતાવો સતત pausing વગર. 1087 00:47:09,174 --> 00:47:11,340 પરંતુ તે તમે કરી શકો છો, બહાર વળે આ મોટી એક બફર છે. 1088 00:47:11,340 --> 00:47:15,710 પરંતુ આ ખૂબ માહિતી મૂકવા પ્રયાસ તે છે, અને ખૂબ જ ખરાબ વસ્તુઓ થાય છે શકે છે. 1089 00:47:15,710 --> 00:47:22,780 દાખલા તરીકે તેથી, ચાલો જોવા દો ઉદાહરણ આ અંતિમ સતામણી. 1090 00:47:22,780 --> 00:47:24,720 આ અન્ય કાર્યક્રમ છે કે, પ્રથમ નજરમાં, 1091 00:47:24,720 --> 00:47:26,540 સુપર ઉપયોગી કંઈપણ કરતું નથી. 1092 00:47:26,540 --> 00:47:29,590 તે એક મુખ્ય કાર્ય મળ્યું છે કે એફ, કે કાર્ય કહે છે. 1093 00:47:29,590 --> 00:47:36,640 અને તે કાર્ય, એફ, અહીં છે એક કોલસો બનાવો એરે, કદ 12, સી કહેવાય છે. 1094 00:47:36,640 --> 00:47:39,340 અને પછી તે આ ઉપયોગ છે નવા કાર્ય strncpy કહેવાય છે. 1095 00:47:39,340 --> 00:47:40,430 1096 00:47:40,430 --> 00:47:45,190 >> તે આ સરળ સાથે, તે તારણ આપે છે કોડ સરળ લાઇન, માત્ર બે રેખાઓ, 1097 00:47:45,190 --> 00:47:49,130 અમે મારા સમગ્ર કાર્યક્રમ કર્યા છે અને તેથી, મારા સમગ્ર કોમ્પ્યુટર, 1098 00:47:49,130 --> 00:47:54,000 અને મારા વપરાશકર્તા એકાઉન્ટ, અને મારા હાર્ડ કોઈને પણ સંભવિત સંવેદનશીલ વાહન 1099 00:47:54,000 --> 00:47:58,170 જે જાણે છે અને ચલાવવા માટે પૂરતી સારી છે ચોક્કસ આદેશ વાક્ય સાથે આ કાર્યક્રમ 1100 00:47:58,170 --> 00:47:58,900 દલીલ. 1101 00:47:58,900 --> 00:48:03,400 અન્ય શબ્દોમાં, જો આ ખરાબ વ્યક્તિ લખીને argvargv [1] ની અંદર મૂકે છે 1102 00:48:03,400 --> 00:48:08,750 કીબોર્ડ ખૂબ જ ખાસ રચના પર શબ્દમાળા નથી, એબીસી, 123, પરંતુ અનિવાર્યપણે, 1103 00:48:08,750 --> 00:48:15,180 એક્ઝેક્યુટેબલ પ્રતિનિધિત્વ કરે છે બાઈનરી પ્રતીકો કોડ છે, તે અથવા તેણી લખ્યું કે કાર્યક્રમ, 1104 00:48:15,180 --> 00:48:19,190 છે, કે જે આ સરળ કાર્યક્રમ, સાથે કાર્યક્રમો હજારો પ્રતિનિધિ 1105 00:48:19,190 --> 00:48:23,610 કે, daresay, તેવી જ રીતે સંવેદનશીલ હોય છે તે અથવા તેણી આખરે બધા કાઢી શકો છો 1106 00:48:23,610 --> 00:48:26,680 મારા હાર્ડ ડ્રાઇવ પર ફાઈલો, એક વિચાર તે અથવા તેણી કરી શકો છો કે જેથી પ્રોમ્પ્ટ ખીલેલું 1107 00:48:26,680 --> 00:48:30,170 તેમના પોતાના પર આદેશો લખો મને બધી ફાઈલો ઇમેઇલ. 1108 00:48:30,170 --> 00:48:34,660 હું શું કરી શકો છો કે જે કંઈપણ તેમણે અથવા તે આ કોડ સાથે કરી શકો છો. 1109 00:48:34,660 --> 00:48:36,575 >> અમે તદ્દન હજુ સુધી આ હલ નહીં. 1110 00:48:36,575 --> 00:48:38,700 અને હકીકતમાં, તે બનશે થોડી ચિત્ર સમાવેશ 1111 00:48:38,700 --> 00:48:41,470 આ જેમ, અમે ટૂંક સમયમાં આવે પડશે જે તમામ વધુ સારું સમજવા માટે. 1112 00:48:41,470 --> 00:48:44,480 પરંતુ આજે માટે, ચાલો પર અંત દો , થોડી વધારે આસ્થાપૂર્વક, શું છે 1113 00:48:44,480 --> 00:48:48,360 સમજી xkcd મજાક, અમે આગામી સમય ફરી શરૂ ત્યાં સુધી. 1114 00:48:48,360 --> 00:48:51,100 1115 00:48:51,100 --> 00:48:51,600 અધિકાર છે. 1116 00:48:51,600 --> 00:48:53,446 બુધવારે તમે જુઓ. 1117 00:48:53,446 --> 00:48:54,754 >> [સંગીત વગાડવાનો] 1118 00:48:54,754 --> 00:48:57,790 >> વક્તા: અને હવે, ઊંડા Daven Farnham દ્વારા વિચારો,. 1119 00:48:57,790 --> 00:49:00,890 1120 00:49:00,890 --> 00:49:04,770 મેમરી એક ખૂંટો માં જમ્પિંગ જેવી છે એક રવિવાર બપોરે સોનેરી પાંદડા. 1121 00:49:04,770 --> 00:49:09,000 પવન ફૂંકાતા, tossing તમારા ઓહ hair--, હું દિવસ when-- ચૂકી 1122 00:49:09,000 --> 00:49:11,100 1123 00:49:11,100 --> 00:49:12,650 >> [હાસ્ય] 1124 00:49:12,650 --> 00:49:13,750