[સંગીત વગાડવાનો] ડેવિડ જે MALAN: બધા અધિકાર આ CS50 છે અને આ અઠવાડિયે પાંચ શરૂઆત છે. આજે તો, તમારા બેઠક કુશન નીચે, તમે કંઈપણ શોધવા નહીં. પરંતુ ઉપર, તમે આ શોધી શકતા હોવા જોઈએ માટે અમારા પ્રશંસા થોડા ટોકન તમે મૂકી કે કામ બધા પંદર ગેમ માં. માત્ર પર ઓછી વર્તુળ દૂર આ માટે રમી શરૂ કરવા માટે નીચે વર્ગ બાકીની. કે જેથી યાદ, અથવા સેટ કે સમસ્યા ખબર આ સપ્તાહમાં બહાર ગયો, જે ચાર,, અન્ય રમત લખી સમાવેશ થાય છે. પરંતુ તે સમાવેશ થાય છે આ સમયે મદદથી વાસ્તવિક ગ્રાફિકલ વપરાશકર્તા ઇન્ટરફેસ, નથી જેમ ટેક્સ્ચ્યુઅલ ઈન્ટરફેસ પંદર ગેમ ઓફ હતો. અને આગળ તમે આવેલું કે રમત, તમે હજુ સુધી આ આગામી જોઇ ન હોય તો, આ જેમ થોડી કંઈક જુએ છે. હું મારા ટર્મિનલ જાય જઇ રહ્યો છું અહીં GDB માં વિંડો. અને હું આગળ જાઓ અને ચલાવવા માટે જઇ રહ્યો છું તમે ઍક્સેસ કરી શકો છો કે જે સ્ટાફ ઉકેલ, સામાન્ય તરીકે સુધારો 50 ચલાવ્યા પછી. પરંતુ હું થોડી તેને મૂકવા માટે જઇ રહ્યો છું ગુપ્ત સ્થિતિ, થોડી ઇસ્ટર ઇંડા, દ્વારા, ભગવાન સ્થિતિ કહેવાતી argv1 ભગવાન મૂકે. અને હું મારી પોતાની દિશાઓ અનુસરો હોય મારા પોતાના તે ચાલી સમસ્યા ડિરેક્ટરી સુયોજિત કરો. તેથી હવે તમે એક સંપૂર્ણ આવૃત્તિ જુઓ બ્રેકઆઉટ ની રમત છે. હકીકતમાં, આ બોલ પર કોઈ હાથ સ્થિતિ છે. તેથી તે ખરેખર છે - જોકે wowed તમે હોઈ શકે છે - ભગવાન સ્થિતિ અમલ કરવા માટે ખૂબ તુચ્છ બ્રેકઆઉટ, પંદર ગેમ ઓફ વિપરિત, જે તમે કેટલાક સામનો કરવો હોઈ શકે છે હેકર આવૃત્તિ માટે. બ્રેકઆઉટ તે ઈશ્વર પૂરતા સ્થિતિ ખાલી, શું કરવું તર્ક એ સાધન વડે? જસ્ટ ગમે તે સમાન બનાવવા આડી સ્થિતિ બોલ છે. અને તેથી લાંબા તમે lockstep માં આવું તરીકે આ રમત ખસેડવાની બોલ ચાલશે સાથે , ક્યારેય ક્યારેય બોલ ચૂકી ક્યારેય અને તમે દરેક વખતે જીતી શકશો. પરંતુ આ અઠવાડિયે માતાનો હેકર આવૃત્તિ માત્ર ભગવાન સ્થિતિ કરતાં વધુ છે. અન્ય લક્ષણો એક નંબર છે. તેમને પૈકી, લેસરો. કે જેથી તમે ખરેખર તમે ઉત્સુક વિચાર જો આ ઇંટો નીચે શૂટિંગ શરૂ કરી શકો છો અને થોડા અન્ય. અને કરવા માંગો છો જે તમે તે માટે ધોરણ વિરુદ્ધ હેકર ગોઠવવા આવૃત્તિ, હું જોઈ શકે છે કે આ સપ્તાહમાં હેકર આવૃત્તિ ઇરાદાપૂર્વક છે ભગવાન કરતાં કહે છે, થોડી વધુ doable સ્થિતિ પંદર ગેમ ઓફ હતી. તમે ઉંચાઇ માટે જોઈ રહ્યા છો અને તેથી જો તમે કેટલીક વધારાની આનંદ માટે શોધી રહ્યા છો લક્ષણો રસ તો ડાઈવ નથી. હવે વ્યવહારીક, મને નિર્દેશ દો એક વસ્તુ બહાર તેમજ. તમે કેટલાક હજુ સુધી હોઈ શકે નહિં કે જે GDB, દંડ છે, કે જે વ્યક્તિગત રહ્યો હતો. પરંતુ હવે ખરેખર ઉપયોગ કરવા માટે સમય છે આ સાધન સાથે આ અને આરામદાયક માટે તે તમારા જીવનમાં કરશે કારણ કે ખૂબ સરળ, સાચી. GDB એક દંપતિ પર રોબ માતાનો વ્યાખ્યાન દીઠ અઠવાડિયા પહેલાં, યાદ કે GDB એક ડીબગર છે. તે તમે ચલાવી શકો છો કે જે એક સાધન છે તમારા કાર્યક્રમ પરંતુ તે પગલું, લાઇન દ્વારા પગલું સ્કોર રેખા દ્વારા, કે જેથી તમે આસપાસ થેલી, કોથળી કરી શકો છો તમે વસ્તુઓ રહ્યું જુઓ, કે જેથી જેથી તમે બહાર છાપી શકો છો કે જે વેરિયેબલ્સ કિંમતો. ટૂંકમાં, તે તમને ઘણું બધું આપે છે printDef કરતાં સત્તા નથી. હવે સ્વીકૃત, ઈન્ટરફેસ ખૂબ arcane છે. બ્લેક અને સફેદ ટેક્સ્ચ્યુઅલ ઈન્ટરફેસ સૌથી ભાગ માટે. આ આદેશો અંશે ખડતલ છે પ્રથમ યાદ. પરંતુ તે તમને અડધા લાગી શકે છે, છતાં પણ એક કલાક, એક કલાક કે, અપફ્રન્ટ મૂકી તેને સમય રોકાણ, મને વિશ્વાસ. ચોક્કસપણે સત્ર અંત કરીને તેને સેવ કરશે વધુ તીવ્રતા તમે ઓર્ડર કરતા સમય. સાઇન સપ્તાહ ડાઈવ જેથી શરૂઆતમાં અને બ્રેકઆઉટ દ્રષ્ટિએ, ખબર છે કે તમે તમારી પાસે જેથી લાંબા આ કરી શકો છો વિતરણ કોડ અથવા તમારા પોતાના કોડ તમારા Pst4 ડિરેક્ટરીમાં પ્રોગ્રેસ. તમે GDB ચલાવી શકો છો કે જે ખબર. / બ્રેકઆઉટ. આ ખોલવા જઈ રહ્યું છે આ જેમ એક વિન્ડો. મને મારી જાતને વધુ આપી દો ટર્મિનલ વિન્ડોમાં છે. અને પછી હું આગળ જવા માટે જઇ રહ્યો છું અને આમ, તે માત્ર ચલાવવા નથી. હું પ્રથમ વિરામ બિંદુ સુયોજિત કરવા માટે જઇ રહ્યો છું તમે વિરામ કરવા માટે પરવાનગી આપે છે કે જે બોલાવવાનો, ચોક્કસ સ્થળ પર અમલ. માત્ર હું જાઉં છું વસ્તુઓ સરળ રાખવા માટે લખીને માત્ર વાક્ય એક ખાતે તોડી નંબર એક. મને ખરેખર આ વિન્ડોમાં ફરીથી ખોલવા દો જો તે મેળવવામાં આવ્યું છે કારણ કે ત્યાં થોડી નાની. તેથી શું હવે હું અહીં કરવા જઇ રહ્યો છું છે હું મારા ટર્મિનલ વિન્ડોમાં ખોલો તો. ત્યાં અમે જાઓ, પર આવો. હું ડ્રૉપબૉક્સ, Pst4 પર પાછા જાઓ તો હવે જો અને GDB ચલાવો. / બ્રેકઆઉટ દાખલ નોટિસ હું એક સેટ કરવા માટે તોડી જઇ રહ્યો છું રેખા એક પર એક વિરામ બિંદુ. અને હવે હું જવા માટે જઇ રહ્યો છું આગળ અને પ્રકાર ચલાવો. અને હું શું છે, ત્યારે કંઈ નોટિસ શું કરવા લાગે છે. આ બોલ પર કોઈ પોપ અપ છે. આ બોલ પર કોઈ ગ્રાફિકલ છે હજુ સુધી વપરાશકર્તા ઈન્ટરફેસ. હું છું કારણ કે પરંતુ તે સમજી છે શાબ્દિક મારા કાર્યક્રમ વાક્ય એક છે. અને, હું ઝડપી ફોરવર્ડ કરેલો નોટિસ ખાસ કરીને હવે 62, બધા કારણ કે આ ફાઈલની ટોચ પર સામગ્રી છે ટિપ્પણીઓ અને સ્થિરાંકો જેવી વસ્તુઓ અને હવે સામગ્રી uninteresting. તેથી હવે હું મુખ્ય અંદર છું તે લીટી 62 અંતે લાગે છે. અને આ માત્ર વિતરણ છે કોડ છે, યાદ. હું એ જ રીતે, જઈને આ ખોલો તો મારા ડ્રોપ બોક્સ ડિરેક્ટરી Pst4 માં માં, breakout.c માં. અને હું નીચે અને નીચે સરકાવો અને જો, અને મને આગળ જાઓ અને ચાલુ દો મારા લાઇન નંબરો. હું કરવા માટે નીચે સરકાવો હું જોશો શું, જો રેખા 62, બરાબર વાક્ય છે કે અમે થોભાવવામાં કર્યું છે. આ વાક્ય અહીં, 62, તેથી અમે કરી રહ્યાં છો છે. તેથી હવે GDB માં, હું આગળ જાઓ અને જો લખો હવે આગળ, તેને રહ્યું દાખલ તે લીટી ચલાવો. અને વોઇલા Query, અમે પાસે ગ્રામ વિન્ડો કહેવાતી. શું GWindow સાથે પરિચિત નહિં ચિંતા નથી, છે. આ ઉલ્લેખનું તરીકે, તે માટે તમે દાખલ કરશે સારી walkthrough વિડિઓઝ એક નંબર તરીકે જો ઉલ્લેખનું એમ્બેડ. પરંતુ હવે ચાલો આ એક બનાવવા દો થોડી વધુ રસપ્રદ. મને આ વિંડો પર ખસેડી દો બાજુ પર થોડુંક. મને વિન્ડો થોડી બનાવવા દો મોટા તેથી હું વધુ જોવા કરી શકો છો. અને હવે મને આગળ જવા દો અને ફરી આગામી કરવું. અને મારા ઇંટો છે. હું આગામી ફરીથી લખો, તો હવે હું આ બોલ જુઓ. અને હું આગામી ફરીથી લખો, જો હવે હું સાધન જુઓ. અને સદભાગ્યે આ gedit નથી ખરેખર મને બતાવીને સહકારથી હું માંગો બધું. પરંતુ હવે હું આગામી ફરીથી કરો તો, આગામી ફરી, હું હમણાં જ છું કેટલાક ચલો જાહેર. અને હું કોઈ પણ એક છાપી શકો છો બહાર આ ગાય્ઝ છે. પ્રિંટ ઇંટો, પ્રિન્ટ જીવન. અને હવે હું શું કરવાનું ચાલુ જો આગામી, હું હશો કે નોટિસ કે લૂપ પર આધારિત છે. પરંતુ કોડ ચલાવવા માટે ચાલે છે હું અપેક્ષા બરાબર છે. તેથી હું આ કાર્ય હિટ જ્યારે રાહ જુઓ, ક્લિક કરો માટે, તે કરવા જઇ રહ્યું છે તે શાબ્દિક છે. તેથી હું નિયંત્રણ ગુમાવી છે લાગતું આ પ્રોગ્રામ છે. GDB મને અન્ય પ્રોમ્પ્ટ આપીને નથી. પરંતુ ચિંતા કરવાની નથી. મારા રમત પર જાઓ, ક્યાંક ક્લિક કરો. અને વોઇલા Query, હવે તે લીટી 86 આગળ. તેથી ફરી, તે આખરે, અમૂલ્ય છે ડિબગીંગ સમસ્યાઓ માટે. તમે શાબ્દિક દ્વારા પગલું શકે છે કારણ કે તમારી કોડ છે, અને બહાર ખૂબ પ્રિન્ટ વસ્તુઓ ખૂબ, વધુ. એકલા પરંતુ હવે, તે સાધનો ખૂબ દૂર તમે વિચાર કરીશું. તેથી આપણે એક નજર લેતી, અલબત્ત, કરશો અંતે હવે ગ્રાફિક્સ, અચાનક બધા. અને હવે અમારી દુનિયા થોડી નહીં વધુ રસપ્રદ. અને તમે કેટલાક થી, કદાચ ખબર અમે આ છે કે ઑનલાઇન વિડિઓઝ તમે જોવાનું કરવામાં આવ્યા છે કે ટૂંકી ફિલ્મ સમસ્યા સેટ ભાગ તરીકે. અને તેઓ ઇરાદાપૂર્વક, ગોળી કરવામાં આવ્યાં છે એક સફેદ backdrop સામે. અને તેમને કેટલાક શિક્ષણ છે પર અમુક લખાણ ચિત્રકામ ફેલો પાથરી દેવામાં આવ્યું છે કે સ્ક્રીન તેમને બાજુ પર. પરંતુ અલબત્ત, આ બધા નથી વાસ્તવિક દુનિયામાં રસપ્રદ. આ એક સાથે માત્ર એક વ્યાખ્યાન હોલ છે મોટા સફેદ સ્ક્રીન અને એક backdrop. અને અમારા અમેઝિંગ પ્રોડક્શન ટીમ સૉર્ટ કરો બધું સુંદર જોવા બનાવે છે બહાર પાક દ્વારા હકીકત પછી અથવા કંઈપણ overlaying અમે કે નહિં માંગો. હવે આ અઠવાડિયે ઉત્સાહિત અને ખરેખર, તમે આખરે, જઇ શકો છો જ્યાં કોમ્પ્યુટર વિજ્ઞાન સાથે. માત્ર સમસ્યા પછી ચાર સુયોજિત કરો. પરંતુ અન્ય કોર્સ અથવા આખી પછી અભ્યાસક્રમ અમેઝિંગ તે શું તમે કરી શકો છો દ્રષ્ટિએ આ દિવસ કરવું ખાસ કરીને ગ્રાફિક્સ. તમે કેટલાક આ જોઈ હોય શકે છે ઑનલાઇન આસપાસ વહેતી. પરંતુ હું માટે, હું તમને બતાવવા માગતા વિચાર્યું માત્ર એક મિનિટ દંપતિ, શું એક ઝલક કમ્પ્યુટર ટેકનોલોજી અને શું CGI, કમ્પ્યુટર ગ્રાફિક્સ આ દિવસોમાં શું કરી શકો છો એક પરિચિત ગીત અને કદાચ ફિલ્મ. [સંગીત - LANA DEL રે, "યુવાન અને સુંદર] સ્પીકર 1: તે માત્ર થોડી છે અમેઝિંગ, કદાચ, માત્ર કેવી રીતે સર્વવ્યાપી - [અભિવાદન] સ્પીકર 1: હું માત્ર તેને ડાઉનલોડ કરી છે. પરંતુ તે, મને લાગે છે, ખરેખર સુંદર છે માત્ર સર્વવ્યાપી સોફ્ટવેર અને કોડ અને કેવી રીતે આ જેમ સાધનો ખરેખર છે. જેથી દિશા એક સ્વાદ છે જેમાં તમે જઇ શકો છો. ઓહ, કોઈ વધુ ઉપકરણ આજે. ઠીક છે, કે જે ખરેખર દુ: ખદ સમય છે હું માત્ર બનાવવા માટે પ્રયાસ કર્યો બિંદુ આપવામાં આવે છે. બધા હક, જેથી માતાનો લોન્ચ દો ફ્યુઝન ફરી. મને પછી યાદ અપાવો. બધા હક, અને તમે એક મળી છે જોઈએ તમે વિચાર કરી તો એક કોરે તરીકે ઇમેઇલ કે જેમ નોટિસ. બધા હક, જેથી છેલ્લા અઠવાડિયે યાદ અમે પાછા છાલ આ શરૂ પાછળથી શબ્દમાળા તરીકે ઓળખાય છે. સ્ટ્રિંગ છે કે માહિતી પ્રકાર યાદ જો CS50 પુસ્તકાલયમાં જાહેર કર્યું. અને તે તાલીમ વ્હીલ્સ ભાગ છે કે હવે બંધ લેવા શરૂ થશે. તે પર શરૂઆતમાં એક ઉપયોગી વિભાવના હતી. પરંતુ હવે તે વધુ વિચાર રહ્યું રસપ્રદ અને વધુ શક્તિશાળી વાસ્તવમાં, હૂડ નીચે જુઓ કે શબ્દમાળા માત્ર શું છે, અમે જણાવ્યું હતું કે, હતી? અરે વાહ, તેથી તે કહેવાતા ચાર * છે. અને ત્યાં * છે તે સૂચવે છે સરનામા અમુક પ્રકારના સમાવેશ થાય છે. અને તેથી તમે ચાર * કહે છે જ્યારે તમે માત્ર અર્થ જેની માહિતી પ્રકાર ચલ છે હવે પોઇન્ટર. ત્યાં સ્ટાર છે એ હકીકત હમણાં જ તમને જાહેર કરવામાં આવે છે કે જેનો અર્થ એ થાય નિર્દેશક કહેવાતી. અને તે નિર્દેશક દેખીતી રીતે ચાલે છે ના, ના સરનામા સ્ટોર કોર્સ, એક ચાર. હવે શા માટે આ અર્થમાં બનાવવા નથી? વેલ, એક શબ્દમાળા શું છે હૂડ નીચે? ઠીક છે, અમુક સમય માટે અમે કહેતા કરવામાં આવ્યાં છે હૂડ નીચે શબ્દમાળા કે માત્ર H-E-l-l-O, ઉદાહરણ તરીકે. પરંતુ અમે આ વિશે વાત કરી છે ,, આવશ્યકપણે એક એરે છે. અને એક એરે પછી થોડી જુઓ હોત આ દરેક સાથે, આ જેમ વધુ એક ડંખ અપ લેતી. અને પછી આપણે ત્યાં છે કે જણાવ્યું હતું કે કર્યું પાછા અહીં ખાસ કંઈક છે, બેકસ્લેશ 0, અથવા નલ ટર્મીનેટર. આ બધા સમય, તેથી આ અહીં શબ્દમાળા કરવામાં આવી છે. પરંતુ ખરેખર, એક શબ્દમાળા છે ખરેખર એક સરનામું. અમે જોશો અને સરનામાં,, ઘણી વાર છે સંમેલન દ્વારા 0x સાથે પ્રિફિક્સ. 0x શું સૂચવવા નથી? કોઇને ખબર નથી? તેથી તે માત્ર હેક્સાડેસિમલ થાય છે. તેથી તમે PST થી, ખરેખર, યાદ શકે છે 1, હું માને છે કે, ગરમ અપ એક પ્રશ્નો ખરેખર વિશે પૂછવામાં ઉપરાંત હેક્સાડેસિમલ સંકેત દ્વિસંગી અને દશાંશ. અને અહીં પ્રેરણા છે કે હેક્સાડેસિમલ સાથે તમે 16 છે તમારી આગળના અંકો. 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, અનુસરવામાં દ્વારા, બી, સી, ડી, ઇ, એફ. અને તમે તે બધા અપ ગણતરી જો, તમે 16 ના કુલ વિચાર. તેથી આ સાથે વિપરીત છે અમે 10 હોય છે દશાંશ, અંકો નવ મારફતે 0. તે બાઈનરી સાથે વિપરીત છે આપણે 0 અને 1 હોય છે. પરંતુ તમે માત્ર આ કરી શકો છો દિવસ ઓવરને અંતે એ જ નંબરો પ્રતિનિધિત્વ કરે છે, પરંતુ કંઈક અલગ. અને હેક્સાડેસિમલ સામાન્ય છે કારણ કે તરીકે તે બહાર વળે છે - અને અમે આ જોશો પાછળથી કોર્સ - ત્યારે પણ આપણે વિચાર સંદર્ભમાં વેબ પ્રોગ્રામિંગ માટે HTML અને રંગ કોડ, હેક્સાડેસિમલ સરસ છે. દરેક કોડ કારણ કે,, બહાર વળે સંપૂર્ણપણે ચાર બીટ્સ રજૂ કરે છે. સરસ રીતે લીટીઓ તેથી તે માત્ર પ્રકારની અમે આખરે જોશો તરીકે. તેથી આ હોઈ શકે Ox123 અથવા કંઈક કે જેમ, denoting સરનામા 123 ક્યાંક અંદર મારા ઓફ કોમ્પ્યુટરની મેમરી. પરંતુ અલબત્ત, કેટલીક સમસ્યાઓ ઊભી થાય છે કારણ કે આ અંતર્ગત ઓફ અમલીકરણ. અને હું ઘણો પ્રયાસ કર્યો હતો કે યાદ આ જેમ એક કાર્ય અમલીકરણ - છેલ્લા અઠવાડિયે આડંબર 0 ડોટ કો સરખાવવા માટે, કે તે જેમ તે જોવામાં છતાં પણ અધિકાર છે, તે માત્ર તુલના ન હતી બે શબ્દમાળાઓ યોગ્ય રીતે. હું દૂર મુખ્ય ફેંકવામાં કર્યું છે, અને હું ફેંકવામાં કર્યું દૂર ટિપ્પણીઓ માત્ર પર ધ્યાન કેન્દ્રિત કરવા માટે અહીં રસ છે તે કોડ. તે બગડેલ છે કારણ કે તે અને લાલ છે. શું કારણ? વેલ, ટોચ ત્યાં અંતે હું જાહેર ત્યારે શબ્દમાળા, શું ખરેખર ચાલુ કરવામાં આવી હતી હૂડ નીચે? ઠીક છે, મને ઉપર જવા દો અહીં સ્ક્રીન અને કે દોરે છે. તેથી હું, ફરી, જાહેર સ્ટ્રિંગ ઓ GetString. તેથી હવે હું આગળ જવા માટે જતા અને છું તે ખરેખર શું છે તે માટે ઓનલાઈન દોરે છે. અહીં એક ચોરસ હોઈ ચાલે છે. અને હું માટે દાવો કરવા જઇ રહ્યો છું કે 32 બીટ્સ કે. ઓછામાં ઓછા તે સામાન્ય રીતે હોય છે, ઓછામાં ઓછી CS50 પર કમ્પ્યુટર્સ ઘણો માં સાધન. હું તે ઓ કૉલ કરવા જઇ રહ્યો છું. પરંતુ હવે યાદ છે કે અમે GetString કહેવાય છે. તેથી GetString વળતર, અલબત્ત, શબ્દમાળા. H-E-l-l-O માં વપરાશકર્તા પ્રકારો દાખલ જો શબ્દમાળા હેલ્લો પરત નહીં. અને તે સ્ટ્રિંગ, અમે ફક્ત જણાવ્યું હતું કે, અંત અપ ક્યાંક તમારા કમ્પ્યુટરની મેમરી અંતે બેકસ્લેશ 0 સાથે. હું એરે જેવી આ ડ્રો કરીશું - અથવા અક્ષરો સંલગ્ન બ્લોક - તે ખરેખર છે કે જે. અને હવે, શું GetString છે વાસ્તવમાં પરત ફરવું છે? શું પરત કરવામાં GetString છે આ સમયે બધા? ઠીક છે, આપણે પહેલાં અઠવાડિયામાં કહે છે, જો તે સ્ટ્રિંગ આપે છે. પરંતુ વધુ તકનિકી, શું કરે છે દેખીતી રીતે વળતર GetString? પ્રેક્ષક: એક સરનામું. સ્પીકર 1: એક સરનામું. ખાસ કરીને તે સરનામા આપે છે તે ગમે તે ખૂબ પ્રથમ ડંખ. હું માત્ર એક, બે, ત્રણ નો ઉપયોગ ચાલુ રાખી તે અનુકૂળ છે કારણ કે. તે પ્રથમ સરનામું આપે છે શબ્દમાળા પાત્ર. અને અમે છેલ્લા અઠવાડિયે જણાવ્યું હતું કે, કે પૂરતી છે. અમે હંમેશા બહાર આકૃતિ કરી શકો છો કારણ કે જ્યાં શબ્દમાળા ઓવરને માત્ર દ્વારા એક સાથે, કદાચ, તેની પર વારો લૂપ અથવા જેમ જ્યારે લૂપ અથવા કંઈક કે, માત્ર "બેકસ્લેશ 0" માટે શોધી, ખાસ મહત્ત્વના પાત્ર. અને પછી આપણે જાણીએ છીએ કે જે શબ્દમાળા લંબાઈ હોઈ બને - આ કિસ્સામાં - પાંચ. તેથી ટેકનિકલ GetString શું કરે છે તે આ કેસમાં Ox123 આપે છે. અને તકનીકી પછી શું થાય છે કે અમે s ની અંદર, Ox123 સંગ્રહ કરે છે. દિવસ ઓવરને અંતે પણ આ છતાં નવા ખ્યાલ, પોઇન્ટર, તેઓ છીએ માત્ર ચલો. પરંતુ તેઓ બિટ્સ સંગ્રહ કરવા માટે થાય છે કે સામૂહિક એક સરનામું પ્રતિનિધિત્વ કરે છે. તેથી ટેકનિકલ બધા તેઓ નહીં s માં સંગ્રહિત Ox123 છે. મનુષ્યો પણ અમે - આજે આગળ સહિત - ખરેખર, ખાસ કરીને, સંભાળ જવા નથી વાસ્તવિક સરનામા શું છે મેમરી કેટલાક ચંકને છે. તે માત્ર વિગતવાર નીચા સ્તર માટે છે બુદ્ધિપૂર્વક રસપ્રદ છે. તેથી હું આ રદ કરવા જઇ રહ્યો છું. તેના બદલે, વધુ ઊંચા સ્તર, ફક્ત કહે છે કે અમે પોઇન્ટર વિશે વાત કરી રહ્યા હો ત્યારે હું માત્ર વધારે ડ્રો કરવા જઇ રહ્યો છું જો પૂરી પાડે છે કે જે વપરાશકર્તા મૈત્રીપૂર્ણ તીર સમાન વિચાર અને દૂર સાર એ વાસ્તવિક શું િવગતો અંતર્ગત સરનામું છે. અમે કોડ માટે પાછા જાઓ હવે તો, શું અમે શબ્દમાળા ટી હોય તો છેલ્લા અઠવાડિયે થયું GetString બરાબર? હેલ્લો માં ઠીક છે, હું ફરીથી જો, પ્રકાર હું વિચાર કરવા જઇ રહ્યો છું તો આ સમય મેમરી અન્ય ચંકને. H-E-l-l-O બેકસ્લેશ 0. પરંતુ હું GetString કહેવાય કારણ કે બીજા સમય - અને હું જોઈ આ ખબર GetString માટે સ્રોત કોડ - પણ તે હેલ્લો હતું કે સંયોગ છે તેમ છતાં બે વખત માં ટાઇપ, GetString નથી ઑપ્ટિમાઇઝ કરવા પ્રયાસ કરવા જતાં અને હોંશિયાર હોય છે. તે માત્ર અન્ય ચંકને વિચાર રહ્યું જે કોમ્પ્યુટર પરથી મેમરી અન્ય સરનામાં પર હશે. આપખુદ માત્ર 456 કહે છે ચાલો. અને પછી તે શું પાછા જવાનું છે? તે 456 પરત જવા છે અને t માં સંગ્રહે છે. તેથી શું ખરેખર પર ચાલે છે ડાબા હાથ બાજુ હું બીજા ચંકને હોય છે મેમરી, 32 બીટ્સ લાક્ષણિક. અને ત્યાં Ox456 જવા માટે ચાલે છે. પરંતુ ફરીથી, હું આ રસ રહ્યો નથી હવે ચોક્કસ નંબરો. હું માત્ર અમૂર્ત જઈ રહ્યો એક તીર તરીકે દોરે છે. તેથી હવે આ નવી સમજૂતી છે. પરંતુ તે તે જ ચોક્કસ વિચાર છે આ બધા સમય રહ્યું કરવામાં આવી. અને તેથી કારણ, પછી કે આ પ્રથમ સરખાવો આવૃત્તિ બગડેલ હતો છેલ્લા અઠવાડિયે શા માટે છે? ઓ બરાબર બરાબર જો તમે કરો ત્યારે તમે ખરેખર શું છે T હૂડ સરખામણી નીચે? તમે સરનામાં સરખામણી કરી રહ્યા છીએ. અને માત્ર તર્ક, સ્પષ્ટ રીતે, Ox123 સમાન Ox456 જવા નથી. તે નંબરો, તે બીટ્સ માત્ર અલગ અલગ છે. અને તેથી સતત, છેલ્લા અઠવાડિયે જણાવ્યું હતું કે, તે તમે અલગ વસ્તુઓ લખો તો પણ શબ્દો અક્ષરશઃ જ હતા. તેથી અમે આ નક્કી કરે છે. જનસાધારણ ના નિયમો માં, સુધારો શું હતું? પ્રેક્ષક: એક કાર્ય કરો. સ્પીકર 1: એક કાર્ય કરો. અથવા તારાઓ ચોક્કસપણે સંકળાયેલા હોય છે, પરંતુ શું કરવા માટે વિધેય વાપરી? પ્રેક્ષક: શબ્દમાળાઓ સરખાવવા માટે. સ્પીકર 1: શબ્દમાળાઓ સરખાવવા માટે. તેથી અહીં મૂળભૂત સમસ્યા હતી, હું માત્ર વિચારણા કરવામાં આવી છે કે દ્વારા વ્યાખ્યાયિત કરવા માટે શબ્દમાળાઓ ગુણવત્તા તેમના સરનામાં સરખામણી. અને દેખીતી રીતે જે હવે એક વખત માત્ર મૂક છે તમે શું થઈ રહ્યું છે તે સમજવા હૂડ નીચે. સાચી જોવા માટે શબ્દમાળાઓ સરખાવવા માટે, જો તેઓ કે માનવ આ રીતે સમાન છો બે શબ્દમાળાઓ સમાન હોઈ વિચારણા કરશે અમે તેમને પાત્ર તુલના કરવાની જરૂર પાત્ર માટે પાત્ર. હવે હું પૂર્ણ કરી શકે છે આ ખૂબ જ tediously. પરંતુ પરિચીત, અમે છો લૂપ માટે ઉપયોગ થાય છે. અને માત્ર ઓ કૌંસ સરખાવવા ટી કૌંસ હું સામે હું. ટી કૌંસ સામે ઓ કૌંસ હું વત્તા 1 હું વત્તા 1, અને તેથી આગળ, અંદર લૂપ અમુક પ્રકારની. અને હું માનું છું કે કોઈપણ બે અક્ષરો સ્પોટ જો અલગ અલગ, અથવા હું ooh ખ્યાલ છે કે, જો s છે ટી કરતા ટી કરતા ટૂંકા અથવા લાંબા હું તરત જ, ખોટી કહી શકો છો તેઓ જ નથી. પરંતુ હું ઓ અને ટી દ્વારા વિચાર અને કહે તો જ, જ, જ, જ, જ, ઓવરને બંને શબ્દમાળાઓ, હું કહી શકો છો સાચું, તેઓ સમાન હોય છે. વેલ, thankfully, વર્ષો પહેલા કોઈને અમારા માટે કે કોડ કે જે લખ્યું. અને તેઓ તેને StrComp કહેવાય સ્ટ્રિંગ તુલના માટે. અને તે ઓછી કાઉન્ટર છે છતાં પણ તે તો સાહજિક StrComp 0 આપે છે બે શબ્દમાળાઓ, S અને T સમાન હોય છે. પરંતુ તે નકારાત્મક કિંમત આપે તો ઓ અથવા ટી મૂળાક્ષરોની પહેલાં આવવું જોઈએ તે આવવું જોઈએ જો હકારાત્મક કિંમત ટી મૂળાક્ષરોની પછી. તમે ક્યારેય કંઈક સૉર્ટ કરવા માંગો છો તેથી જો, તે StrComp ઉપયોગી છે કે જે બહાર કરે છે. તે માત્ર કહે છે નથી કારણ કે આ બોલ પર કોઈ અથવા હા, બરાબર નથી અથવા. તે તમે ઓર્ડર એક અર્થમાં આપે છે એક શબ્દકોશ શકે ગમે છે. StrComp તેથી, ઓ અલ્પવિરામ ટી બરાબર 0 અર્થ બરાબર કે શબ્દમાળાઓ સાચી સમાન હોય છે. રહેલી વ્યકિત આ કાર્ય લખ્યું છે કારણ કે વર્ષો પહેલા અનુમાન લૂપ માટે ઉપયોગ જેમ કે જ્યારે લૂપ અથવા કંઈક ફરી અક્ષરો પર સંકલિત કરવા માટે અને ફરી અને ફરી. પરંતુ સમસ્યા બે અહીં ઊભો થયો. આ copy0.c હતી. અને લાલ માં બે છે તે અપૂર્ણ છે કારણ કે. અને અમે અહીં શું કર્યું? ઠીક છે, હું પ્રથમ GetString કહેવાય છે. અને હું s માં પરત કિંમત સંગ્રહિત. કે જેથી ખૂબ ખૂબ તરીકે જ છે ચિત્ર આ ટોચ ભાગ છે. પરંતુ શું તે પછી આવે છે? ઠીક છે, મને આગળ વધો અને છુટકારો મળી દો આ સમગ્ર ટોળું છે. અમે જ્યાં અમે માત્ર સમય રીવાઇન્ડ પડશે હવે સાથે સુસંગત છે જે ઓનલાઈન છે, અપ લાઇન ત્યાં એક છે. હું તપાસો. ઓ બરાબર તો 0 બરાબર. હવે, એક ઝડપી બાજુ નોંધ, જ્યારે GetString 0 પાછા શકે છે? પૂરતી મેમરી નથી છે. બરાબર ને? તે આ શું ચાલે છે કે દુર્લભ છે ચોક્કસપણે જે કમ્પ્યુટર પર અથવા megs સેંકડો મળી RAM ની પણ શોનો. પરંતુ તે સિદ્ધાંત માં પરત કરી શકે છે 0, ખાસ કરીને જો વપરાશકર્તા સહકાર નથી. તમે ન હોય જેમ ડોળ માર્ગો છે ઇનપુટ કંઈપણ અને યુક્તિ પરત માં GetString અસરકારક 0. તેથી તે ચકાસવા માટે બનશે. તમે કોઇ પણ શરૂ કર્યું છે કારણ કે જો પહેલેથી જ, સેગ્મેન્ટેશન ખામી વિચાર - જે કદાચ સ્રોત છે કેટલાક હતાશા ઓફ - તે લગભગ હંમેશા પરિણામ છે મેમરી સંબંધિત ભૂલ છે. અચાનક તમે સંદર્ભે સાથે મિશ્રિત તમે ખ્યાલ ન હતો તો પણ નિર્દેશક, એક નિર્દેશક આવી હતી. તેથી તમે સેગ્મેન્ટેશન પ્રેરિત છે શકે નો ઉપયોગ કરીને સપ્તાહ એક પ્રારંભ તરીકે ખામી લૂપ અથવા એક જ્યારે માટે કંઈક ખૂબ દૂર જઈને લૂપ અને એક એરે કેટલાક ઍરેની સરહદો ભૂતકાળમાં કે જો તમે અઠવાડિયાના બે જાહેર ચોક્કસ. તમે પણ સમસ્યા તે થાય છે શકે બ્રેકઆઉટ સાથે ચાર સુયોજિત કરો. તમે કદાચ જોઇ ન હોય છતાં પણ માટે વિતરણ કોડ કોઈપણ તારાઓ બ્રેકઆઉટ, તે બહાર વળે કે જેઓ GRect અને GOval અને અન્ય જેમ વસ્તુઓ, તે ખરેખર પોઇન્ટર છે હૂડ નીચે. અમને ગમે છે પરંતુ સ્ટેનફોર્ડ, છુપાવે છે સોર્ટ કે વિગતવાર ઓછામાં ઓછી લાઈબ્રેરીઓ માટે હેતુઓ, ખૂબ અમે જેમ સ્ટ્રિંગ અને ચાર * છે. પરંતુ GRect અને GOval અને તે તમામ તમે ગાય્ઝ છે અથવા વસ્તુઓ મદદથી થશે આ સપ્તાહના અંતે છે મેમરી સરનામાંઓ. તમે માત્ર તે ખબર નથી. તેથી તે, કદાચ, તો પછી આશ્ચર્યજનક નથી તમે કેટલાક પર સફર હોઇ શકે તેવી સેગ્મેન્ટેશન ખામી. પરંતુ, હવે અહીં રસપ્રદ શું છે અમે શું 0 તપાસ બાદ જો સ્ટ્રિંગ ટી ઓ નોંધાયો નહીં. ઠીક છે, મને ટી જાહેર કરવા દો. હું એક ચોરસ તરીકે ડ્રો કરવા જઇ રહ્યો છું 32 બિટ્સ, તે કહે છે. અને પછી હું જઈ રહ્યો છું ઓ નોંધાયો નહીં. ઠીક છે, કે શું અર્થ છે? ઠીક છે, તે વિચાર થોડા હાર્ડ વિશે તે મુજબની ચિત્ર. પરંતુ લેટ્સ વિશે વિચારો X ની અંદર શું છે? આ ચલ અંદર શાબ્દિક શું છે? આ કિંમત Ox123. તેથી મને કહે છે જ્યારે શબ્દમાળા ટી ઓ નહીં, કે શાબ્દિક નંબર લેવા અર્થ એ થાય ઓ માં, જે Ox123 છે અને તે Ox123 મૂકો. અથવા pictorially છે, તો હું પ્રકારની અમૂર્ત દૂર કે વિગતવાર થી તે છે શાબ્દિક કરવાની અસર આ જ રીતે. તેથી હવે, છેલ્લા અઠવાડિયે પાછા લાગે ત્યારે અમે મૂડીવાદી ટી હું આગળ ટી કૌંસ 0 હતી. વેલ, જો તે ટી કૌંસ 0 છે, છતાં પણ નિર્દેશક, તો તમે તેને છતાં સારવાર કરી શકે છે જો તે ચોરસ સાથે, એક એરે છે કૌંસ સંકેત. તેથી જ્યાં ટી કૌંસ 0 છે? વેલ, તે ક છે. અને તેથી અમે કોડ કે લીટી વાપરો ત્યારે, કે કેચ type.h છે જે બે ઉચ્ચ, હેડર ફાઇલ, કે જ્યાં ચોક્કો તે જાહેર છે. તમે આ એચ અક્ષરો પરંતુ રહ્યા છો કોર્સ, કે જે એક જ ચોક્કસ-h છે s ની અંદર, તેથી વાત કરવા માટે. અને તેથી હવે તમે અથવા બદલાયેલ છે મૂડીગત મૂળ અને બંને નકલ કહેવાતી. જો તમે એક નકલ કરી નથી કારણ કે માનવ તે હોઈ માંગો છો કે જે રીતે. તેથી અહીં સુધારો, શું હતું copy1.c છેલ્લા સપ્તાહમાં? કાર્યો, જેથી અમે ખરેખર શકે શબ્દમાળા નકલ કરો. અને મૂળભૂત, અમે શું જરૂર નથી શબ્દમાળા નકલ કરવા માટે કરે છે? ઠીક છે, અહીં તો આ લીલા આવૃત્તિમાં હું છું તે એકદમ નીચા સ્તર કરવા જઇ. કાર્યો ખરેખર છે તેઓ આ સાથે મદદ કરી શકે છે. પરંતુ મોટા ભાગના આધારભૂત એક અને સૌથી વધુ પરિચિત એક, ઓછામાં ઓછા, ટૂંક સમયમાં થશે અમને પરિચિત, નીચેની છે - જેથી પ્રથમ વાક્ય પર એક લીલા કોડ હવે. હું માત્ર ચાર * તરીકે ઓ ફરીથી લખ્યા હતા. આ બોલ પર કોઈ કાર્યાત્મક છે ત્યાં તફાવત. હું માત્ર CS50 પુસ્તકાલયમાં પથ્થરમારો અને હું તે ચાર * શું છે તે ફોન છું. હવે કોઈ, કોઈ, કોઈ હતા, કારણ કે નથી કે જે અમુક ભૂલ ચકાસણી ફરી વિશે વાત રસપ્રદ. તેથી હવે ટી જાહેર કરવામાં આવે છે. તે પણ એક ચાર * છે. તેથી હું પર થોડી ચોરસ દોર્યું પહેલાં જેવી સ્ક્રીન. પરંતુ જમણી બાજુ પર, malloc, અમે મેમરી ફાળવણી છે. તેથી મેમરી કેટલાક ચંકને ફાળવો. અને અમે ખરેખર કેટલા બાઇટ્સ કરવું ફાળવો કરવા માંગો છો, તે લાગતું નથી? વેલ, S ના શબ્દમાળા નહીં. તે હેલ્લો કે તેથી જો પાંચ હોઈ ચાલે. અમે H-E-l-l-O કહે છે પડશે. પાંચ બાઇટ્સ છે. પરંતુ પછી 1 વત્તા, શા માટે 1? 0 પાત્ર. અમે આ વ્યક્તિ માટે જગ્યા છોડો નહિં હોય, તો અમે આકસ્મિક પરિસ્થિતિ બનાવી શકે છે શબ્દમાળા છે જ્યાં H-E-l-l-O. અને પછી આગલી વખતે GetString છે , કહે છે અને હું હમણાં પૂરતું, ટાઈપ ડેવિડ, D-A-V-i-d, કમ્પ્યૂટર ચાલુ છે ઓ ખરેખર છે કે જે વિચારો H-E-l-l-O-D-A-V-i-d છે કારણ કે તે શબ્દો વચ્ચે કોઈ ભંગ. તેથી અમે તે બ્રેક જરૂર છે. તેથી આપણે પાંચ માંગતા નથી. અમે છ બાઇટ્સ માંગો છો. અને બાઇટ્સ મને કહે. પરંતુ તે ચાર ઓફ ખરેખર સમય માપ છે. ટેક્નિકલ ચાર લગભગ છે હંમેશા એક બાઇટ. પરંતુ માત્ર અમારી કોડ પોર્ટેબલ બનાવવા માટે, તેથી તે પર કામ કરે છે, કે જેથી વાત કરવા માટે વિવિધ કમ્પ્યૂટરો પણ તેઓ કદાચ જો નીચે કંઈક અલગ હોઈ હૂડ, હું સામાન્ય જઈ રહ્યો ચાર ઓફ કહે કદ કે જેથી મારી કોડ હંમેશા કામ કરે છે. અને હું તે માત્ર recompile જરૂર નથી હું મારું કમ્પ્યુટર અપગ્રેડ અથવા ઉપયોગ કારણ કે કેટલાક અલગ પ્લેટફોર્મ. તેથી હું 6 વખત માપ મળી છે 1 હોઈ બને, જે ચાર. તેથી અર્થ એ થાય કે malloc કરી શકે છે મને છ બાઇટ્સ આપે છે. ખરેખર કરી કે શું છે? ઠીક છે, મને અહીં સમય પાછા પત્રક દો અમે વાર્તામાં છે માટે. હું અહીં પાછા જાઓ, તેથી જો હું જાહેર કર્યું ટી તરીકે ઓળખાતા ચાર *. હું હવે છ બાઇટ્સ માટે malloc કહેવાય કર્યું છે. અને હવે હું તે છ ડ્રો કરવા જઇ રહ્યો છું માત્ર એરે અગાઉ જેવી બાઇટ્સ. પરંતુ હું ખરેખર શું છે તે ખબર નથી આ એરે પર આધારિત છે. તમે મેમરીને ફાળવવા તો તે બહાર વળે કે તમે અમુક છે તે વિશ્વાસ કરી શકતું નથી ત્યાં ઓળખાય મૂલ્ય. તે કંઈક દ્વારા ઉપયોગ કરવામાં આવે છે શકે છે બીજું, કેટલાક અન્ય કાર્ય, કેટલાક અન્ય તમે લખ્યું કે કોડ રેખા. તેથી આપણે સામાન્ય રીતે આ કચરો કૉલ પડશે કિંમતો અને, કદાચ, તેમને ડ્રો પ્રશ્ન ગુણ, માત્ર સૂચવે છે કે અમે ત્યાં ખરેખર શું છે તે ખબર નથી. અને કે જેથી લાંબા અમે કોઈ મોટા સોદો છે તે પર ફરીથી લખી કરવા માટે પૂરતી સ્માર્ટ છે કચરો નંબરો સાથે મૂલ્યો અથવા અમે વિશે કાળજી કે અક્ષરો. તેથી આ કિસ્સામાં શું હું શું કરીશ? ઠીક છે, મારા લાઇન કોડ આગામી, હું ચાર હોય છે. હું વિચાર 0 INT, એ નહીં જો s ની શબ્દમાળા નહીં. લૂપ માટે જેથી પરિચિત. હું કરતા ઓછો અથવા એ બરાબર છે જે સામાન્ય રીતે ઉપર છે. પરંતુ આ સમય તેને ઇરાદાપૂર્વક છે. હું + +, અને પછી હું સરળતાથી કરવું ટી કૌંસ હું ઓ નોંધાયો નહીં. મારા ચિત્ર પર આ જેવી લાગે છે, કારણ કે ટી માં સ્ટોર આ ક્ષણ છે, જે મેમરી કે રેન્ડમ ચંકને ઓફ સરનામા જેની કિંમતો અજ્ઞાત છે. પરંતુ જલદી હું ટી કૌંસ જેમ અહીં મને મૂકે 0. અને ત્યાં શું દોરેલા રહેલી એન્ડ્સ? અમે હરભજન મૂકે અંત. કે ઓ કૌંસ 0 શું છે કારણ કે. માટે અને પછી એ જ વસ્તુ ઇ, અને L, અને L, અને ઓ. એ, શા માટે હું મારફતે જાઓ હતી એ માટે એક સમાન? 0 પાત્ર છે. તેથી માત્ર પછી, સ્પષ્ટ હોવી જોઈએ, તો હું ખરેખર કરવા માટે ભૂંસી ગમે આ કચરો મૂલ્યો છે અને પછી ખરેખર માં ડ્રો હું અપેક્ષા શું છે, આ ઓ કૌંસ 1, 2, છે 3, 4, વત્તા કે પાછળનો છે નવું પાત્ર. અને તેથી હવે અમે, ડોટ છેલ્લા ચાલુ રાખ્યું જો આ યોગ્ય આવૃત્તિ માં ટપકું, ડોટ અને કેપિટલ ટી કૌંસ 0 હું કરી છે, કોર્સ અક્ષરો કરી ફક્ત આ અહીં ગાય, જે ખ્યાલ પ્રમાણે, છેવટે ગોલ નોંધાવ્યો હતો. તેથી કે જે બધા નિર્દેશક છે. અને તમે અઠવાડિયા માટે તેમને ઉપયોગ કરી રહ્યો છું હવે શબ્દમાળાઓ સંદર્ભમાં. પરંતુ હૂડ નીચે તેઓ કરશો થોડી વધુ જટિલ. પરંતુ તમે આ તેમને વિશે વિચારો તો સચિત્ર ફોર્મ તેઓ કરશો કે હું પ્રસ્તાવ તેઓ કદાચ બધા કે ડરામણી નથી પ્રથમ પ્રથમ નજરમાં લાગે શકે છે, ખાસ કરીને જેમ કે નવા વાક્યરચના સાથે. પોઇન્ટર પર કોઈપણ પ્રશ્નો, શબ્દમાળાઓ, અથવા અક્ષરો? યાહ? પ્રેક્ષક: તમે પાછા જઇ શકો છો માટે [અશ્રાવ્ય] માટે? સ્પીકર 1: શ્યોર. પ્રેક્ષક: તમારા ખૂબ જ છેલ્લા આવે તેથી કેવી રીતે રેખા, તમે * ટી લીટી નથી અને A * S લીટી માં? તમે માટે સંદર્ભ નથી - સ્પીકર 1: આહ, ખરેખર સારા પ્રશ્ન. શા માટે હું * ટી અને A * S નથી? કારણ કે અમારી જેમ સંક્ષિપ્તમાં, છેલ્લા અઠવાડિયે, કાર્ય સ્વેપ, હું કે જે, જ્યારે કહે હતી તમે એક નિર્દેશક અર્થ મળી છે અમે હતી તમે ત્યાં જવા જે શારીરિક સ્ટેજ પર, વાસ્તવમાં હતી સ્ટાર ઓપરેટર વાપરો. તે બહાર વળે કે આ ચોરસ કૌંસ સંકેત અમે વાકયરચનામાં કૉલ કરશો શું છે માત્ર એક સેક્સી માર્ગ છે જે ખાંડ, માટે તે લઘુલિપિ સંકેત કહીને તમે વર્ણન રહ્યાં છો તે જ. પરંતુ તે થોડી વધુ સાહજિક છે. અને બનાવવા જોખમ પર આ વધુ લાગે છે તે જરૂર કરતાં જટિલ, શું ખરેખર અહીં રહ્યું છે નીચેના છે - હું એનો અર્થ એ થાય * ટી કહે છે કે જો પર જાઓ જો સરનામા ટી માં સ્ટોર. તેથી શાબ્દિક, સ્ટોર ટી હોય તો કે-h ની સરનામા શરૂઆતમાં * ટી અર્થ અહીં જાઓ. હવે, ટી કૌંસ 0 શું અર્થ છે? જ ચોક્કસ વસ્તુ. તે માત્ર થોડી વધુ વપરાશકર્તા લખવા માટે અનુકૂળ છે. પરંતુ હું હજુ સુધી કરવામાં નથી. હું માત્ર * ટી * ઓ નોંધાયો કહી ન શકે. કારણ કે હું પછી શું કરવાનું આવશે? હું h,-h,-h,-h, એચ મૂકે હશો સમગ્ર બાબત દરમ્યાન. બરાબર ને? * ટી છે કારણ કે ટી ​​માં સરનામા માટે જાઓ. પરંતુ અમે એક લૂપ અંદર છો. અને શું કિંમત હું incrementing છું અલબત્ત, દરેક ઇટરેશન પર? હું. પરંતુ તક છે અહીં, અધિકાર? તે મેળવવામાં માતાનો જેમ આ લાગે છે, તેમ છતાં થોડી વધુ વ્યવહારદક્ષ જો ચોરસ કૌંસ સંકેત કરતાં અમે કેટલાક સમય માટે ઉપયોગ કર્યો - મને ત્યાં મારા ક ફેરફાર પૂર્વવત્ દો - આ હવે થોડી મેળવવામાં આવે છે છતાં પણ પારખુ, મૂળભૂત વિચાર, જો * ટી અહીં અર્થ થાય છે અને * ટી માત્ર છે ટી માં સરનામા માટે જાઓ. પરંતુ ટી માં સરનામા શું હતું? અમે ઉપયોગ ચાલુ રાખી સંખ્યા? Ox456 જેમ, માતાનો કે પાછું લાવવા દો માત્ર ચર્ચાના સુરક્ષા માટે. ઠીક છે, હું ઈ અંતે વિચાર કરવા માંગો છો ટી સ્ટ્રિંગ, હું ફક્ત જવા માંગો છો અનિવાર્યપણે, 456. અથવા બદલે, 457. હું માત્ર એક ઉમેરવાની જરૂર છે. પરંતુ હું અધિકાર છે, કે જે કરી શકે છે? ટી, હું ડ્રોઈંગ રાખવા છતાં પણ કારણ કે તે હવે એક તીર તરીકે, તે માત્ર એક ચોક્કો નંબર, Ox456. અને હું એક, ઉમેરવા, અથવા વધુ હોય સામાન્ય રીતે, હું આ કરી શકો છો કે જે હું ઉમેરવા જો હું માંગો છો બરાબર જ્યાં ખરેખર વિચાર. તેથી હું ખરેખર આવું હોય તો - અને આ હવે કહેવાય છે તે છે નિર્દેશક અંકગણિત - હું આ વાક્ય દૂર કરી શકો છો. પ્રમાણિકપણે છે, કે જે હું સ્પષ્ટ અને લાગે છે વાંચવા માટે થોડી વધુ વપરાશકર્તા મૈત્રીપૂર્ણ. પરંતુ આ બોલ પર કોઈ ઓછી યોગ્ય છે. કોડના આ વાક્ય હવે ઉપયોગ કરી રહ્યા છે નિર્દેશક અંકગણિત. તે જવા માટે કહેતા છે નીચેના સરનામું - ટી શરૂઆત છે ગમે છે, કે જે જે શરૂઆતમાં ટી વત્તા i, મહાન છે, કે જે 0 હોય છે. કે ટી ​​શરૂઆત અર્થ થાય છે, કારણ કે વત્તા 1, વત્તા 2, વત્તા 3, અને તેથી આગળ. ઓ સાથે અને તે જ સોદો. આ માટે તેથી વાકયરચનામાં ખાંડ. પરંતુ સમજણ શું ખરેખર ચાલુ છે હૂડ નીચે, હું એવી દલીલ કરે હોત પોતે અને ખરેખર ઉપયોગી છે. તે ત્યાં નથી હવે એનો અર્થ એ થાય છે, કારણ કે વધુ જાદુ પર જવા હૂડ નીચે. ઘણી વધારે હોઈ જવા નથી અમે તમારા માટે છાલ બેક કરી શકો છો કે જે સ્તરો. આ કેચ છે. અને આ પ્રોગ્રામિંગ છે. પ્રશ્ન ખરેખર સારી. બધા હક, તેથી આ કે બગડેલ હતો હું અગાઉ ઉલ્લેખ કરવામાં આવ્યો હતો કાર્યક્રમ. સ્વેપ અપૂર્ણ હતો. કામ લાગે શક્યા નહિં. ફક્ત દૂધ સાથે ગમે છે અને તે યાદ નારંગી રસ - હું શરૂ આજના પ્રદર્શન પીવાના. તેથી માત્ર નારંગી રસ અને સાથે દૂધ, અમે ઉપયોગ હોય હતી કામચલાઉ ચલ, tmp, એક પકડી કામચલાઉ કે જેથી અમે પછી કરી શકે છે બોલ્ડ અપડેટ પછી તેની કિંમત બદલવા અને. પરંતુ આ કાર્ય, અમે જણાવ્યું હતું કે,, અથવા આ આ કાર્ય હતું જેમાં કાર્યક્રમ લખેલા ખોટું અને અપૂર્ણ હતો, શા માટે? હા? પ્રેક્ષક: [અશ્રાવ્ય]. સ્પીકર: 1 ચોક્કસપણે, જ્યારે તમે સ્વેપ કૉલ - અથવા વધુ સામાન્ય રીતે, જ્યારે તમે સૌથી વધુ કોઈપણ વિધેય કોલ - કે કામ કરવા માટે દલીલો હોય તો આદિમ, તેથી વાત કરવા માટે, ints અને અક્ષરો અને ડબલ્સમાં અને ફ્લોટ્સ, વસ્તુઓ વિના તારાઓ, તમે એક નકલ માં પસાર થાય છે આ દલીલ. X 1 હતી અને વાય 2 હતુ તેથી, જો ચાલે છે 1 હોઈ અને બોલ્ડ 2 હોઈ ચાલે છે. પરંતુ તેઓ અલગ અલગ હિસ્સામાં હોઈ જઈ રહ્યાં છો ઓફ બિટ્સ, વિવિધ હિસ્સામાં ઓફ સ્ટોર કરવા માટે થાય છે કે જે મેમરી સમાન કિંમતો. તેથી આ કોડ સંપૂર્ણ સુપર છે A અને B અદલાબદલી મુ. તે અદલાબદલી કોઈ સારા છે - - છેલ્લા અઠવાડિયે માતાનો ઉદાહરણમાં એક્સ અને વાય. ફરીથી, તેઓ કરશો કારણ કે ખોટી અવકાશ છે. હવે, આપણે આ નિયત વિશે કેવી રીતે જવું છે? અમે કાર્ય કરી હતી થોડી uglier જુઓ. પરંતુ ફરીથી, ધ્યાનમાં શું આ માત્ર થાય છે. અને ખરેખર, સુસંગતતા માટે, તે મને કરવા દો તે સમાન છે જેથી એક વસ્તુ બદલી આપણે શું કર્યું. હું છેલ્લા અઠવાડિયે ઉલ્લેખ કર્યો છે કે, તે નથી તે જાય છે બાબત છે. હકીકતમાં, ખાસ કરીને જો તમે મૂકવામાં આવશે જો ચલ નામની આગળ તારો. પરંતુ હું તેને થોડા સરળ હશે લાગે આ માટે આગામી * વિચારણા તે અર્થ માહિતી પ્રકાર નિર્દેશક છે આ કિસ્સામાં એક ઈન્ છે. હું અહીં તેથી શું કરી રહ્યો છું? મને એક ઈન્ આપી નથી કહી રહ્યો છું અન્ય ઈન્ દ્વારા અનુસરવામાં, તેમને એ અને બી ફોન. મને એક ઈન્ ની સરનામા આપો. મને અન્ય ઈન્ ની સરનામા આપો. તે a અને b સંબોધે કૉલ કરો. અને પછી * સંકેત નીચે મદદથી નીચે, તે દરેક સરનામાંને પર જાઓ તરીકે ક્યાં તો વિચાર કરવા માટે જરૂરી અથવા તેની કિંમત સુયોજિત કરો. પરંતુ અહીં એક અપવાદ છે. શા માટે હું tmp આગળ * નથી? હું શા માટે, ઉદાહરણ માટે આવું નથી? હું માત્ર બધા જવા જોઈએ એવું લાગે છે બહાર અને સમગ્ર બાબત યોગ્ય છે. યાહ? પ્રેક્ષક: [અશ્રાવ્ય]. સ્પીકર 1: હું જાહેર કરી નથી શબ્દમાળા તરીકે tmp. તેથી આ પણ, આ કિસ્સામાં, જાહેર કરશે એક tmp એક ઈન્ ની સરનામા હોય છે. પરંતુ, હું માંગો તદ્દન શું નથી કારણો એક દંપતિ માટે. પ્રેક્ષક: તમે તેમને સ્વેપ કરવા નહિં માંગો. સ્પીકર 1: ચોક્કસ, હું સ્વેપ કરવા નહિં માંગો tmp સાથે કંઈ. tmp માત્ર છે સપ્તાહ એક સામગ્રી. હું માંગો છો બધા ચલ છે અમુક નંબર સ્ટોર કરવા માટે. હું પણ સરનામાં વિશે કાળજી નથી આ ક્ષણે. હું માત્ર 32 બિટ્સ જરૂર અથવા તેથી ઈન્ સંગ્રહવા માટે. અને હું તે 32 બીટ માં મૂકેલ ગમે તેથી વાત કરવા માટે, એક નથી, પરંતુ માત્ર વધારે ચોક્કસ કરી શકાય કરવા માટે, અંતે શું છે. એક સરનામું છે, તો * એક અર્થ થાય છે, કારણ કે ત્યાં જાઓ અને કિંમત 1 વિચાર. હમણાં પૂરતું, છેલ્લા અઠવાડિયે માતાનો ઉદાહરણમાં અથવા B ની કિસ્સામાં, 2 ની કિંમત મળે છે. તેથી શું ખરેખર ચાલુ છે? મને ચાલશે કે અહીં એક ચિત્ર ડ્રો દો માત્ર આજે ભાગ સિવાય પીંજવું. પરંતુ આ દેખાવાનું ચાલુ રહેશે અમુક સમય માટે શાંત. આ, હું દાવો, શું તમારા કમ્પ્યુટરની છે મેમરી તમે ચલાવો ત્યારે જેવો દેખાય છે કાર્યક્રમ, કોઈ પણ કાર્યક્રમ. તમે ખૂબ જ ટોચ પર એક કાર્યક્રમ ચલાવી રહ્યા હોય ત્યારે તમારા કમ્પ્યુટરની RAM ના - તેથી લાગે છે તમારી તરીકે આ લંબચોરસ, સાચી, કમ્પ્યુટરની રેમ અથવા મેમરી, બધા 101 તે અબજ બાઇટ્સ, બધા બે અબજ બાઇટ્સ, તે બધા બે ગીગાબાઇટ્સ, તમારી પાસે જથ્થા છે ગમે, માતાનો તેને એક લંબચોરસ તરીકે ડ્રો દો. તમે કાર્યક્રમ ચલાવી રહ્યા હોય ત્યારે અને હું એવો દાવો માઇક્રોસોફ્ટ વર્ડ અથવા Chrome જેવી જેમ કે કંઈપણ કે બિટ્સ માઈક્રોસોફ્ટ કે ગૂગલ લખ્યું હતું - તે કાર્યક્રમોની કિસ્સાઓમાં - તમારા કમ્પ્યુટરની મેમરીમાં લોડ થાય છે તેઓ વધુ ચલાવવામાં કરી શકાય છે ઝડપથી અને મેળવાય એ CPU માં, જે કોમ્પ્યુટર ના વિશેષજ્ઞ છે. અને સ્કૉટલન્ડના તેઓ ખૂબ જ ઓછા સંગ્રહિત કરી રહ્યાં છો તમારા કાર્યક્રમ ટોચ છે, તેથી વાત કરવા માટે. અન્ય શબ્દોમાં, તો આ એક ચંકને છે મેમરી, તમે ડબલ પર ક્લિક કરો ત્યારે માઈક્રોસોફ્ટ વર્ડ છે, બીટ્સ આવે હાર્ડ ડ્રાઈવ પર. તેઓ RAM માં લોડ મળે છે. અને અમે ખૂબ જ ટોચ પર તેમને ધક્કો પડશે કલ્પનાત્મક આ લંબચોરસ. ઠીક છે, તમારી મેમરી બાકીના છે અલગ વસ્તુઓ માટે વપરાય છે. ખૂબ જ ટોચ પર તમે પ્રારંભ જુઓ માહિતી અને ડેટા uninitialize. આ સાથે, સૌથી ભાગ માટે, તો છે સ્થિરાંકો અથવા વૈશ્વિક ચલો કે કિંમતો છે. તે બીજા સમય પર વધુ. પછી તમે જે ઢગલો છે, અમે પાછા આવો પડશે. પરંતુ તળિયે તે ભાગ છે ખાસ કરીને હમણાં પ્રસ્તુત. તે કહેવાતા સ્ટેક છે. તેથી માત્ર અહીં પર સૌથી વધુ કોઈપણ ડી હોલ માગો કેમ્પસ, તમે તે ટ્રેની છે કે માત્ર જે પર દરેક અન્ય ટોચ પર સ્ટેક તમે ખોરાક અને whatnot મૂકી શકો છો. કમ્પ્યુટર સિસ્ટમમાં સ્ટેક ખૂબ સમાન છે. અમે ઉપયોગ તરીકે, ટ્રે, જ્યારે સિવાય ડાઇનિંગ હોલ, અલબત્ત, અર્થ થાય છે વસ્તુઓ ટ્રેની ધરવા અથવા ફ્રેમ - અમે તેમને કૉલ કરશો તરીકે - કમ્પ્યુટર માં મેમરી પકડી કરવા માટે વપરાય છે ચલો અને કિંમતો. તેથી શું ખરેખર પર જાય છે હૂડ નીચે? ઠીક છે, મને ઉપર વિમાનની મુસાફરી દો અહીં સ્ક્રીન પર. અને ચાલો માત્ર પર ધ્યાન કેન્દ્રિત એક ક્ષણ માટે નીચે ભાગ છે. આ મારા તળિયે ભાગ છે કોમ્પ્યુટરની મેમરી તે બહાર વળે છે જ્યારે હું કાર્ય મુખ્ય કૉલ - છે, કે જે પ્રમાણિકપણે, શું થાય આપમેળે મારા માટે - હું અંતે મેમરી એક ચંકને વિચાર મારી RAM ની નીચે તેથી વાત કરવા માટે. મુખ્ય છે જ્યાં અને આ છે સ્થાનિક ચલો જાઓ. જ્યાં argc અને argv કદાચ તે છે જાઓ, અને કોઇપણ ચલો હું મુખ્ય અંદર જાહેર. તેઓ તળિયે અપ અંત મારા કમ્પ્યુટરને માતાનો RAM ના. હવે તે મુખ્ય કોલ્સ એક કાર્ય ધારવું સ્વેપ જેમ તે જેમ છેલ્લા સપ્તાહમાં હતી? વેલ, અમે મહત્ત્વની એક, એક નવી ટ્રે મૂકી મેમરી મારા ચંકને પર નવી ફ્રેમ,. અને હું આ તરીકે વર્ણન કરવા જઇ રહ્યો છું સ્વેપ કાર્ય સાથે સંકળાયેલા છે. હવે સ્વેપ અંદર શું છે? ઠીક છે, છેલ્લા અઠવાડિયે માતાનો કાર્યક્રમ પર આધારિત છે, અને અમે હમણાં જ એક ટૂંકસાર જોયું એક, સ્વેપ ચોકઠામાં ની અંદર, અથવા સ્વેપ ના ટ્રે, શું ચલો છે? વેલ, એ અને બી. તે, તેના સ્થાનિક દલીલો હતા કારણ કે વત્તા ત્રીજી tmp. તેથી ખરેખર, હું આ ડ્રો કરી શકે છે થોડી વધુ સ્વચ્છ. મને આગળ જાઓ અને લેબલ પૂર્વવત્ દો. અને તમે શું ખબર છે કે મને દાવો દો? એક કદાચ અહીં અંત ચાલે છે. બી અહીં અંત ચાલે છે. અને tmp અહીં અંત ચાલે છે. હવે, કદાચ ક્રમ થોડી અલગ છે. પરંતુ કલ્પનાત્મક આ વિચાર છે. અને માત્ર એકંદરે, આ શું છે અમે સ્વેપ ચોકઠામાં કૉલ, અથવા પડશે ડાઇનિંગ હોલ ટ્રે. મુખ્ય સાથે અને તે જ સોદો. પરંતુ હું માનું છું કે redraw નહીં. પરંતુ કે જ્યાં argc અને argv અને કોઈપણ એક્સ અને વાય જેવા તેના સ્થાનિક વેરિયેબલ્સ તેમજ હોઇ શકે છે. તેથી હવે ખરેખર શું થઈ રહ્યું છે તે ધ્યાનમાં તમે સ્વેપ કૉલ ત્યારે. જેમ તમે સ્વેપ કૉલ કરો ત્યારે, ચલાવ્યા કોડ આ, તમે માં માં પસાર કરી રહ્યાં છે બગડેલ આવૃત્તિ, A અને B તરીકે એક્સ અને વાય નકલો. હવે હું આ ડ્રો કરવા તેથી જો સ્ક્રીન પર - આ સારી વિચાર મળી - હું મારી જાતે કહી હતી વાર્તા જેથી આ બગડેલ આવૃત્તિ હતી ત્યારે અમે શાબ્દિક A અને B માં પસાર સ્વેપ કૉલ પૂર્ણાંકો તરીકે, શું ખરેખર શું થઈ રહ્યું છે? ઠીક છે, શું ખરેખર શું ચાલી રહ્યું છે આ છે. મને આગળ જાઓ અને માત્ર પૂર્વવત્ દો અહીં કેટલીક જગ્યા સાફ કરવા. તેથી આ મારા કમ્પ્યુટરની મેમરી છે. હું તેથી જો, ઉદાહરણ તરીકે - વાસ્તવમાં ચાલો તે આ રીતે કરવું - હું આ સ્ટોર, X દાવો છે કે, જો માત્ર છેલ્લા સપ્તાહમાં જેવા કિંમત 1. અને આ કિંમત સ્ટોર, વાય છે 2 માત્ર છેલ્લા સપ્તાહમાં ગમે છે. અને આ છે, હું સ્વેપ કૉલ, જ્યારે મુખ્ય છે ત્યાં એક અને મારી ઍક્સેસ આપવા બોલ્ડ અને tmp, હું એવો દાવો કરવા જઇ રહ્યો છું આ છે અને આ માટે 1 છે. આ બોલ્ડ છે. આ 2 છે. આ tmp કહેવામાં આવે છે. અને શરૂઆતમાં, તે કેટલાક કચરો કિંમત છે હું ખરેખર તે એક સંગ્રહ, ત્યાં સુધી જે 1. પછી હું આગળ જાઓ અને બદલી એક શું હોઈ? 'બી' ના મૂલ્ય. અને તેથી હવે હું અહીં બે હોય છે. અને પછી અમે બો tmp બોલ જણાવ્યું હતું કે,. ફરીથી, સેનીટી તપાસો, જેમ ત્રીજા અહીં કોડ લાઇન ઓફ માત્ર આ છે એક, બી tmp નોંધાયો નહીં. અને તેથી છેલ્લે, હું શું કરું? હું આગળ જાઓ અને બોલ્ડ હોવું બદલી ગમે tmp ની કિંમત 1 છે, કે જે છે. હું ફરીથી tmp સ્પર્શ નથી. પરંતુ હવે, સમસ્યા તરત swap તરીકે છે વળતર, તે સોંપવામાં નથી કારણ કે અમુક કિંમત પાછળ આ બોલ પર કોઈ વળતર છે નિવેદન તે નિશ્ચિતપણે. ખરેખર શું ચાલી રહ્યું છે? ઠીક છે, આવશ્યકપણે આ બધા મેમરી - બરાબર, દેખીતી રીતે આ ભૂંસવા માટેનું રબર ગમતો એક સમયે માત્ર એક આંગળી - માત્ર અદૃશ્ય થઈ જાય છે. હવે વાસ્તવિકતા તે નથી ગમે ત્યાં જવાનું. પરંતુ તમે તે વિચાર કરી શકો છો હવે પ્રશ્ન ગુણ છે. તે લાંબા સમય સુધી કારણ કે વાસ્તવમાં ઉપયોગ. અને કંઈ તે કિંમતો સાથે કરવામાં આવે છે. તેથી ની લીલા આવૃત્તિ કિસ્સામાં આ કોડ છે, તેના બદલે શું જાય છે સ્વેપ માં પસાર? તેથી સંબોધે છે. તેથી X ઓફ સરનામું અને વાય ની સરનામું. અમે આમ તો આ વાર્તા એક છેલ્લા ફરી કહેવું સમય છે, અને હું ખરેખર, ફરી સ્વેપ ડ્રો પરંતુ પોઇન્ટર સાથે, આ એક છે બોલ્ડ છે, અને આ છે tmp, શું છે વાસ્તવમાં આ લીલા માં સંગ્રહિત હું પસાર છું જ્યાં મારો કોડ આવૃત્તિ સરનામાંઓ માં? તે X માટે નિર્દેશક હોઈ ચાલે છે. તેથી હું એક તીર ડ્રો કરી શકે છે. પરંતુ આ જ મનસ્વી ઉપયોગ કરવા દેવા પહેલાં તરીકે ઉદાહરણ છે. ચાલો આ છે કે જે કહે છે Ox123 કંઈક. અને આ Ox127 હોઈ ચાલે છે કારણ કે તે છે, કારણ કે તે ચાર બાઇટ્સ દૂર છે એક Int, તેથી Ox127. અને ફરી, હું કેટલાક સ્વતંત્રતા લઈ રહ્યો છું નંબરો સાથે. તેઓ તેના કરતા ઘણી નાની કરશો વાસ્તવમાં અલગ ક્રમમાં હોઈ શકે અને. પરંતુ તે કેવી રીતે ચિત્ર છે હવે અલગ છે. પરંતુ હું આ લીલા કોડ ઉપયોગ કરો છો ત્યારે અને હું ઈન્ tmp * એક વિચાર નથી. , નીચેની કરવું લેવા * અર્થ એક માં તે સરનામું અને તે પર જાઓ જે 1. અને હું પછી tmp મૂકવામાં શું છે. વચ્ચે, કોડ આગળના વાક્ય અહીં, * એક બોલ્ડ નહીં, કે શું અર્થ છે? વેલ, * એક છે, તેથી અહીં જાઓ નહીં * બી, જે ત્યાં જવા થાય છે. અને ત્યાં માટે કિંમત મૂકવામાં અર્થ એ થાય કે. છેલ્લે, કોડ છેલ્લા વાક્ય ખાલી * બો tmp બોલ જણાવ્યું હતું કે,. તેથી બો કહે ત્યાં જાઓ અને સાથે તે ફરીથી લખી પણ, આ કિસ્સામાં, ચાલુ છે જે tmp ફરીથી, 1 છે. અને આ છે કેમ લીલા આવૃત્તિ અમારા કોડ કામ કરે છે, લાલ, જ્યારે આવૃત્તિ હતી ક્યારેય. કેવી રીતે કરવા માટે નીચે તે બધા માત્ર ઉકળે મેમરી વ્યવસ્થાપિત અને તે જ્યાં ચોક્કો છે વાસ્તવમાં તમારા મૂકવામાં કમ્પ્યુટરની RAM. અને હવે, કે વસ્તુઓ એક સ્ટેક માટે ઉપયોગમાં લેવામાં આવે છે. લેઆઉટ પર પ્રશ્નો? પોઇન્ટર પર? અથવા સ્વેપ પર? બધા હક, જેથી malloc, યાદ, આ કંઈક હતી. આ એક સુપર સરળ ઉદાહરણ હતું. અને આ એક હતું કે Binky તદ્દન યદ્યપિ, અમને પરિચય ઝડપથી વર્ગ ઓવરને અંતે. Dammit, ત્યાં અમે ફરી જાઓ. તેથી આ ઉદાહરણ હતું કે યાદ છે કે Binky યદ્યપિ, અમને પરિચય કંઈક ઝડપથી વર્ગ ઓવરને અંતે. અને અહીં અમે ખરેખર malloc ઉપયોગ બીજા સમય માટે. પ્રથમ વખત કારણ કે અમે તેનો ઉપયોગ પૂરતી RAM બનાવો, પૂરતી RAM ફાળવો શબ્દમાળા સંગ્રહવા માટે. આ સમય Binky તે સરળ રાખવામાં. તેથી તે માત્ર સંગ્રહવા માટે છે એક Int, દેખીતી રીતે. અને તે તદ્દન દંડ છે. તે માટે, પ્રમાણિકપણે, થોડું વિચિત્ર છે એક ઈન્ ફાળવવા માટે malloc વાપરો. પરંતુ નિક માતાનો ક્લેમેશન બિંદુ હતી ખરેખર માત્ર શું વાર્તા કહી થાય છે અથવા જ્યારે બનશે નહિં તમે મેમરી mistreat. તેથી આ કિસ્સામાં, આ પ્રોગ્રામ અમુક વસ્તુઓ હતી. અહીં પ્રથમ કેસ, તે જાહેર એક નિર્દેશક એક int પર X કહેવાય છે. તે પછી નિર્દેશક જાહેર એક ઈન્ કરવા માટે y કહેવાય છે. તે પછી, X શું સ્ટોર કરે છે? હવે બીજા કોઇએ. અનુસાર X સંગ્રહિત નહીં શું આ કાર્યક્રમની ત્રીજી લાઇન? પ્રેક્ષક: [અશ્રાવ્ય]. સ્પીકર 1: વેલ, બિન તદ્દન બાઇટ્સ, દીઠ કહે છે. હવે વધુ ચોક્કસ રહો. X શું સંગ્રહિત નહીં? એક સરનામું, હું તે સાંભળ્યું છે. તેથી malloc શું પરત કરે છે? malloc behaviorally ફાળવે મેમરીની ચંકને. પરંતુ તે કેવી રીતે તમે તેને ઍક્સેસ આપી નથી? તે શું આપે? પ્રથમ બાઇટ ની સરનામા મેમરીનો ચંકને છે. હવે, આ સુપર સરળ છે. તે માત્ર એક બાઇટ છે, જે અર્થ એ થાય કે અમે પાછા મળી રહ્યાં સંબોધવા છે સમગ્ર વસ્તુ ના સરનામું. તેથી પછી x માં સ્ટોર, સરનામું છે મેમરી કે ચંકને છે. વચ્ચે, શું હવે આગળ શું થશે? તેથી, વાસ્તવમાં માતાનો આગળ જવા દો અને આ બહાર વાસ્તવિક ઝડપી ડ્રો. અમે અહીં સ્ક્રીન પર જાઓ અને તેથી જો અમે આ બહાર રમવા ઈન્ * X અને ઈન્ * વાય મારા માટે શું ચાલે છે? હું તે માત્ર કરવા જઇ રહ્યું છે કે દાવો આ કંઈક છે અને તે X ફોન, અને આ અને તે વાય કૉલ કરો. વચ્ચે, કોડ ત્રીજા વાક્ય છે એક ઈન્ માપ ફાળવવા માટે જવાનું, જે બને છે - હું જણાવ્યું હતું કે, માફ તો - હું એક ઈન્ અર્થ એક પહેલા એક લાક્ષણિક કમ્પ્યુટર પર ચાર બાઇટ્સ. જો CS50 સાધન સાથે ઓછામાં મુ. તેથી આ ફાળવવા માટે ચાલે છે તે જે જાણે છે? ક્યાંક બહાર અહીં. અને આ અમુક અંતે સંગ્રહાયેલ છે સરનામા બળદની, જે જાણે છે? પરંતુ શું પરત કરવા જઈ રહ્યું છે તે સરનામા છે. પરંતુ અમે pictorially આ ડ્રો પડશે કે જેમ માત્ર એક તીર. હવે આગામી વાક્ય * X 42 રન નોંધાયો નહીં. * X જનસાધારણ ના નિયમો શું અર્થ છે? જસ્ટ ત્યાં જાઓ. તે સરનામા પર જાઓ. અથવા બીજા શબ્દોમાં, તે અનુસરો તીર અને ત્યાં 42 મૂકો. પરંતુ પછી કંઇક ખરાબ થયું Binky માટે, બરાબર ને? તે લીટી અહીં પાંચ યાદ, * વાય નહીં 13, ખરેખર એક કમનસીબ નંબર, અમારા માટે શું કર્યું? વેલ, * વાય અર્થ ત્યાં જાઓ. વેલ, આ આપવામાં આવી નથી કિંમત હજુ સુધી, બરાબર ને? આ કોડ વાય હોવા નથી ખાવા માટે આરંભ. અમે X આરંભ કરવામાં આવી હતી એક સરનામું છે. પરંતુ વાય ઉપર જાહેર કરવામાં આવી હતી. પરંતુ પછી અર્ધવિરામ આ બોલ પર કોઈ કિંમત ખરેખર તે મૂકવામાં આવી હતી. તેથી તે આ કૉલ કરવા માટે યોગ્ય છે એક કચરો મૂલ્ય. કોણ ત્યાં શું જાણે? તેનો ઉપયોગ કરવામાં આવે છે કે જે બીટ્સ અવશેષો છે માં કોડ કેટલાક અગાઉના વાક્ય દ્વારા મારા કાર્યક્રમ. હું ત્યાં જવા કહે છે, તેથી જો આ જેવી છે હું આ તીર છે કે જ્યાં કોઈ વિચાર છે અંત જવાનું. જ્યારે તમે સામાન્ય રીતે કે સેગ્મેન્ટેશન ક્ષતિમાં વિચાર. જો તમે આકસ્મિક ખોટો સંદર્ભ નહિં, તેથી માટે વાત, કે નથી કે એક સરનામું પર જાઓ ખરેખર એક કાયદેસર સરનામું, ખરાબ વસ્તુઓ થાય છે. અને તે ખરેખર શું થયું છે Binky લાગે છે. તેથી યાદ છે કે નિક હતું કે વાર્તા અહીં કહેવાની જ વિચાર હતો કે શું તરીકે હું ભ્રમણા સાથે દોરેલા કર્યું ત્યાં બોર્ડ પર ખડી. એક્સ અને વાય જાહેર કરવામાં આવે છે. પછી અમે કદ ફાળવવામાં એક ઈન્ અને X તેને સંગ્રહિત. પછી અમે કર્યું આગામી લીટી * એક્સ. આ નિક માતાનો જાદુ જાદુઈ લાકડી હતી dereferencing છે. કે મેમરીમાં 42 મૂકી X દ્વારા ધ્યાન દોર્યું. પરંતુ આ છે, જ્યાં વસ્તુઓ ભયાનક કે ત્રાસજનક ખોટું થયું. બરાબર ને? અમે ખોટો સંદર્ભ વાય પ્રયાસ કર્યો હતો. પરંતુ વાય અધિકાર, અમુક બોગસ કિંમત હતી? નીચે ડાબી બાજુની કે તીર ખૂણામાં, નથી વાસ્તવમાં કંઈપણ તરફ સંકેત આપતા. તે શું હું કરી પ્રકારની છે બોર્ડ પર અહીં હતી. તેથી ખરાબ વસ્તુઓ થાય છે, સેગ્મેન્ટેશન આ કિસ્સામાં ભૂલ, અથવા Binky દોષ. પરંતુ અમે તો પછી x કરવાથી કે ઠીક તો વાય નહીં કેવી રીતે આ વાર્તા ફેરફાર કરે છે? ઠીક છે, હું X કરો તો કે વાય, નહીં કહીને તરીકે અસરકારક રીતે જ આ છે ગમે, બળદની-કંઈક , અહીં જ ચાલે છે બળદની-કંઈક. અથવા pictorially અમે એક તીર ડ્રો કરીશું. તેથી અહીં Binky સાથે બોર્ડ પર, આગળના વાક્ય સાથે કોડ છે, * વાય ત્યાં જવા થાય છે. ત્યાં ક્યાં છે? તે અહીં છે. અને અમે 13 હોઈ કે અપડેટ ત્યારે તે માત્ર જવું અને સમાવેશ થાય છે હવે અહીં 13 લેખન. તેથી કદાચ નથી સંપૂર્ણપણે પ્રથમ નજરમાં સરળ. પરંતુ રીકેપ માટે અને તે જ કલકલ વાપરવા માટે કે Binky, તેથી અહીં ઉપયોગ કરીને કરવામાં આવી હતી પ્રથમ બે, પાંચ પોઇન્ટર ફાળવો એક્સ અને વાય, પરંતુ pointees. અને pointees એક નથી સામાન્ય શબ્દ વપરાય છે. પરંતુ નિર્દેશક સંપૂર્ણપણે છે. પરંતુ તે નિર્દેશ કરવામાં આવી રહ્યું શું છે Binky માતાનો નામકરણ ખાતે. અલબત્ત આ આગામી રેખા, એક ઈન્ pointee ફાળવે. તેથી મેમરી એક ચંકને - હું બોલ દોર્યું તરીકે જમણી બાજુની ત્યાં બાજુ છે - અને સમૂહ X બરાબર તે નિર્દેશ કરવા માટે. આ dereferences X માં 42 સંગ્રહવા માટે તે તરફ સંકેત છે કે મેમરી. અને તે પછી આ કોર્સ છે, ખરાબ બાબત હતી. વાય પોઇન્ટ ન હતી કારણ કે હજી કંઈપણ મુ. આ તે સુધારે છે. તેથી આ હજુ પણ બગડેલ પ્રોગ્રામ છે. અમે મારફતે બ્લોએંગ કરી રહ્યાં છો, માત્ર કારણ કે લાઇન અને કહેતા કોડ રેખા, તેમજ, OH તે ત્યાં ભાંગી દો. કે ખરાબ વસ્તુ છે. અવરોધો કાર્યક્રમ માત્ર બનશે છે કે વાક્ય પર એકસાથે અડધેથી બંધ. તમે દૂર કરવા માટે જ હોય ​​છે પરંતુ ક્રેશ છેલ્લા બે સાથે વાક્ય અને બદલો તમે સોંપી ત્યાં લાઇન - નિર્દેશક સોંપણી વાપરીને - વાય બિંદુ ટી તરીકે X માટે નિર્દેશ કરવા માટે. અને પછી તમે ખોટો સંદર્ભ એક ખૂબ જ સુરક્ષિત રીતે વાય. તેથી જ્યાં અમને છોડી નથી? વેલ, હૂડ નીચે કે બહાર વળે જો CS50 પુસ્તકાલય, પોઇન્ટર છે સમગ્ર વપરાય છે. અને અમે ખરેખર છાલ શરૂ કરશો લાંબા પહેલાં પાછા કે સ્તર. પરંતુ તે પણ છે કે જે એક સમીકરણ વળે તમે કેટલાક સાથે પરિચિત હોઈ શકે છે ખાસ કરીને તે વધુ આરામદાયક, એક ખૂબ જ લોકપ્રિય છે કે ખરેખર છે વેબસાઇટ, અથવા સ્ટેક ઓવરફ્લો, આ દિવસ. પરંતુ આ ખરેખર ખૂબ જ છે ટેકનિકલ અર્થ. હવે અમે સ્ટેક શું છે તે જાણો. તે ટ્રેની એક સ્ટેક જેવી છે એક ડાઇનિંગ હોલ ઓફ આધારિત છે. અથવા અંદર તમારા કમ્પ્યુટર ની મેમરી તે ફ્રેમ તેના કે વિધેયો દ્વારા ઉપયોગ થાય છે. ઠીક છે, તે બહાર વળે કે કારણે ખૂબ સરળ અમલીકરણ મેમરી અને કહેવાતા પર ફ્રેમ ગંજી, તમે ખરેખર નિયંત્રણ લઈ શકે છે એકદમ સરળતાથી કોમ્પ્યુટર સિસ્ટમ છે. જો તમે સિસ્ટમ માં હેક કરી શકે છે, જો લોકો અમારા કોડ લખેલા ન હોય જેમ ખાસ કરીને સારી. અમને જેવા લોકોને હિસ્સામાં વાપરો તો મેમરી અથવા ઉપયોગ એરેને ઓફ - પણ વધુ સામાન્ય રીતે - પરંતુ ક્યારેક તપાસો ભૂલી અમારા ઍરેની સીમાઓ તમે કદાચ તરીકે જાતે ક્યારેક હોય છે, અને iterated ખૂબ દૂર ઓવરને એક એરે છેલ્લા રીતે. શ્રેષ્ઠ કિસ્સામાં, તમારા કાર્યક્રમ માત્ર ભાંગી શકે છે. સેગ્મેન્ટેશન ક્ષતિમાં, પ્રકારની મૂંઝવતી છે. મહાન નથી, પરંતુ તે જરૂરી નથી એક ભારે ખરાબ વસ્તુ. પરંતુ તમારા કાર્યક્રમ પ્રત્યક્ષ પર ખરેખર હોય વપરાશકર્તાઓ 'કમ્પ્યુટર, તે ચાલી રહ્યું હોય એક વેબસાઇટ પર જે વાસ્તવિક રેન્ડમ લોકો ઇન્ટરનેટ પર ભાડા, મથાળે સ્પર્શી છે લોકોને તમારી કોડ પર ખરાબ વસ્તુઓ પ્રેરિત છે કારણ કે સામાન્ય રીતે નથી એક સારી બાબત તે લેવા માટે તક અર્થ એ થાય કમ્પ્યુટર નિયંત્રણ. અને આ જોવા માટે જવાનું છે વિસ્મૃત થોડી. પરંતુ હું તમારી સાથે બીક કરશો વિચાર્યું અહીં આ છેલ્લા ઉદાહરણ છે. અહીં કોડ ઉદાહરણ છે. અને એક સારા વિકીપિડીયા છે દ્વારા લઈ જશે તે લેખ વધુ વિગતવાર આ. હું નીચે કૉલિંગ પર મુખ્ય હોય છે 1 argv માં પસાર foo. અને તે માત્ર જેથી તમે કરી શકો છો કે કાર્યક્રમ ચલાવો, અને પાસ કોઈપણ ઇનપુટ. અને પછી foo ઉપર જાહેર કરવામાં આવે છે શબ્દમાળા સ્વીકારી, અથવા વધુ ચોક્કસપણે, એક ચાર *. તે પછી અક્ષરો ઝાકઝમાળ જાહેર. જો તે બફર, વધુ સામાન્ય રીતે, કૉલ કરો કદ 12 છે. તેથી 12 અક્ષરો અંદર ફિટ થઈ શકે છે કેચ કહેવાય છે કે જે એરે છે. અને પછી તે, આ નવા કાર્ય વાપરે છે નવી પરંતુ હાર્ડ નથી જે , મેમરી નકલ સમજે છે. તે છે, કે જે પટ્ટીમાંથી મેમરી નકલ જો ચલ ભૂતકાળમાં એ, ગમે તે વપરાશકર્તા કેચ માં argv 1 માં ટાઇપ. કેટલા બાઇટ્સ? બાર ની શબ્દમાળા નહીં. તેથી અન્ય શબ્દોમાં, વપરાશકર્તા પ્રકારો તો H-E-l-l-O દાખલ શબ્દમાળા લંબાઈ હેલ્લો પાંચ છે. તેથી તે બાઇટ્સ પાંચ વિચાર ચાલે છે કેચ કહેવાય અરે, નકલ જે કદ 12 છે. ખૂબ લાંબા સમય સુધી પરંતુ શું વપરાશકર્તા પ્રકારો 13 અક્ષરો અથવા 14 જે શબ્દ અક્ષરો અથવા 100 અક્ષરો અથવા વધુ છે? જ્યાં તેઓ જવા માટે જતા હોય છે? ઠીક છે, કે જે ફ્રેમ, કે ટ્રે ડાઇનિંગ હોલ સ્ટેક માં, તેઓ ત્યાં જવા માટે જઈ રહ્યાં છો. અને તે માત્ર પર ફરીથી લખી શરૂ કરવા જઈ રહ્યું છે પહેલેથી જ છે કે અન્ય સામગ્રી કે સ્ટેક પર, વહેતું સ્ટેક, તેથી વાત કરવા માટે. તેથી pictorially, તે આ રીતે લાગે છે. આ માત્ર એક રંગીન આવૃત્તિ છે ચિત્ર અમે ચિત્રકામ કર્યું છે. તળિયે, મુખ્ય છે, કહે છે ચાલો. અને ટોચ પર, તમે હવે શું જોઈ રહ્યાં છો ફ્રેમ, રંગ માટે, હવે કોડેડ કરવામાં આવે છે foo કહેવાય કાર્ય. પરંતુ વિશે અહીં રસપ્રદ શું છે foo અહીં તેની ફ્રેમ છે. તેથી તે માત્ર હું જેમ દોરેલા છે પરંતુ પ્રકાશ વાદળી હતી. અને હવે આ છે કેચ કૌંસ 0 જાય છે. અને આ કેચ કૌંસ છે 11 અંત ચાલે છે. અન્ય શબ્દોમાં, તે થાય છે એક ચોરસ તરીકે રજૂ કરવામાં આવે છે. પરંતુ તમે માત્ર બાઇટ્સ plopping રાખવા નીચે - અથવા અક્ષરો છે - તેઓ અંત જઈ રહ્યાં છો અપ સ્થાન પર 0 બધી રીતે અપ 11 કારણ કે તે અનુક્રમિત 0 છે. પરંતુ 13 મી અક્ષર છે અંત ચાલે? 14 જ્યાં છે? 50 મા અક્ષર ક્યાં છે અંત ચાલે? તે નીચે ચાલુ રાખવા માટે થઈ રહ્યું છે. અમે દોરેલા કર્યું હોવા છતાં પણ કારણ કે સ્ટેક સાથે ચિત્ર, અપ વધતી જો સરનામાં, તે બહાર વળે છે, જાઓ નાના સરનામાં, નાના મોટા સરનામાં પર પોઇન્ટર. તેથી તે માત્ર અપ જવું અને ઉપર રાખે છે. તેથી જો આ વપરાશકર્તા પ્રકારો હેલ્લો, કે જે મહાન છે. કોઈ ભૂલ, કોઈ સમસ્યા, દરેકને સુરક્ષિત. પરંતુ અમે કરીશું શું વપરાશકર્તા પ્રકારો જો વિરોધી કોડ ફોન, રજૂ જાતિગત તરીકે, હુમલો, હુમલો, હુમલો, હુમલો, શું થઇ શકે? વેલ, જો ઇનપુટ તમામ વપરાશકર્તા કે જેણે માં ટાઇપ માત્ર કેટલાક અનુકૂળ નથી અક્ષરો અથવા અપમાનજનક સ્ટ્રિંગ. તે ખરેખર અક્ષરો ક્રમ છે કે તમે તેને કમ્પાઈલ થયેલ હોય, તો તે ખરેખર કોડ છે. કદાચ તે કોડ કે કાઢી તમામ તમારી હાર્ડ ડ્રાઈવ પર ફાઈલો અથવા સ્પામ મોકલે જેમ કે કંઈક. કી અહીં શું છે કે નોટિસ છે ખરાબ વ્યક્તિ માટે પૂરતી નસીબદાર મળી જો મેમરી લાલ ચંકને પર ફરીથી લખી - હું પણ મારા ચિત્ર પર ડ્રો ન હતી જે અહીં આ વિકીપિડીયા ચિત્ર છે - તેના કહેવાતા વળતર સરનામું. ત્યારે ખોરાક વળતર, સ્વેપ વળતર ત્યારે, કેવી રીતે કમ્પ્યૂટર માંથી જવા માટે ખબર નથી અપ અહીં અહીં નીચે છે? અથવા ઉપરના ટેક સેગમેન્ટમાં, કેવી રીતે તે સ્વેપ જવા ખબર નથી કોડ - 0 અને 1 ના કે સ્વેપ કંપોઝ - પાછા મુખ્ય માટે? એક કહેવાતા વળતર સરનામા છે તે જ સ્ટેક ફ્રેમ પર સંગ્રહાય એ જ કાફે ટ્રે. ખરાબ વ્યક્તિ માટે પૂરતી હોંશિયાર છે તેથી જો હુમલો કોડ મૂકી, હુમલો કોડ છે, હુમલો કોડ છે, અને પૂરતી નસીબદાર વિચાર - માટે - ઘણી વખત ટ્રાયલ અને ભૂલ દ્વારા , કે લાલ વળતર સરનામા પર ફરીથી લખી સરનામું અને નોટિસ ખૂબ જ ટોચ. 0835C080 નોટિસ. તે માટે પાછળની અપ ટોચ લખેલા છે કારણો આપણે કદાચ ફોટાઓની ફરી શકશો. આ સૂચવે છે કે નંબર છે. ખરાબ વ્યક્તિ પૂરતી નસીબદાર અથવા નહીં તેથી જો લાલ પર ફરીથી લખી કરવા માટે પૂરતી સ્માર્ટ છે ના સરનામા સાથે મેમરી ઉતારી લેવાં તે અથવા તેણી અચાનક છે કે કોડ કે જે તમારા કમ્પ્યુટર માં ઇન્જેક્ટ, જેની ધારી કોડ પરત કરવામાં ચાલે છે જલદી foo તરીકે ચલાવવા કરવામાં આવે છે? ખરાબ વ્યક્તિ માતાનો કોડ. આ હુમલો કોડ તેથી, એએએ, ફરી, કદાચ સ્પામ મોકલવા, બધી ફાઇલોને કાઢી શકે છે તમારી હાર્ડ ડ્રાઈવ પર. પરંતુ શું ખરેખર સ્ટેક ઓવરફ્લો છે છે, અથવા એક બફર ઘેરી લીધા, અથવા એક ઓવરફ્લો હુમલો બફર. અને તે ઉત્સાહી, ઉત્સાહી સામાન્ય માં લખેલા કાર્યક્રમો સાથે આ દિવસ C, C + +, અને કેટલાક અન્ય ભાષાઓ છે. કે ડરામણી નોંધ પર, અમે કરીશું એક રમૂજ સાથે અંત. [હાસ્ય] બુધવાર પર તમે જુઓ. આગામી CS50 અંતે - તેથી હું આજે ડિસ્ક દીવા બધા બહાર છું પણ રાહ જુઓ, ચરબી રહિત દૂધ, અડધા ફોન પુસ્તક, નારંગી રસ હું આજે drank છે. યુએસબી કેબલ, એક સાધન. [સંગીત વગાડવાનો]