[સંગીત વગાડવાનો] ડેવિડ જે MALAN: બધા અધિકાર. [હાસ્ય] પાછા આપનું સ્વાગત છે. આ CS50 છે. અને આ અઠવાડિયે પાંચ ઓવરને. અને હવે ત્યાં સુધી, અમે ખૂબ ખૂબ કર્યું મંજૂર માટે લઈ ગયેલ છે કે ત્યાં તમે કર્યું કે આ કમ્પાઈલર, રણકાર, અસ્તિત્વમાં છે આ માર્ગ દ્વારા આવાહન કરતો કરવામાં આવી અન્ય સાધન છે કે જે અચાનક કરો કહેવાય જાદુઇ તમારો સ્રોત કોડ ફેરવે ઑબ્જેક્ટ કોડ છે, આ zeros અને રાશિઓ માં જે તમારા કમ્પ્યુટર્સ CPU, કેન્દ્રિય પ્રક્રિયા એકમ, વાસ્તવમાં સમજે છે. કોઈ નંબર છે બહાર છે, પરંતુ તે કરે છે માં હૂડ નીચે ચાલુ ઇનપુટ અને આઉટપુટ વચ્ચે. અને હું માનું છું કે આપણે માંસ પ્રસ્તાવ કરવા માંગો છો થોડી વધારે વિગત માં કે બહાર આ ચાર પગલાંઓ, કહેવાય કંઈક છે પૂર્વ પ્રક્રિયા, કંઈક અમે જોવા મળે છે, જે સંકલન, કહેવાય કંઈક ભેગા કહેવાય છે, અને કંઈક લિંક કહેવાય છે. તેથી અપ હવે ત્યાં સુધી, અમારા કેટલાક કાર્યક્રમો, અમે તીવ્ર સમાવેશ થાય હતી. તાજેતરમાં અમે કેટલીક તીવ્ર હતી કર્યું સ્થિરાંકો માટે વ્યાખ્યાયિત કરે છે. તેથી તે બહાર વળે તે વસ્તુઓ છે કે જે હેશ પ્રતીક અથવા સાથે પ્રિફિક્સ કરેલા છે પાઉન્ડ પ્રતીક પૂર્વ પ્રોસેસર છે ડાઈરેક્ટીવો. માત્ર તે કહેતા ફેન્સી માર્ગ ખરેખર છે કે કોડ કે જે એક લીટી આ પહેલા કંઈક બીજું રૂપાંતરીત કોમ્પ્યુટર પણ કન્વર્ટ કરવા પ્રયાસ તમારા zeros અને રાશિઓ માં કાર્યક્રમ. હમણાં પૂરતું, તીક્ષ્ણ પ્રમાણભૂત સમાવેશ થાય છે I / O. H, ખૂબ ખૂબ માત્ર જાઓ અર્થ એ થાય આગળ, ફાઈલો સમાવિષ્ટો પડાવી લેવું stdio.h અને જમણી ત્યાં તેમને પેસ્ટ કરો. તેથી કોઈ zeros અને રાશિઓ હજુ સુધી તે સમયે. તે ખરેખર માત્ર એક અવેજી છે. અને તે કહેવાતા દરમિયાન કરવામાં આવ્યું છે પૂર્વ પ્રક્રિયા સ્ટેજ, ત્યારે તમે ખરેખર ખાસ રણકાર સ્કોર અથવા મોટા ભાગના કિસ્સાઓમાં બનાવો. તેથી એ બધા આ શું થઈ રહ્યું કરવામાં આવ્યું છે પ્રથમ આપમેળે આમ અત્યાર સુધી. પછી સંકલન પગલું આવે છે. પરંતુ અમે oversimplified કરવામાં આવ્યાં છે સંકલન. એક કાર્યક્રમ સંકલન ખરેખર અર્થ જો, સી કંઈક તેને લેવા સ્ત્રોત કોડ અમે નીચે, લેખન કર્યું છે કંઈક વિધાનસભા કહેવાય છે. એસેમ્બલી ભાષા નીચા સ્તરે છે ભાષા કે, thankfully, અમે નહીં ઘણી પ્રસંગ છે આ સત્ર લખો. પરંતુ તે સૌથી નીચો સ્તર પર છે તમે શાબ્દિક લખવાનું શરૂ કે અર્થમાં ઉમેરો અને બાદબાકી અને ગુણાકાર અને લોડ કરી મેમરી અને મેમરી સંગ્રહવા માટે, ખૂબ જ મૂળભૂત સૂચનો કે કોમ્પ્યુટર, હૂડ નીચે, ખરેખર સમજે છે. છેલ્લે, ભેગા ભાષા લે છે અમે કરી છે કે zeros અને રાશિઓ માટે આમ અત્યાર સુધી વર્ણન. અને સાચી છેલ્લે, કહેવાતા નથી તબક્કા લિંક છે, કે જે અમે કરીશું જોડાયેલું છે, જે માત્ર એક ક્ષણ માં જુઓ તમારા zeros અને zeros સાથે રાશિઓ અને પહેલાં રાશિઓ અન્ય લોકો તમે બનાવેલ છે. તેથી આ સુપર સરળ કાર્યક્રમ ગણે છે. તે અઠવાડિયું 1 હતો. તે માત્ર, વિશ્વ હેલો, જણાવ્યું હતું કે, સ્ક્રીન પર. અમે રણકાર દ્વારા આ ચાલી હતી. અથવા આપણે તે મારફતે મેક ચાલી હતી જે રણકાર ચાલી હતી. અને તે સમયે outputted જ્યાં કેટલાક zeros અને રાશિઓ. ત્યાં બહાર છે, પરંતુ તે કરે છે મધ્યવર્તી પગલું. હું અહીં જાઓ તો - અરે, ન હજુ સુધી તેને જોવા માંગો છો. હું મારા ઉપકરણ માટે અહીં પર જાઓ તો અને હું hello.c, અહીં ખોલો તે જ પ્રોગ્રામ છે. અને શું હું મારા ટર્મિનલમાં કરવા જઇ રહ્યો છું અહીં વિન્ડો હું જઈ રહ્યો છે , રણકાર સ્કોર બદલે બનાવો જે તમામ ચાર automates અમારા માટે તે જાય છે. અને હું રણકાર-S કરવા જઇ રહ્યો છું અને દાખલ પછી hello.c અને પછી. અને હું ખીલેલું પ્રોમ્પ્ટ વિચાર ફરીથી, જે સારા હોય છે. અને હવે સહેજ મોટા વિંડોમાં, હું અહીં gedit અપ ખોલવા માટે જઇ રહ્યો છું. અને હું કે જે, ફાઇલ ખોલવા માટે જઇ રહ્યો છું બહાર વળે, hello.s આ કહેવામાં આવે છે કે એસેમ્બલી ભાષા છે હું અગાઉ કરવામાં આવે છે. અને આ વિધાનસભા કહેવાય છે તે છે ભાષા, એકદમ નીચા સ્તરે સૂચનો કે તમારી ઇન્ટેલ CPU અથવા ગમે તે અંદર છે સમજે છે. અને mov ચાલ માટે છે. કૉલ માટે છે , ખૂબ જ ઓછી સ્તર વિધેય ફોન. પેટા બાદબાકી માટે છે. તમે અંદર ચોક્કસ CPU તેથી, જ્યારે તમારા કમ્પ્યુટરની, તે શું કરે છે પર અલગ, વિરુદ્ધ અન્ય સીપીયુ બજાર છે, જે સૂચનાઓ તે સમજે છે અને ઘણી વખત કેવી રીતે કાર્યક્ષમ તે તે કેટલીક ચલાવ્યા છે કેવી રીતે ઝડપી છે, તે સૂચનો. હવે આ પર વધુ માટે, તમે લઈ શકે છે કોલેજ ખાતે આગામી વિકેટનો ક્રમ ઃ CS61. પરંતુ અહીં આપણે થોડા દાખલા તરીકે, તમારી પાસે પરિચિત જુઓ શકે છે આઇડેન્ટીફાયર. hello.c કાર્યક્રમ નામ છે. . લખાણ - રસ ખૂબ ત્યાં ત્યાં નથી માત્ર હવે, યાદ છે કે લખાણ જ્યાં સેગમેન્ટમાં, સોમવાર તરીકે છે, મેમરી તમારા કાર્યક્રમ ખરેખર અપ અંત થાય છે. કે જેથી ઓછામાં ઓછા અસ્પષ્ટ છે ત્યાં પરિચિત. અહીં, અલબત્ત, એક ઉલ્લેખ છે અમારા મુખ્ય કાર્ય છે. સ્ક્રોલ, આ વસ્તુઓ નો સંદર્ભ લો કહેવાતા રજિસ્ટર ખૂબ નાના ટુકડા તમારી વાસ્તવિક CPU ના મેમરી આધારિત છે. અને હું પણ સરકાવો જો વધુમાં, હું અમુક પ્રકારના જુઓ ASCII ઓફ પરોક્ષ ઉલ્લેખ થાય છે. અને, ખરેખર, તે સ્ટ્રિંગ છે, હેલ્લો, અલ્પવિરામ, વર્લ્ડ. તેથી લાંબા વાર્તા ટૂંકી, આ રહ્યું છે , આપોઆપ, તમારા માટે શું થઈ રહ્યું હૂડ નીચે આ સમયે બધા. અને શું થઈ રહ્યું રહ્યું છે ખરેખર એક વાર છે તમે રણકાર ચલાવો, અથવા માર્ગ દ્વારા કર્યું , તમારે પ્રથમ રહ્યાં છો, બનાવો સ્ત્રોત કોડ માંથી એસેમ્બલી ભાષા કહેવાતી. પછી રણકાર આ વિધાનસભા રૂપાંતર થયેલ છે નીચે zeros અને રાશિઓ માટે ભાષા. અને આ અમે શરૂ સ્લાઇડ છે પર અઠવાડિયું 0 અમારા ચર્ચા - અને પછી પર અઠવાડિયું 1. અને પછી છેવટે, તે zeros અને રાશિઓ જો zeros અને રાશિઓ સાથે જોડવામાં આવે છે તે પુસ્તકાલયો પરથી આપણે લઈ આવી છે ધોરણ I / O અથવા જેમ મંજૂર માટે શબ્દમાળા લાઇબ્રેરી અથવા પણ જો CS50 પુસ્તકાલય. તેથી વધુ આ ચિત્ર કરું દૃષ્ટિની, અમે hello.c છે. અને તે, અલબત્ત, આ printf વાપરે છે હેલો વર્લ્ડ, કહે કાર્ય કરે છે. આ સંકલન પગલું રન લે છે તે ફાઈલ આપણે પણ hello.s જોયું સામાન્ય રીતે કાઢી નાખવામાં આવ્યું છે કે તેમ છતાં આપોઆપ તમારા માટે. પરંતુ તે વિધાનસભા કોડ છે મધ્યમ પગલું છે. અને પછી અમે વિધાનસભા ભેગા ત્યારે જ્યારે તમે ભાષા, જેથી વાત કરવા માટે, કે તે zeros અને રાશિઓ વિચાર. તેથી અમે આજે અસરકારક માં ઝૂમ કરેલું કર્યું શું મંજૂર માટે અમે લઈ કરવામાં આવ્યા છે, સ્ત્રોત કોડ જવા અર્થ એ થાય કોડ વાંધો નહીં. પરંતુ છેલ્લે, હવે તે જ ચિત્ર - તે બોલ ધક્કો લેટ્સ ડાબી બાજુ. અને નોંધો કે ટોચ ત્યાં હું stdio.h ઉલ્લેખ કર્યો છે. કે અમે સમાવેશ કર્યા છે કે ફાઈલ છે લગભગ તમામ માં અમે લખેલા કર્યું કાર્યક્રમો. અને તે કે જેના સમાવિષ્ટો ફાઈલની નકલ પેસ્ટ કરો, અસરકારક રીતે તમારો કોડ માથે. પરંતુ તે છે કે, એક કમ્પ્યુટર પર બહાર વળે સિસ્ટમ ક્યાંક, અનુમાન એક છે કોઈને વર્ષ લખ્યું હતું કે stdio.c ફાઇલ પહેલાં કે તમામ અમલીકરણ જાહેર કરવામાં આવ્યા હતા કે કાર્યો stdio.h છે. હવે વાસ્તવિકતા માં તેના પર કદાચ નથી અથવા પણ તમારા મેક કે તમારા પીસી CS50 સાધન કાચું સી કોડ છે. કોઇકે પહેલેથી તે સંકલન અને સમાવેશ થાય છે . ઓ પદાર્થ કોડ માટે ફાઈલ અથવા. એક વહેંચાયેલ લાઈબ્રેરીનો ઉલ્લેખ કરે છે, જે ફાઇલ, કે પૂર્વ સ્થાપિત કરવામાં આવી છે જો તમે પહેલાથી કમ્પાઇલ કરેલ છે. પરંતુ ખરેખર અસ્તિત્વ ધરાવે છે કે જે ધારવું સમાંતર અમારા કમ્પ્યુટર પર stdio.c રણકાર સાથે. તમારો કોડ કમ્પાઈલ કરવામાં આવી રહ્યું છે અને એસેમ્બલ. stdio.c 'ઓ કોડ કમ્પાઈલ અને આવી રહી છે એસેમ્બલ છે, તેથી આ ખૂબ જ છેલ્લા કે અહીં નીચે, પગલું, અમે અચાનક છે કડી, તેથી વાત કરવા માટે, તમારા zeros અને રાશિઓ એક માં તેના અથવા તેણીના zeros અને રાશિઓ સાથે આખરે છે કે સાદા કાર્યક્રમની હેલો માત્ર કહેવાય છે. કે જેથી તે જાદુ બધા ચોક્કો આમ અત્યાર સુધી રહ્યું કરવામાં આવી. અને આ લેવા માટે ચાલુ રહેશે માટે પ્રક્રિયાઓ મંજૂર છે, પરંતુ ખ્યાલ રસદાર વિગતો ઘણો છે ત્યાં નીચે ચાલે. અને આ છે તે છે તમારા ઇન્ટેલ ઇનસાઇડ સાથે કમ્પ્યુટર ખાસ કરીને અલગ. તેથી નોંધ કરો કે, તમને ગમશે તો આ શુક્રવાર બપોરના અમને જોડાવા, જાઓ કરવું સામાન્ય સ્થળ cs50.net/rsvp માટે, 1:15 PM પર પોસ્ટેડ આ શુક્રવાર. અને હવે થોડા જાહેરાત. તેથી અમે કેટલાક સારા સમાચાર છે. અને અમે કેટલાક ખરાબ સમાચાર છે. અહીં કેટલાક સારા સમાચાર સાથે શરૂ કરો. [કિચૂડ કિચૂડ અવાજ કરતું] બધા અધિકાર. ઠીક છે, તેથી તે, ટેકનીકલી રજા છે તેથી તે ખૂબ અમારી પાસેથી ભેટ નથી. અલબત્ત, પરંતુ પછી ખરાબ સમાચાર. [કિચૂડ કિચૂડ અવાજ કરતું] હું સમય ઘણો ખર્ચ્યા આ એનિમેશન છે. [હાસ્ય] એક સમીક્ષા સત્ર હશે આ સોમવાર આવતા. તે 5:30 PM પર પોસ્ટેડ ખાતે જશે. અમે આ બધા વિગતો તમને યાદ કરશે કોર્સ માતાનો પર ઇમેઇલ દ્વારા ટ્રેડીંગ સમય માત્ર એક દંપતિ માં વેબસાઇટ. તે ફિલ્માંકન અને ઉપલબ્ધ કરવામાં આવશે ત્યારબાદ ટૂંક સમયમાં. તમે કરી શકતા નથી તેથી જો કે સોમવાર રાત્રે સ્લોટ, ચિંતા ન કરશો. વિભાગો આ આગામી સપ્તાહ પણ ચાલશે ક્વિઝ માટે સમીક્ષા પર ધ્યાન કેન્દ્રિત. તમારા વિભાગ છે જે સોમવાર, પર છે ખરેખર યુનિવર્સિટીમાં રજા, અમે ચાલશે હજુ વિભાગ માં પૂરી. તમે ખાલી કે ન કરી શકે તો વિભાગ તમને જઈ રહ્યાં છો કારણ કે દૂર, કે દંડ છે. એક રવિવાર કે મંગળવાર વિભાગ કે હાજર જેસન માતાનો વિભાગમાં ટ્યુન માં, છે ઓનલાઇન ઉપલબ્ધ. તેથી, વધુ ખરાબ સમાચાર. તેથી અભ્યાસક્રમ અનુસાર, અમે આગામી શુક્રવાર વ્યાખ્યાન છે. પરંતુ સારા સમાચાર - સ્પષ્ટ રીતે, હું આ પર પણ ઘણો સમય પસાર કર્યો. [હાસ્ય] અમે શુક્રવાર ભાષણો આગામી રદ પડશે. કે જેથી આપણા માટે એક ભેટ હશે, જેથી તમે ખરેખર સરસ રાહત માં કરી શકો છો આ સપ્તાહ અને તેથી બે અઠવાડિયા વચ્ચે. આ બોલ પર કોઈ વ્યાખ્યાન આગામી સપ્તાહ, માત્ર એક નાના તેથી તમે પ્રયત્ન કરીશું કે જેના માટે થોડી ક્વિઝ, વધુને વધુ ઉત્સાહિત થયા. તેથી હવે અમારા ધ્યાન ચાલુ દો ખરેખર વધુ દ્રશ્ય કે કંઈક અને વધુ ઉત્તેજક અને સ્ટેજ સુયોજિત કરવા માટે ક્ષિતિજ પર જશે તે માટે અઠવાડિયા સમય માત્ર એક દંપતિ છે. પ્રથમ ક્વિઝ પછી, અમે ચાલુ કરીશું અમારા સમસ્યા સેટમાં અન્ય ધ્યાન કેન્દ્રિત ડોમેન ચોક્કસ સમસ્યા, કે વધુ સામાન્ય વિદેશી અથવા સુરક્ષા. આ સમસ્યા સાથે હકીકતમાં, પરંપરા સમૂહ મારા માટે એક છે સમગ્ર જવામાં સાથી અથવા સીએએસ શિક્ષણ કેટલાક ફોટોગ્રાફ્સ લેવા કેમ્પસ ઓળખી પરંતુ બિન સ્પષ્ટ લોકો, પછી સ્થળો, અથવા વસ્તુઓ, દર વર્ષે હું અચાનક આકસ્મિક કાઢી નાખવા મેનેજ કરો અથવા ડિજિટલ મીડિયા કાર્ડ ભ્રષ્ટ અમારી કેમેરા ની અંદર છે. પરંતુ કોઈ મોટા સોદો. હું આગળ જાઓ અને પ્લગ કરી શકો છો મારા કમ્પ્યુટરને માં છે. હું તેથી, તે એક ફોરેન્સિક ઇમેજ બનાવી શકે છે જો zeros કૉપિ કરીને, વાત અને કે મેમરી કાર્ડ રાશિઓ બંધ છે કે નહીં, તેના SD કાર્ડ અથવા કોમ્પેક્ટ ફ્લેશ કાર્ડ અથવા તમે પરિચિત છો ગમે. અને પછી અમે તે બહાર હાથ કરી શકો છો. અને તેથી અન્ય વચ્ચે આગળ પડકાર, તમે માટે વસ્તુઓ લખવા માટે હશે એક આખી ટોળું ધક્કામાંથી કે સી કોડ મારા માટે JPEGs અને જાહેર થશે તે લોકો, સ્થળો, અથવા વસ્તુઓ. અને અમે પણ આ સમસ્યા છે, વાત કરીશું સેટ અને દિવસ વિશે, આવવા વધુ સામાન્ય ગ્રાફિક્સ. અમે, એક કોર્સ તેમને ઉપયોગ કર્યા બહાર ભંગ માટે. મંજૂર, પરંતુ તમે પ્રકારના ભર્યું છે આ ઉચ્ચ સ્તર માન્યતા ત્યાં હાજર છે લંબચોરસ અને ovals છે. પરંતુ હૂડ નીચે પિક્સેલ્સ છે. અને તમે શરૂ કરવા માટે આવી હોય તે વિશે વિચારવાનો. અથવા તમે પૃષ્ઠ સેટ 4 વિચારવું પડશે માટે તમારા ઇંટો વચ્ચે તફાવત વિશે કેવી રીતે ઝડપથી તમે બોલ સમગ્ર ખસેડવાની છે રહ્યાં છો માટે સ્ક્રીન બહાર તૂટી જાય છે. તેથી આ ખ્યાલ છે કે તમારી સ્ક્રીન પર બિંદુઓ પહેલેથી જ નાટક થવું. હવે તમે જુઓ શું છે, જોકે, શું છે તમે કમ્પ્યુટર સ્ક્રીન પર મેળવો. તમે ક્યારેય કેટલાક સારા અથવા નિહાળવામાં કર્યું છે ખરાબ ટીવી, અવરોધો તેઓ ખૂબ ખૂબ છે technophobes જેવા પ્રેક્ષકોને સારવાર જે નથી ખરેખર કરવું ખૂબ કમ્પ્યુટિંગ વિશે ખબર. અને તેથી તે પોલીસ માટે ખૂબ જ સરળ છે કહે ડિટેક્ટીવ, તમે આ કરી શકો છો મારા માટે કે સાફ? અથવા જમણે, વધારવા? એન્હેન્સ માં Buzz શબ્દ જેવી છે સૌથી વધુ કોઈપણ ગુના સંબંધિત શો. જો તમે ખૂબ લેવા તો વાસ્તવિકતા છે કરવાથી શંકા છે blurry ચિત્ર કંઇક ખરાબ, તમે કરી શકતા નથી માત્ર તે વધારે છે. તમે અનંત ઝૂમ કરી શકતા નથી. તમે કોઈને ના તેજનો ચમકારો જોવા નથી કરી શકો છો કે પ્રતિબદ્ધ જે આંખ જો હોવા છતાં ખાસ અપરાધ, ટીવી પર આ ફેલાવો. અને જેથી માતાનો ઉત્સાહિત દો સાથે આગામી સમસ્યા પર એક ઝલક સાથે સુયોજિત કેટલાક શો છે, જે સાથે તમે પરિચિત હોઈ શકે છે. [વિડિઓ પ્લેબેક] -ઠીક. હવે, તમે એક સારા દેખાવ વિચાર કરીએ. તે પકડો. કે પાછા ચલાવો. એક મિનિટ પ્રતીક્ષા-. અધિકાર જાઓ. -હતી. કે સ્થિર કરો. સ્ક્રીન પૂર્ણ. -ઠીક. કે સ્થિર કરો. યા, કે જે પર આવશે અપ વધુ કડક? કે વ્યક્તિ પર વેક્ટર પાછળ વ્હીલ દ્વારા. આ સ્થળ પર અધિકાર અહીં-મોટું. -સાથે યોગ્ય સાધનો, આ તસવીર ફૂલે અને sharpened કરી શકાય છે. -શું કે છે? ઇટ ઉન્નતીકરણ કાર્યક્રમ છે. -શકાતી તમે કોઈપણ અપ કે સાફ? હું ખબર નથી. માતાનો તેને વધારવા દો. વિભાગ એ 6 એન્હેન્સ. -I વિગતવાર વધારી અને - હું વધારવા માટે ત્યાં પૂરતી છે એવું લાગે છે. મારા સ્ક્રીન પર તે રિલીઝ. તેના આંખ માં પ્રતિબિંબ-એન્હેન્સ. માતાનો આ દ્વારા રન દો વિડિઓ વધારવી. -એડગર, તમે આ વધારવા કરી શકો છો? પર અટકી. -I've આ પ્રતિબિંબ પર કામ કરવામાં આવ્યું. -કોઇએ માતાનો પ્રતિબિંબ. -રિફ્લેક્શન. પ્રતિબિંબ-નથી માણસ માતાનો ચહેરો. -પ્રતિબિંબ. -ત્યાં એક પ્રતિબિંબ છે. આ મિરર પર ઇન ઝૂમ વધારો. તમને એક પ્રતિબિંબ જોઈ શકો છો. -શકો છો અહીં ઇમેજ વધારવા? -શકો છો અહીં તેને વધારવા? -શકાતી તમે તેને વધારવા? -શકાતી તમે તેને વધારવા? -શકાતી અમે આ વધારવા? -શકાતી તમે તેને વધારવા? એક બીજા પર પકડ, હું વધારવા પડશે. દરવાજા પર ઇન ઝૂમ વધારો. -X10. -મોટું. [હાસ્ય] સાઇન-ખસેડો બંધ,-પ્રતીક્ષા. -રોકો. તે વિરામ. આસપાસ 75 ડિગ્રી-ફેરવો ઊભી કરો. [હાસ્ય] ભાગ માટે બેક રોકો, અને દરવાજા વિશે ફરી. એક છબી enhancer-ગોટ કે બીટમેપ કરી શકો છો? -કદાચ અમે પ્રદીપ સેન ઉપયોગ કરી શકો છો પદ્ધતિ વિન્ડો માં જોવા માટે. -આ સોફ્ટવેર કલાના રાજ્ય છે. ધ ચિહ્ન કિંમત બંધ છે. -સાથે યોગ્ય મિશ્રણ ગાણિતીક નિયમો છે. -કુલ પર પ્રકાશ ગાણિતીક નિયમો લેવામાં આવ્યું છે આગલા સ્તર અને હું તેમને ઉપયોગ કરી શકો છો આ ફોટોગ્રાફ વધારે છે. પર લોક અને Z-અક્ષ મોટું. -એન્હેન્સ. -એન્હેન્સ. -એન્હેન્સ. -સ્થિર અને વધારે છે. [END વિડિઓ પ્લેબેક] ડેવિડ જે MALAN: તેથી સમસ્યા સમૂહ 5 ત્યાં આગળ આવેલું છે. તેથી અમે તરત જ સારી સમજ મળશે જ્યારે અને શા માટે તમે આ કરી શકો છો કે અને અમારા જે રીતે વિસ્તૃત કરી શકતાં નથી. પરંતુ પ્રથમ, ચાલો અમારા ધ્યાન પાછા દો અમે કરીશું મકાન બ્લોકો કેટલાક કે વાર્તા કહી સમક્ષ રજુ કરવાનો પ્રયત્ન કરવાની જરૂર છે. તેથી અમે આ ચિત્ર પર દોર્યું કે યાદ સોમવારે અને થોડી છેલ્લા અઠવાડિયે. અને આ વસ્તુઓ લેઆઉટ વર્ણવે છે તમારા કમ્પ્યુટરની મેમરી ત્યારે અમુક કાર્યક્રમ ચાલી. ઉપર ટેક સેગમેન્ટમાં, બોલાવવાનો, સંદર્ભ લે છે વાસ્તવિક zeros અને રાશિઓ માટે જે તમારા કાર્યક્રમ કંપોઝ. ત્યાં, કે નીચે, કેટલાક આરંભ અથવા uninitialized માહિતી છે, કે જે સામાન્ય રીતે અથવા સ્થિરાંકો જેવી વસ્તુઓ ઉલ્લેખ કરે છે શબ્દમાળાઓ કે છે કે વૈશ્વિક ચલો અગાઉથી જાહેર કરવામાં આવ્યું. ત્યાં ઢગલો છે, પરંતુ અમે આવો પડશે પાછા બીટ છે કે નહીં. અને પછી સ્ટેક નથી. મોટા ભાગનું માં ટ્રેની એક સ્ટેક જેવી મેમરી બોલ જ્યાં કાફેટેરિયા, આ છે સ્તરવાળી અને જ્યારે સ્તરવાળી તમે એક કાર્યક્રમ શું છે? માટે સ્ટેક ઉપયોગ શું છે? યાહ? કાર્ય કૉલ કરો. તમે એક કાર્ય કૉલ કોઈપણ સમયે, તે છે તેના માટે મેમરી sliver આપવામાં સ્થાનિક ચલો અથવા તેના પરિમાણો. અને pictorially, અમે જુઓ કે જે દરેક સાથે જ્યારે ક્રમિક કાર્ય કહેવાય કોલ્સ બી કોલ્સ સી કોલ્સ ડી, તેઓ સ્ટેક પર સ્તરવાળી મળે છે. અને તે કાપી નાંખ્યું દરેક અંદર મેમરી અનિવાર્યપણે એક અનન્ય સ્કોપ છે કે કાર્ય માટે છે, કે જે કોર્સ છે, તમે હાથ માંગો, તો સમસ્યાજનક છે એક કાર્ય બીજા એક ભાગ માટે તમે તેને કરવા માંગો છો કે જે માહિતી પરિવર્તનશીલ પણ બનાવાય અથવા બદલવા માટે. તેથી સક્રિય કરવા માટે અમારા ઉકેલ શું હતું એક સ્ટેક દ્વારા રજૂ કાર્ય અંદર મેમરી બદલવા માટે ફ્રેમની અન્ય સ્ટેક ફ્રેમ? કેવી રીતે એક બીજા માટે તે બે ચર્ચા કરે છે? તેથી પોઇન્ટર અથવા સરનામાં માર્ગ દ્વારા, જ્યાં જે, ફરી, માત્ર વર્ણન ચોક્કસ ઓફ મેમરી, દ્વારા માર્ગ ડંખ નંબર, ચોક્કસ કિંમત મળી શકે છે. તેથી અમે ચાલુ રાખ્યું છેલ્લા સમય યાદ એક સમયે વાર્તા અને જોવામાં એકદમ બગડેલ કાર્યક્રમ. અને આ કાર્યક્રમ થોડા માટે બગડેલ છે કારણો છે, પરંતુ સૌથી worrisome એક છે તે શું તપાસો નિષ્ફળ જાય છે કારણ કે? અરે વાહ, તે ઇનપુટ તપાસો નિષ્ફળ જાય છે. માફ કરશો? તે 12 અક્ષરો કરતાં વધુ છે, તો. તેથી ખૂબ જ smartly, memcopy કૉલ કરતી વખતે, જે નામ સૂચવે છે, માત્ર તેના બીજા દલીલ માંથી નકલો મેમરી તેની પ્રથમ દલીલ માં. ત્રીજા દલીલ ખૂબ smartly છે, તમે નથી તેની ખાતરી કરવા માટે ચેક પણ, આ કિસ્સામાં, લંબાઈ કરતાં વધુ નકલ બાર છે, અક્ષરો નંબર, અંતિમ મુકામ માં છે, કે જે આ છે અરે સી પરંતુ સમસ્યા એ છે કે શું સી પોતે પૂરતી મોટી નથી તો કે નિયંત્રિત કરવા માટે? તમે નંબર નકલ કરવા જઈ રહ્યાં છો તમે આપવામાં આવી છે તે બાઇટ્સ. પરંતુ તમે ખરેખર વધુ શું હોય છે તમે માટે જગ્યા હોય કરતાં બાઇટ્સ? વેલ, આ કાર્યક્રમ ખૂબ જ foolishly માત્ર આંખ મીંચીને તે ગમે લેવા આગળ આપવામાં હેલ્લો બેકસ્લેશ 0 છે સ્ટ્રિંગ ટૂંકા છે મહાન જો પૂરતી છે, પાંચ અક્ષરો છે. પરંતુ વાસ્તવમાં તે 12 અક્ષરો છે અથવા તો 1,200 અક્ષરો, અમે છેલ્લા સમય જોયું તમે માત્ર સંપૂર્ણપણે કરવા જઈ રહ્યાં છો કે જે મેમરી પર ફરીથી લખી કે તમે ને અનુલક્ષતું નથી. અને ખરાબમાં ખરાબ કિસ્સામાં, તમે ફરીથી લખી જો કે અમે કહેવાય છે કે ત્યાં લાલ ભાગ સરનામા પાછા - આ છે માત્ર જ્યાં કમ્પ્યુટર આપોઆપ, તમે માટે, પાછળ દૂર દ્રશ્યો, બનાવ્યો એક 32-bit કિંમત છે કે જે તે જોઈએ તે સરનામા માટે તેને યાદ અપાવે છે પાછા જ્યારે foo, આ અન્ય કાર્ય, અમલ કરવામાં આવે છે. તે પ્રકારના એક બ્રેડ નાનો ટુકડો બટકું છે જે તે આપે છે. તમે સંભવિત છે કે, જો પર ફરીથી લખી તમે ખરાબ વ્યક્તિ હો, તો કરી શકો છો શકે સંભવિત લેવા કોઈના કમ્પ્યુટર. અને તમે સૌથી વધુ ચોક્કસપણે પડશે મોટા ભાગના કિસ્સાઓમાં તે ભંગાણ. હવે આ સમસ્યા માત્ર ઉત્તેજિત કરવામાં આવી હતી અમે મેમરી વિશે વાત શરૂ વધુ સામાન્ય મેનેજમેન્ટ. અને malloc, મેમરી ફાળવણી માટે છે, એક અમે ફાળવવા માટે ઉપયોગ કરી શકો છો કે જે કાર્ય અમે અગાઉથી ખબર નથી ત્યારે મેમરી અમે કેટલીક જરૂર પડી શકે છે કે જે. તેથી, ઉદાહરણ તરીકે, હું પાછા જાઓ તો અહીં સાધન છે. અને હું છેલ્લા સમય hello2.c માંથી ખોલો જોવામાં જે અહીં આ કાર્યક્રમ, યાદ આ જેમ થોડી કંઈક, માત્ર ત્રણ રેખાઓ - તમારું નામ, તો પછી શબ્દમાળા નામ, રાજ્ય ડાબી પર, getstring બરાબર. અને પછી અમે તેને છાપે વપરાશકર્તાના નામ. તેથી આ એક સુપર સરળ કાર્યક્રમ હતો. સ્પષ્ટ છે, મને આગળ જવા દો અને હેલો-2 બનાવે છે. હું કોઈ સ્લેશ હેલ્લો -2 કરવા જઇ રહ્યો છું. તમારું નામ સ્થિતિ - ડેવિડ. દાખલ કરો. ડેવિડ હેલો. તે ઠીક કામ કરવા લાગે છે. પરંતુ શું ખરેખર ચાલુ છે અહીં હૂડ નીચે? પ્રથમ ચાલો કેટલાક સ્તરો પાછા છાલ. શબ્દમાળા અમે કર્યું માત્ર એક પર્યાયવાચી શબ્દ છે તે માટે સમજાયું? ચાર સ્ટાર. તેથી માતાનો જો તે થોડી વધુ arcane બનાવવા દો પરંતુ વધુ તકનિકી સાચું કે આ એનો અર્થ એ કે એક ચાર સ્ટાર છે, નામ, હા, એક પરિબળ છે. પરંતુ શું નામ સ્ટોર્સ સરનામું છે થોડી વિચિત્ર લાગે છે કે જે ચાર, હું શબ્દમાળા પાછા ફરવામાં રહ્યો છે. હું પાછો બહુવિધ મેળવવામાં છું અક્ષરો એક ચાર નથી. પરંતુ અલબત્ત, તમે માત્ર પ્રથમ જરૂર યાદ ચાર માતાનો સરનામા જ્યાં કારણ કે શા માટે સમગ્ર શબ્દમાળા છે? તમે કેવી રીતે બહાર આકૃતિ નથી જ્યાં ઓવરને શબ્દમાળા શરૂઆત જાણીને છે? આ બેકસ્લેશ શૂન્ય. તેથી તે બે કડીઓ સાથે તમે બહાર આકૃતિ શરૂઆત અને અંત પહેલાં કોઇપણ શબ્દમાળા તેઓ કરશો જેથી લાંબા તરીકે છે, યોગ્ય રીતે નલ સાથે રચના ટર્મીનેટર, કે જે બેકસ્લેશ શૂન્ય. પરંતુ આ getstring ફોન છે. અને તે getstring બહાર વળે આ બધા સમય પ્રકારની કરવામાં આવી છે અમને છેતરપિંડીની. તે ખાતરી કરવા માટે, આ શ્રમ કરી રહ્યું છે વપરાશકર્તા માંથી શબ્દમાળા મેળવવામાં. પરંતુ તે મેમરી જ્યાં ચોક્કો આવતા છે? અમે અહીં ચિત્ર પર પાછા જાઓ અને જો માત્ર એક ના વ્યાખ્યા અરજી ક્ષણ પહેલા, કે સ્ટેક છે કાર્યો કહેવામાં આવે છે ત્યારે મેમરી, જાય કે તર્ક દ્વારા, તમે getstring કૉલ ત્યારે, અને પછી હું લખો D-A-V એ હું-d, કંપની છે D-A-V-આઇ ડી બેકસ્લેશ શૂન્ય પર આધારિત છે, સ્ટોર વાર્તા અમે અત્યાર સુધી અમને જે કહ્યું છે? તે હોઈ લાગશે સ્ટેક, બરાબર ને? તમે શબ્દમાળા વિચાર કૉલ કરો ત્યારે તમે એક વિચાર સ્ટેક પર મેમરી થોડી સ્લાઇસ. તેથી તે D-A-V-આઇ ડી કારણ રહે બેકસ્લેશ શૂન્ય સંગ્રહાયેલ છે ત્યાં સ્ટેક માં. પરંતુ વળતર getstring, એક મિનિટ રાહ જુઓ કે શબ્દમાળા છે, તેથી વાત કરવા માટે, જેનો અર્થ થાય છે તે કાફે માંથી ટ્રે છે સ્ટેક બોલ લેવામાં આવે છે. અને અમે તે જલદી તરીકે છેલ્લા સમય જણાવ્યું હતું કે, કાર્ય વળતર, અને તમે લઇ સ્ટેક બંધ ટ્રે, તેથી વાત કરવા માટે,, શું તમે અવશેષો વિશે ધારણ કરી શકે છે કે મેમરી? હું પ્રકારની પ્રશ્ન ગુણ તેમને redrew તેઓ અસરકારક રીતે બની છે, કારણ કે અજ્ઞાત કિંમતો. જ્યારે કેટલાક તેઓ ફરીથી ઉપયોગ કરી શકાય આગામી કાર્ય તરીકે ઓળખાય છે. અન્ય શબ્દોમાં, આપણે થાય છે સ્ટોર કરવા માટે - હું એક ઝડપી ચિત્ર ડ્રો પડશે અહીં સ્ટેક. અમે નીચે ચિત્રકામ કરવાની થાય છે મારા મેમરી સેગમેન્ટ છે, અને આપણે કહી શકશો આ મેમરી સ્થળ છે કે મુખ્ય અને કદાચ ARG કેચ અને દ્વારા કબજો ARG વિરુદ્ધ અને પ્રોગ્રામમાં અન્ય કંઈપણ getstring કહેવામાં આવે છે ત્યારે, અનુમાન getstring નહીં અહીં મેમરી એક ચંકને. અને પછી D-A-V-આઇ ડી અચાનક આ કાર્ય પૂર્ણ થાય છે. અને હું વધુ સરળતા માટે જઇ રહ્યો છું. પરંતુ માતાનો ધારે દો તેના D-A-V-આઇ ડી કે બેકસ્લેશ શૂન્ય. તેથી આ ઘણા બાઇટ્સ ઉપયોગ થાય છે getstring માટે ફ્રેમ. પરંતુ જલદી getstring વળતર તરીકે, અમે છેલ્લા સમય જણાવ્યું હતું કે, પર આ મેમરી અહીં બધા બને - woops! - બધા અસરકારક રીતે ભૂંસી બને છે. અને અમે પ્રશ્ન તરીકે હવે આ વિચાર કરી શકો છો ગુણ જાણે છે, કારણ કે શું છે કે જે મેમરી બનવા જઈ રહ્યું છે. ખરેખર, હું ઘણી વાર કાર્યો કૉલ getstring કરતાં અન્ય. અને તરત હું કેટલાક અન્ય કૉલ તરીકે getstring કરતાં કાર્ય, કદાચ ન આપણે જોયું તો આ ચોક્કસ કાર્યક્રમ પરંતુ કેટલાક અન્ય ચોક્કસ કેટલાક અન્ય ખાતે કાર્ય આપવામાં આવી અંત શકે છે સ્ટેક આ આગામી હાજર. તેથી તે getstring સ્ટોર્સ કરી શકાતી નથી સ્ટેક પર D-A-V-આઇ ડી હું કારણ તરત જ તેને ઍક્સેસ ગુમાવી બેસે છે. પરંતુ અમે તેઓ getstring ખબર માત્ર શું આપે? તે પરત ન મને છ અક્ષરો. તે સાચી શું હતી પરત થયેલ છે અમે છેલ્લા સમય તારણ? પ્રથમ આ સરનામું. તેથી અચાનક, તમે getstring કહેવાય, તે માટે મેમરી એક ચંકને ફાળવણી છે શબ્દમાળા કે જે વપરાશકર્તાઓને પ્રકાર અને તે પછી પરત સરનામું. અને તે તમે જ્યારે ઇચ્છો છો કે બહાર વળે આ મેમરીને ફાળવવા માટે કામ કરે છે માર્ગ અને કહેવાય જે વ્યક્તિ માટે વળતર કે કાર્ય ની સરનામા મેમરી કે ચંકને, તમે એકદમ જો ખાતે સ્ટેક માં મૂકી શકતા નથી તળિયે, કારણ કે વિધેયાત્મક રીતે તે માત્ર છે ખૂબ જ તમારામાં ન બની જવા ઝડપથી, જેથી તમે કદાચ ધારી શકો છો જ્યાં અમે કદાચ ટૉસ માટે જઈ રહ્યાં છો તેના બદલે, કહેવાતા ઢગલો. તેથી તમારી મેમરી માતાનો તળિયે વચ્ચે લેઆઉટ અને તમારી મેમરી ની ટોચ લેઆઉટ સેગમેન્ટોને સમગ્ર ટોળું છે. એક સ્ટેક છે, અને અધિકાર તે ઉપર ઢગલો છે. અને ઢગલો માત્ર એક અલગ ચંકને છે કાર્યો માટે ઉપયોગ નથી કે મેમરી તેઓ કહેવામાં આવે ત્યારે. તે, જ્યારે લાંબા ગાળાના મેમરી માટે વપરાય છે તમે એક કાર્ય કેટલાક પડાવી લેવું કરવા માંગો છો મેમરી અને તે પર અટકી સમક્ષ રજુ કરવાનો પ્રયત્ન તેની પર નિયંત્રણ ગુમાવ્યા વગર. હવે તમે કદાચ તરત જ કરી શકે આ નથી કે જુઓ એક સંપૂર્ણ ડિઝાઇન જરૂરી. તમારા પ્રોગ્રામ પર મેમરી ફાળવવામાં તરીકે સ્ટેક કરો, અથવા તમે કૉલ તરીકે વધુ અને વધુ કાર્યો, અથવા તમે ફાળવી તરીકે તરીકે બંધ malloc સાથે ઢગલો પર મેમરી getstring કરી, શું સ્પષ્ટ થયેલ છે અનિવાર્ય સમસ્યા હોઈ લાગે છે? અધિકાર. હકીકત જેવી છે કે આ તીર દરેક અન્ય તરફ સંકેત છે સારી આગાહી નથી. અને ખરેખર, અમે ખૂબ જ ઝડપથી તૂટી શકે છે માર્ગો કોઇ પણ નંબર એક કાર્યક્રમ. હકીકતમાં, હું અમે હોઈ શકે છે લાગે છે આ આકસ્મિક એકવાર પૂર્ણ થઈ. અથવા જો નહિં, તો તે શું કરીએ ઇરાદાપૂર્વક હવે. મને આગળ વધો અને ઝડપથી સુપર લખવા દો એક કાર્યક્રમ dontdothis.c કહેવાય છે. અને હવે હું અહીં જાઓ અને પડશે તીવ્ર stdio.h સમાવેશ થાય છે નથી. કાર્ય foo લે જાહેર ચાલો આ બોલ પર કોઈ દલીલો છે રદબાતલ દ્વારા તેમજ સૂચિત. અને foo શું ચાલે છે તે જ વસ્તુ છે કદાચ નથી, જે કોલ foo, હોંશિયાર વિચાર છે, પરંતુ તેથી તે છે. ઇએનટી મુખ્ય રદબાતલ. હવે મુખ્ય ચાલે છે તે જ વસ્તુ કરવા માટે તેમજ foo કૉલ છે. અને માત્ર કિક્સ માટે, હું જવા માટે જઇ રહ્યો છું આગળ અહીં અને માંથી હેલો "printf કહે છે foo. " ઠીક. હું કોઇ પણ ભૂલો કરી ન હતી તેથી જો, Dontdothis પર કોઈ સ્લેશ બનાવો. અને ચાલો એક મોટી વિંડોમાં તે શું - કોઈ સ્લેશ, dontdothis. પર આવો. ઓહો. દેખીતી રીતે, તમે આ કરી શકો છો. તે ખરેખર. ઠીક. રાહ જુઓ. દ્વારા ઊભા. અમે હતી - અમે ખાતરી સાથે ઉપયોગ કર્યો હતો. [SIGHS] મને ખબર છે, પરંતુ હું અમે લાગે છે ફક્ત કે જે કાઢી નાખી. ઉહ, હા. તે ખરેખર. આ રોબ ઉકેલો. શું? તે ખૂબ જ સરળ છે. હા, અમે ઓપ્ટિમાઇઝેશન બંધ છે. બરાબર, બાય ઊભા. હવે હું સારી લાગે છે. ઠીક. બધા અધિકાર. તેથી માતાનો આ recompile દો - તમે dontdothis બનાવો. તમે આ નામ બદલવા હોઈ શકે છે માત્ર એક ક્ષણ dothis.c. ત્યાં અમે જાઓ. આપનો આભાર. ઠીક. તેથી હું પ્રિન્ટ થયો હતો તે હકીકત કંઈક બહાર માત્ર વાસ્તવમાં હતી પ્રક્રિયા ધીમી છે કે જેના દ્વારા અમે કે બિંદુ સુધી પહોંચી ગયા હતા. ઠીક. Phew! તેથી શું ખરેખર ચાલુ છે? માત્ર એક કોરે તરીકે ત્યાં કારણ છે, ઇનપુટ દ્રષ્ટિએ કંઇ કરવાનું અને આઉટપુટ ધીમી હોય છે કારણ કે તમે આ માટે અક્ષરો લખવા માટે છે સ્ક્રીન, તે સરકાવવા માટે છે. તેથી લાંબા વાર્તા ટૂંકી, હું ખરેખર હતી તેથી ઉત્સુક બન્યું, અમે હશે તેમજ આ અંતિમ પરિણામ જોઈ છે. હું પ્રિન્ટ અપ્સ ઓફ રાઈડ મળી, હવે તે અમે અધિકાર દૂર તે જુઓ. તેથી શા માટે આ શું થઈ રહ્યું છે. ઠીક છે, અલબત્ત આ સરળ સમજૂતી, કે foo કદાચ ન જોઈએ છે પોતે ફોન કરી શકે છે. હવે સામાન્ય અર્થમાં, આ પુનરાવર્તન છે. અને અમે એક દંપતિ અઠવાડિયા વિચાર્યું પહેલાં પૂનરાવર્તિત સારો છે. પુનરાવર્તનના આ જાદુઈ માર્ગ છે succinctly સુપર જાતને વ્યક્ત. અને તે માત્ર કામ કરે છે. પરંતુ બધી કી લક્ષણ છે અમે વાત કરી કરેલા પૂનરાવર્તિત કાર્યક્રમો વિશે અને જોવામાં આમ અત્યાર સુધી, જે તેઓ શું હતી? કેટલાક હાર્ડ કોડેડ હતી કે જે આધાર કેસ, કેટલીક પરિસ્થિતિ માં જણાવ્યું હતું કે, કેસ સ્પષ્ટ છે કે જે foo, કૉલ નથી અહીં ન હોય. તેથી શું ખરેખર શું થઈ રહ્યું છે આ ચિત્ર દ્રષ્ટિએ? ઠીક છે, જ્યારે મુખ્ય foo, તે કહે છે મેમરી એક સ્લાઇસ નોંધાયો નહીં. Foo foo કહે છે ત્યારે તે નહીં મેમરી એક સ્લાઇસ. Foo foo કહે છે ત્યારે તે એક સ્લાઇસ નોંધાયો નહીં. તે એક સ્લાઇસ નોંધાયો નહીં. તે એક સ્લાઇસ નોંધાયો નહીં. Foo પરત ક્યારેય થયેલ છે કારણ કે. અમે તે એક ભૂંસી નાખી ક્યારેય રહ્યાં છો સ્ટેક થી ફ્રેમ. તેથી અમે ઢગલો મારફતે નથી બ્લોએંગ કરી રહ્યાં છો કોણ શું બીજું જાણે છે, અને ઉલ્લેખ અમે અમારા ની સીમાથી વધુ પડતા પગલાં રહ્યા છો મેમરી સેગમેન્ટ કહેવાતી. સેગ્મેન્ટેશન ખોટા જાઓ ભૂલ. તેથી ત્યાં ઉકેલ સ્પષ્ટ રીતે આવું નથી. પરંતુ મોટી અસર તે છે કે, હા, છે એકદમ અમુક મર્યાદા હોય છે તે સારી રીતે કેવી રીતે કરવી, વ્યાખ્યાયિત નથી તો પણ જો તમે માં કૉલ કરી શકો છો ઘણા કાર્યો કાર્યક્રમ કેવી રીતે ઘણી વખત એક કાર્ય પોતે કૉલ કરી શકો છો. અમે પુનરાવર્તનના ઉપદેશ હતી તેથી છતાં પણ આ સંભવિત જાદુઈ વસ્તુ તરીકે જો સિગ્મા માટે પહેલા અઠવાડિયા દંપતિ કાર્ય, અને જ્યારે અમે માહિતી મળી માળખાં અને CS50, તમે અન્ય જોશો તે માટે અરજીઓ, તે નથી જરૂરી શ્રેષ્ઠ વસ્તુ. એક કાર્ય પોતે કહે છે, કારણ કે જો આધાર છે, પણ જો પોતે કહે છે કેસ, તમે તે આધાર કેસ હિટ ન હોય તો 1,000 કોલ્સ અથવા 10,000 કોલ્સ માટે, દ્વારા તમે રૂમ બહાર ચાલે છે કે જે કદાચ સમય તમારા કહેવાતા સ્ટેક અને હિટ પર મેમરી કેટલાક અન્ય સેગમેન્ટો. તેથી તે ખૂબ ડિઝાઇન વેપાર બંધ છે લાવણ્ય વચ્ચે અને વચ્ચે તમારા ચોક્કસ ઓફ રોબસ્ટનેસ અમલીકરણ. તેથી અન્ય નુકસાન અથવા ત્યાં છે અમે કર્યું છે તે માટે બીજી gotcha આમ અત્યાર સુધી કરી દેવામાં. હું getstring કહેવાય - મને હેલો-2 માં પાછા જવા દો. , હું getstring ફોન કરું છું કે નોટિસ જે એક સરનામું પરત આવે છે. અને આજે આપણે દાવો છે કે સરનામા આ ઢગલો છે. અને હવે હું બહાર છાપવા છું કે સરનામા અંતે સ્ટ્રિંગ. પરંતુ અમે કહેવાય ક્યારેય કર્યું getstring વિરોધી. અમે જેમ કાર્ય calll માટે ક્યારેય કર્યું જ્યાં તમે હાથ પાછા ungetstring, કે મેમરી. પરંતુ પ્રમાણિકપણે અમે કદાચ આવી જોઈએ. કારણ કે અમે કમ્પ્યુટર પૂછવા રાખવા જેમ વ્યક્તિ મેમરી માટે, દ્વારા માર્ગ getstring પરંતુ ચોક્કસ, તે પાછું આપે ક્યારેય તે પણ જીવી બંધાયેલા છે અમે મેમરી રન આઉટ જેમાં સમસ્યાઓ. અને હકીકતમાં, આપણે આ માટે જોઈ શકો છો જેના ઉપયોગ નવા સાધન સાથે સમસ્યાઓ ટાઇપ કરવા માટે થોડી વિસ્મૃત છે. પરંતુ મને આગળ વધો અને તે સ્પ્લેશ દો માત્ર એક ક્ષણ સ્ક્રીન પર. હું આગળ જાઓ અને Valgrind સ્કોર જઇ રહ્યો છું જેની પ્રથમ આદેશ પરિમાણ સાથે વાક્ય દલીલ નામ છે કે કાર્યક્રમ હેલ્લો-2. અને કમનસીબે તે આઉટપુટ atrociously છે આ બોલ પર કોઈ વાજબી કારણ માટે જટિલ. તેથી આપણે બધા કે વાસણ જુઓ. ડેવિડ મારું નામ રાજ્ય છે. કે જેથી કાર્યક્રમનો વાસ્તવમાં ચાલી. અને હવે અમે આ આઉટપુટ મેળવી. તેથી Valgrind સમાન છે GDB માટે ભાવના છે. તે સે દીઠ એક ડીબગર નથી. પરંતુ તે એક મેમરી પરીક્ષક છે. તે તમારા ચાલશે કે કાર્યક્રમ છે કાર્યક્રમ અને તમે પૂછવામાં જો તમે કહી મેમરી માટે કોમ્પ્યુટર અને ક્યારેય તેને આપ્યો પાછા, ત્યાં કે તમારી પાસે જેનો અર્થ મેમરી છિદ્ર. અને મેમરી લિક ખરાબ હોય છે. અને તમે કમ્પ્યુટર્સ વપરાશકર્તાઓને હોય છે કદાચ આ તમે એક છે, શું લાગ્યું મેક કે પીસી. તમે ક્યારેય માટે તમારા કમ્પ્યુટર વપરાય છે અને કેટલાક માં રીબુટ નહિં જ્યારે દિવસ અથવા તમે માત્ર એક ઘણો મળી છે ચાલી રહેલ કાર્યક્રમો, અને ખરેખર વસ્તુ એક ગ્રાઇન્ડીંગ થંભી ધીમો પડી જાય છે, અથવા ઓછામાં ઓછા કારણ કે તે વાપરવા માટે સુપર હેરાન છે બધું માત્ર સુપર ધીમી થઈ જાય છે. હવે તે કારણોસર કોઇ પણ નંબર બની શકે છે. તે અનંત લૂપ માં ભૂલ હોઈ શકે છે કોઈના કોડ છે, અથવા, વધુ સરળ, તે તમે વધુ ઉપયોગ કરી રહ્યાં છો કે જે અર્થ થઇ શકે છે તમારા કરતાં મેમરી, અથવા પ્રયાસ કોમ્પ્યુટર ખરેખર છે. અને કદાચ અમુક કાર્યક્રમ માં ભૂલ છે મેમરી માટે પૂછવા રાખે. વર્ષ માટે બ્રાઉઝર્સ માટે કુખ્યાત હતા આ વધુ અને વધુ મેમરી માટે પૂછતી પરંતુ તે પાછા સોંપવામાં નથી. ચોક્કસ, તમે ફક્ત એક મર્યાદિત હોય તો મેમરી જથ્થો, તમે પૂછી શકતા નથી માટે અનંત ઘણી વખત કે મેમરી કેટલાક. અને તેથી તમે, છતાં પણ અહીં જોવા શું ફરી Valgrind આઉટપુટનું છે અંતે ચમકારો માટે બિનજરૂરીપણે જટિલ પ્રથમ, આ રસપ્રદ ભાગ છે. હિપ - બહાર નીકળો અંતે ઉપયોગ. તેથી અહીં કેટલી મેમરી હતી ચોક્કો જો ખાતે ઢગલો વપરાશમાં સમય મારા કાર્યક્રમ બહાર - એક બ્લોકમાં દેખીતી રીતે છ બાઇટ્સ. તેથી હું મારા હાથ તરંગ જઈ રહ્યો શું એક બ્લોક છે. વધુ, તે માત્ર એક ભાગ છે વિચારો ચંકને માટે તકનિકી શબ્દ. છ બાઇટ્સ પરંતુ - છ બાઇટ્સ શું છે હજુ પણ વપરાશમાં હતા? બરાબર. D-A-V-આઇ ડી બેકસ્લેશ શૂન્ય, પાંચ અક્ષર નામ વત્તા નલ ટર્મીનેટર. તેથી આ કાર્યક્રમ જણાયું Valgrind કે હું દ્વારા, દેખીતી રીતે, છ બાઇટ્સ માટે પૂછવામાં getstring માર્ગ, પરંતુ ક્યારેય તેમને પાછા આપી હતી. અને હકીકતમાં, આ આવું ન હોઇ શકે મારા કાર્યક્રમ ત્રણ નથી સ્પષ્ટ જો રેખાઓ, પરંતુ તે 300 લીટીઓ છે. તેથી આપણે ખરેખર અન્ય આદેશ આપી શકે છે વાક્ય દલીલ માટે Valgrind માટે તે વધુ વર્બોઝ બનાવે છે. તેને યાદ રાખવા માટે થોડું ત્રાસદાયક છે. પરંતુ હું તો - માતાનો જોવા દો. લીક - તે લીક કરવામાં આવી હતી - પણ હું યાદ નથી તે હાથ બોલ શું છે. - લીક તપાસો સંપૂર્ણ બરાબર. Yep, તમે ખૂબ ખૂબ આભાર. - લીક તપાસો સંપૂર્ણ બરાબર. દાખલ કરો. જ કાર્યક્રમ ચાલી રહ્યો છે. ફરી ડેવિડ લખો. હવે હું થોડી વધારે વિગત માટે જુઓ. પરંતુ ઢગલો સારાંશ નીચે, જે ચાર સરખા છે - આહ, આ સરસ પ્રકારની છે. હવે Valgrind ખરેખર જોઈ છે મારી કોડ કઠણ થોડી. અને તે દેખીતી રીતે, કહે છે કે છે વાક્ય પર malloc - અમે બહાર ઝૂમ. પર લાઈન - અમે તેને શું છે રેખા જોવા નથી. પરંતુ malloc પ્રથમ ગુનેગાર છે. Malloc એક બ્લોગ છે. બધા અધિકાર? ઠીક, નં. બરાબર ને? હું getstring કહેવાય છે. getstring દેખીતી રીતે malloc કહે છે. તેથી શું કોડ લાઇન ઓફ દેખીતી રીતે છે આકરી ભૂલમાં આ મેમરી ફાળવવામાં? ચાલો રહેલી વ્યકિત malloc લખ્યું હતું કે ધારે લાંબા પૂરતી છે કે આસપાસ કરવામાં આવી છે તેમના દોષ. તેથી તે કદાચ ખાણ છે. cs50.c માં getstring - એક કે તેથી કમ્પ્યુટર પર ક્યાંક ફાઈલ - લાઇન 286 એ ગુનેગાર લાગે છે. હવે cs50 છે કે ધારે દો તેથી સમય યોગ્ય રકમ માટે આસપાસ અમે પણ અમોઘ છે. અને તેથી તે getstring માં કદાચ નથી આ ભૂલ આવેલું છે, પરંતુ તે હેલ્લો-2.c રેખા 18. તેથી માતાનો પર એક નજર કરીએ તે લીટી 18 શું હતી. ઓહ. અચાનક આ વાક્ય જરૂરી નથી બગડેલ, દીઠ સે, પરંતુ તે કારણ છે કે મેમરી લીક પાછળ છે. તેથી સુપર સરળ શું તર્ક કરશે અહીં ઉકેલ હોઈ? અમે મેમરી માટે પૂછી રહ્યાં છો, તો ક્યારેય ન હતો તે પાછા આપ્યા છે, અને તે એક હોઈ લાગે છે સમસ્યા છે, કારણ કે સમય મારા કમ્પ્યુટરને ઉપર મેમરી રન આઉટ શકે છે, ધીમું હોઈ શકે છે નીચે, ખરાબ વસ્તુઓ, સારી રીતે, થાય શકે છે સરળ સાહજિક ઉકેલ શું છે? માત્ર તે પાછું આપે છે. તમે કેવી રીતે છે કે મેમરી મુક્ત નથી? વેલ, thankfully તે ખૂબ સરળ છે ફક્ત મફત નામ કહે છે. અને અમે પહેલાં આ ક્યારેય નહોતું કર્યું. પરંતુ તમે આવશ્યક વિચાર કરી શકો છો malloc વિરુદ્ધની તરીકે મફત. મફત વિરોધી છે મેમરી ફાળવણી. તેથી હવે મને આ recompile દો. હેલ્લો-2 કરો. મને તે ફરીથી ચલાવવા દો. હેલ્લો-2 ડેવિડ. તેથી તે કામ કરવા લાગે છે બરાબર એ જ રીતે. પરંતુ હું Valgrind પર પાછા જાઓ અને ફરીથી ચલાવો તો મારા નવા પર તે જ આદેશ સંકલિત કાર્યક્રમ, ટાઈપ પહેલાં તરીકે મારા નામ - સરસ. ઢગલો સાર - - બહાર નીકળો અંતે ઉપયોગ શૂન્ય બ્લોકમાં શૂન્ય બાઇટ્સ. અને આ સુપર સરસ, બધા છે ઢગલો બ્લોકો મુક્ત કરવામાં આવ્યા હતા. આ બોલ પર કોઈ લિક શક્ય છે. તેથી, બિન સમસ્યા સેટ 4 સાથે, અપ આવતા પરંતુ સમસ્યા સમૂહ 5, જો વિદેશી સાથે અને આગળ, આ પણ એક બની જશે તમારી ચોકસાઈ ના માપ તમારી પાસે શું નથી અથવા કાર્યક્રમ, અથવા મેમરી લિક નથી. પરંતુ thankfully, તમે કારણ શકતા નથી જ તેમને તર્ક, જેના દ્વારા નાના પ્રોગ્રામ માટે સરળ, તાર્કિક છે, પરંતુ મોટા કાર્યક્રમો માટે કઠણ, , તે મોટા કાર્યક્રમો માટે, Valgrind તમે ઓળખી શકો છો ચોક્કસ સમસ્યા નથી. પરંતુ એક અન્ય સમસ્યા કે જન્મી શકે છે. , જે છે, મને અહીં આ ફાઇલ ખોલવા દો ફરીથી, એક અંશે સરળ ઉદાહરણ છે. પરંતુ ચાલો તેના પર ધ્યાન કેન્દ્રિત આ પ્રોગ્રામ કરે છે. આ memory.c કહેવામાં આવે છે. અમે આ પછી આજે પોસ્ટ પડશે આજના સ્રોત કોડ ઝીપ. અને હું નામની એક કાર્ય છે કે નોટિસ દલીલો અને કોઈ લે કે એફ કંઈ આપે છે. રેખા 20 માં, હું દેખીતી રીતે એક જાહેર છું એક ઈન્ અને તે X ફોન માટે પોઇન્ટર. હું સોંપવા છું પરત છે malloc બજારમૂલ્ય. અને માત્ર છું કેટલા બાઇટ્સ, સ્પષ્ટ કરવા હું કદાચ malloc માંથી પાછા ફરવામાં આ પરિસ્થિતિ માં? કદાચ 40. જ્યાં તમે કે વિચાર નથી? વેલ, તમે ઈન્ વારંવાર કે યાદ તો 4 બાઇટ્સ, ઓછામાં ઓછા તે છે ઉપકરણ, ગુણ્યા 4 10 દેખીતી રીતે 40 છે. તેથી malloc એક સરનામા પરત થયેલ છે એક મેમરી ચંકને અને સ્ટોર કે X આખરે સંબોધવા. તેથી, સ્પષ્ટ કરવા શું પછી શું થઈ રહ્યું છે? ઠીક છે, મને પાછા સ્વિચ દો અહીં અમારા ચિત્ર છે. મને માત્ર મારા તળિયે ડ્રો નથી દો કોમ્પ્યુટરની મેમરી, મને આગળ જવા દો અને સમગ્ર લંબચોરસ દોરો કે મારી RAM ના બધા રજૂ કરે છે. અમે કહી શકશો કે સ્ટેક તળિયે છે. અને લખાણ સેગમેન્ટમાં છે જો uninitialized માહિતી. પરંતુ હું માત્ર અમૂર્ત તે જઈ રહ્યો દૂર ડોટ, કોઈ કોઈ અન્ય વસ્તુઓ. હું ફક્ત આ સંદર્ભ માટે જઇ રહ્યો છું ટોચ પર ઢગલો છે. અને તે પછી આ ચિત્ર તળિયે, મુખ્ય પ્રતિનિધિત્વ કરવા માટે, હું જાઉં છું જો તે કાપી નાંખ્યું મેમરી આપી સ્ટેક પર. એફ માટે, હું તે એક સ્લાઇસ આપવા જઈ રહ્યો છું સ્ટેક પર મેમરી. હવે, હું મારા સંપર્ક કરવા માટે મળી ફરી સ્રોત કોડ. મુખ્ય માટે સ્થાનિક ચલો શું છે? દેખીતી રીતે કંઈ છે, તેથી તે સ્લાઇસ છે અસરકારક રીતે ખાલી નથી અથવા પણ મોટા હું તે દોરેલા કર્યું છે. પરંતુ એફ, હું, સ્થાનિક ચલ છે જે X કહેવાય છે. તેથી હું આગળ જાઓ અને એફ આપવા જઈ રહ્યો છું તે X ફોન મેમરી એક ચંકને. , 10 ગુણ્યા 4 અને હવે malloc કે જ્યાં malloc 40, તેથી મેમરી આવતા? અમે એક ચિત્ર દોરવામાં નથી કર્યું પહેલાં આ ગમે છે. પરંતુ માતાનો તે અસરકારક રીતે કે ધારવું દો જેથી એક, અહીં આવતા, બે, ત્રણ, ચાર, પાંચ. અને હવે હું આ 40 જરૂર છે. તેથી હું માત્ર સૂચવે ડોટ, ડોટ, ડોટ કરીશ પણ વધુ મેમરી છે તે આ ઢગલો થી પાછા આવતા. હવે સરનામા શું છે? ચાલો અમારી મનસ્વી પસંદ હંમેશની જેમ સરનામું - તે કદાચ રહ્યું હોવા છતાં Ox123, સંપૂર્ણપણે અલગ કંઈક છે. તે પ્રથમ બાઇટ ની સરનામા ચોક્કો હું malloc પૂછવા છું મેમરી છે. તેથી ટૂંકા, એકવાર લીટી માં 20, ચલાવે છે શાબ્દિક શું છે અહીં x ની અંદર સંગ્રહિત? Ox123. Ox123. અને બળદની uninteresting છે. તે માત્ર છે અહીં અર્થ એવો થાય હેક્સાડેસિમલ નંબર. પરંતુ શું કી ચોક્કો હું સ્ટોર કરેલા શું છે X માં, જે સ્થાનિક ચલ છે. પરંતુ તેની માહિતી પ્રકાર, ફરી, એક ઈન્ એક સરનામું છે. ઠીક છે, હું Ox123 સંગ્રહવા માટે જઈ રહ્યો છું. પરંતુ ફરીથી, ખૂબ છે, જો હું સ્ક્રોલ નહિં, તો બિનજરૂરીપણે જટીલ પાછા, અમે આ દૂર અમૂર્ત કરી શકો છો તદ્દન વ્યાજબી અને માત્ર કહે છે કે X છે મેમરી કે ચંકને માટે પોઇન્ટર. ઠીક. હવે હાથ પર પ્રશ્ન નીચેના છે - રેખા 21, તે બહાર વળે, બગડેલ છે. શા માટે? માફ કરશો? તે નથી - વધુ એક વખત કહે છે કે. વેલ, તે મુક્ત નથી. જેથી બીજા છે, પરંતુ. તેથી અન્ય પરંતુ ખાસ કરીને એક છે રેખા 21 મુ. બરાબર. કોડ આ સરળ વાક્ય માત્ર એક છે બફર ઓવરફ્લો, બફર ઘેરી લીધા. એક બફર માત્ર મેમરી એક ચંકને થાય છે. પરંતુ મેમરી કે ચંકને કદ છે 10, 10 પૂર્ણાંકો, એટલે તો અમે જો વાકયરચનામાં ખાંડ મદદથી તેને ઇન્ડેક્સ અરે સંકેત છે, ચોરસ વિભાજન છે, તમને વપરાશ હોય છે X કૌંસ 0 X કૌંસ 1 એક્સ, કૌંસ પર કોઈ, કોઈ, કોઈ. X કૌંસ 9 સૌથી વધારે છે. હું X કૌંસ 10, જેથી જો જ્યાં હું ખરેખર મેમરી જઈ રહ્યો છું? ઠીક છે, હું 10 ઈન્ હોય તો - ચાલો ખરેખર બધા ડ્રો અહીં આ બહાર છે. જેથી પ્રથમ પાંચ હતી. અહીં અન્ય પાંચ ints છે. તેથી X કૌંસ 0 અહીં છે. X કૌંસ 1 છે અહીં. X કૌંસ 9 અહીં છે. X કૌંસ 10 અહીં છે, જે હું કહી રહ્યો છું એનો અર્થ એ થાય રેખા 21 માં કમ્પ્યુટર મૂકી નંબર છે? આ નંબર 0 જ્યાં? વેલ, તે હા 0 છે. પરંતુ માત્ર એ હકીકત છે કે તેના 0 એક સંયોગ પ્રકારની છે. તે નંબર હોઈ શકે 50, અમે કાળજી બધા માટે. પરંતુ અમે X કૌંસ તે મૂકવા માટે પ્રયાસ કરી રહ્યાં છો જ્યાં આ છે જે 10, પ્રશ્ન ચિહ્ન, દોરેલા છે, જે સારી વાત નથી. આ કાર્યક્રમ ખૂબ જ સારી રીતે કદાચ પરિણામે ભાંગી. હવે, ચાલો આગળ વધો અને જોવા દો આ તો , ખરેખર, શું થાય છે. મેમરી કરો, ત્યારથી ફાઇલ memory.c કહેવામાં આવે છે. ચાલો આગળ વધો અને સ્કોર કાર્યક્રમ મેમરી. તેથી આપણે નસીબદાર મળી, ખરેખર, તે લાગે છે. અમે નસીબદાર મળી. પરંતુ હવે અમે Valgrind સ્કોર જો માતાનો જોવા દો. પ્રથમ નજરમાં, મારા કાર્યક્રમ કદાચ સંપૂર્ણપણે સાચું લાગે છે. પરંતુ સાથે Valgrind મને સ્કોર દો - લીક તપાસો મેમરી સંપૂર્ણ બરાબર. અને હવે હું આ ચલાવો ત્યારે - રસપ્રદ. અમાન્ય અંતે કદ 4 લખવા memory.c લાઇન ઓફ 21. Memory.c લાઇન ઓફ 21 જે એક છે? ઓહ, રસપ્રદ. પરંતુ રાહ જુઓ. કદ 4, ઉલ્લેખ છે કે શું છે? હું માત્ર એક લખવા હતી પરંતુ તે કદ 4 છે. તે શા માટે 4 છે? તે જે Int, કારણ કે તે છે ફરીથી, ચાર બાઇટ્સ, છે. તેથી Valgrind ભૂલ મળી કે હું, મારા કોડ પર glancing, ન હતી. અને કદાચ તમારા ટીએફ કરશે કે નથી લેતા. પરંતુ ખાતરી મળી છે કે શું Valgrind અમે પણ, ત્યાં ભૂલ કરી છે અમે નસીબદાર મળી, અને છતાં કોમ્પ્યુટર નક્કી કર્યું, એમ, હું તૂટી નથી જતા છું તમે એક બાઇટ, એક સ્પર્શ માત્ર કારણ કે તમે ન હતી કે મેમરી ઈન્ માતાનો વર્થ વાસ્તવમાં પોતાના. ઠીક છે, અહીં બગડેલ બીજું શું છે. સરનામું - આ એક ક્રેઝી જોઈ સરનામું છે હેક્સાડેસિમલ છે. માત્ર ક્યાંક ઢગલો છે અર્થ એ છે કે કદ 40 બ્લોક પછી શૂન્ય બાઇટ્સ ફાળવવામાં આવે છે. મને અહીં બહાર ઝૂમ અને જોવા દો તો આ થોડી વધુ મદદરૂપ છે. રસપ્રદ. 40 બાઇટ્સ ચોક્કસપણે ખોવાઈ જાય છે 1 નુકશાન રેકોર્ડ 1 માં. ફરીથી, કરતાં વધુ શબ્દો અહીં ઉપયોગી છે. પરંતુ, પ્રકાશિત લીટીઓ પર આધારિત જ્યાં હું કદાચ ધ્યાન કેન્દ્રિત કરવું જોઇએ મારા અન્ય ભૂલ માટે ધ્યાન? Memory.c એક લીટી 20 જેવો દેખાય છે. અમે લીટી 20 પર જાઓ, તેથી જો કે આ તમે અગાઉ ઓળખી કે એક. અને તે બગડેલ હોય તે જરૂરી નથી. પરંતુ અમે આ તેની અસરો ઉલટાવી છે. તેથી હું કેવી રીતે ઓછામાં ઓછા સુધારવા નથી તે ભૂલો એક? હું રેખા 21 પછી શું કરી શકે? હું તેથી, X મફત છે કરી શકે કે મેમરી પાછા આપી. અને હું આ ભૂલ કેવી રીતે ઠીક કરું? હું ચોક્કસપણે જવા જોઈએ આ બોલ પર કોઈ દૂર 0 કરતાં. તેથી મને પ્રયાસ કરો અને આ ફરીથી ચલાવો દો. માફ કરશો, ચોક્કસપણે જાઓ આ બોલ પર કોઈ છેક 9 કરતાં. મેમરી બનાવો. Valgrind મને પુનઃ ચલાવો દો એક મોટી વિંડોમાં. અને હવે જુઓ. સરસ. બધા ઢગલો બ્લોકો મુક્ત કરવામાં આવ્યા હતા. આ બોલ પર કોઈ લિક શક્ય છે. અને અહીં ઉપર, કોઈ ઉલ્લેખ નથી આ અમાન્ય અધિકાર કોઇ વધારે. માત્ર લોભી વિચાર, અને લેટ્સ માટે જુઓ તો બીજી નિદર્શન હેતુપૂર્વક જવા નથી - હું એક ક્ષણ પહેલા નસીબદાર મળી હતી. અને આ 0 છે એ હકીકત છે કે કદાચ છે બિનજરૂરીપણે ગેરમાર્ગે. માત્ર 50 એક અંશે મનસ્વી કરવા દો માતાનો નંબર, મેમરી નો સ્લેશ મેમરી બનાવો - હજુ નસીબદાર વિચાર. નથીંગ બરબાદીનું છે. હું માત્ર ખરેખર કંઈક ધારવું મૂર્ખ છે, અને હું 100 નથી. , મને મેમરી રિમેક દો કોઈ સ્લેશ મેમરી - ફરીથી નસીબદાર મળી. કેટલો 1,000 વિશે? ઉપરાંત ints, લગભગ, જ્યાં હું પ્રયત્ન કરીશું? મેમરી બનાવો - તે ખરેખર. [હાસ્ય] ઠીક. માતાનો હવે આસપાસ ગડબડ ન દો. મેમરી પુનઃ ચલાવો. ત્યાં અમે જાઓ. બધા અધિકાર. તેથી દેખીતી રીતે તમે ઇન્ડેક્સ 100,000 ints તમે જ હોવા જોઈએ જ્યાં બહાર મેમરી, ખરાબ વસ્તુઓ થાય છે. તેથી આ દેખીતી રીતે નથી હાર્ડ, ઝડપી નિયમ. હું ટ્રાયલ ઉપયોગ પ્રકારની હતી અને ભૂલ વિચાર. પરંતુ આ છે, કારણ કે, લાંબા વાર્તા ટૂંકી છે તમારા કમ્પ્યુટરની મેમરી પણ વિભાજીત છે આ વસ્તુઓ માં સેગમેન્ટો કહેવાય છે. અને ક્યારેક, કમ્પ્યૂટર વાસ્તવમાં તમે થોડી વધુ મેમરી આપવામાં આવી છે તમે માગી છે. પરંતુ કાર્યક્ષમતા માટે, તે માત્ર સરળ વધુ મેમરી વિચાર પરંતુ માત્ર તમે જ કહો તમે તેને એક ભાગ મેળવી રહ્યાં છો કે. અને તમે ક્યારેક નસીબદાર વિચાર હોય, તો તેથી, તમે સ્પર્શ કરવા માટે સક્ષમ હોઇ શકે છે કે મેમરી તમે ને અનુલક્ષતું નથી. તમારી પાસે કોઈ ગેરંટી છે કે શું કિંમત તમે, ત્યાં ત્યાં રહેશે મૂકવામાં કારણ કે કમ્પ્યુટર હજુ પણ તે નથી વિચારે છે તમારામાં છે, પરંતુ તે જરૂરી નથી જતા છે માં મેમરી અન્ય સેગમેન્ટમાં હિટ કમ્પ્યુટર અને એક ભૂલ જેવા લલચાવવું અહીં આ એક છે. બધા અધિકાર. પછી કોઈપણ પ્રશ્નો મેમરી? બધા અધિકાર. અંતે, પછી માતાનો અહીં એક નજર નાંખો અમે માટે લઈ આવી છે કંઈક અમુક સમય માટે શાંત મંજૂર છે, કે જે cs50.h. કહેવાય આ ફાઈલની છે તેથી આ એક ફાઇલ છે. આ માત્ર એક આખા ટોળું છે ઉપર ટિપ્પણીઓ છે. અને જો તમે આ હો તો જોવામાં છે શકે જો તમે ઉપકરણ પર આસપાસ poked. પરંતુ તે છે, કે જે બધા સમય બહાર વળે અમે એક તરીકે શબ્દમાળા વાપરવા માટે વપરાય છે ત્યારે સમાનાર્થી, અમે જાહેર છે કે જેના દ્વારા અર્થ કે પર્યાય આ સાથે હતી પ્રકાર વ્યાખ્યા માટે typedef કીવર્ડ. અને અમે આવશ્યક કહી રહ્યાં છે, બનાવવા ચાર સ્ટાર સમાનાર્થી સ્ટ્રિંગ. કે અર્થ છે કે જેના દ્વારા સ્ટેક તરીકે પણ ઓળખાય છે, આ તાલીમ વ્હીલ્સ બનાવનાર શબ્દમાળા. હવે અહીં માત્ર એક પ્રોટોટાઇપ છે getchar માટે. અમે પહેલાં તેને જોઈ હોય શકે છે, પરંતુ તે છે ખરેખર તે શું કરે છે. getchar , કોઈ દલીલો લે છે એક ચાર આપે છે. getdouble, કોઈ દલીલો લે છે ડબલ આપે છે. getfloat કોઈ દલીલો, વળતર લે છે એક ફ્લોટ, અને તેથી આગળ. getint અહીં છે. getlonglong અહીં છે. અને getstring અહીં છે. અને તે છે. આ જાંબલી લીટી અન્ય preprocessor છે કારણ ડાઈરેક્ટીવ તે શરૂઆતમાં hashtag. બધા અધિકાર. તેથી હવે મને cs50.c. માં જવા દો અને અમે આ ખૂબ લાંબુ વાત નહીં. પરંતુ તમે શું એક ઝલક આપી આ બધા પર જવા દેવામાં સમય, મને જવા દો - લેટ્સ getchar નથી. તેથી getchar મોટે ભાગે ટિપ્પણીઓ છે. પરંતુ તે આ જેમ દેખાય છે. તેથી આ વાસ્તવિક કાર્ય છે અમે કરી છે કે getchar મંજૂર માટે લઈ અસ્તિત્વમાં છે. અને અમે આ વાપરો નહિં હોય છતાં પણ ઘણીવાર તો ક્યારેય, તે ઓછામાં ઓછો છે પ્રમાણમાં સરળ. તેથી તે લઈ વર્થ છે અહીં અંતે ઝડપી જુઓ. તેથી getchar, અનંત લૂપ છે ઇરાદાપૂર્વક તેથી દેખીતી રીતે. તે પછી કહે છે - અને આ એક પ્રકારની છે કોડ ઓફ સરસ પુનઃઉપયોગ આપણે આપણી જાતને લખ્યું. તે getstring કહે છે. તે શું કરે છે, કારણ કે એક ચાર વિચાર અર્થ? વેલ, તમે પણ એક વિચાર પ્રયત્ન કરી શકો છો સમગ્ર વપરાશકર્તા માંથી લખાણ વાક્ય અને પછી માત્ર એક જોવા તે અક્ષરો. રેખા 60, અહીં થોડી છે એક સેનીટી ચેક બીટ. Getstring નલ ફર્યો, તો માતાનો આગળ વધવું ન જોઈએ. કંઈક ખોટું થયું હતું. હવે આ અંશે હેરાન કરે છે, પરંતુ કદાચ સી ચાર મહત્તમ માં પરંપરાગત રજૂ શું માત્ર તેના નામ પર આધારિત છે? જો તે સતત છે. તે ના આંકડાકીય કિંમત જેવી છે તમારી સાથે પ્રતિનિધિત્વ કરી શકે ચાર મોટી કદાચ નંબર છે જે એક ડંખ, સૌથી નંબર છે, જે તમે 255, આઠ બિટ્સ પ્રતિનિધિત્વ શૂન્ય થી શરૂ. તેથી હું જ્યારે આ કાર્ય માં, આ ઉપયોગ કર્યા છે કારણ કે માત્ર આ કોડ લેખિત કંઈક getchar માં ખોટું છે પરંતુ જો જીવનમાં તેની હેતુ એક પાછા છે ચાર, તમે અચાનક આપની સમક્ષ જરૂર છે કે વપરાશકર્તા માટે સિગ્નલ કંઈક ખોટું થયું હતું. અમે નલ પાછા ન કરી શકો છો. તે નલ એક નિર્દેશક છે કે કરે છે. અને ફરી, getchar છે એક ચાર પરત ફરો. તેથી સંમેલન, કંઈક જાય તો ખોટું, તમે પ્રોગ્રામર, અથવા, છે આ કિસ્સામાં, મને લાઇબ્રેરી સાથે, હું હતો એક, ફક્ત જો આપખુદ નિર્ણય કંઈક ખોટું થાય, હું જાઉં છું સાચી છે, કે જે નંબર 255, પાછા અમે, વપરાશકર્તા પ્રકાર નથી કરી શકતો નથી કરી શકે છે એનો અર્થ એ થાય દ્વારા રજૂ અક્ષર અમે હતી કારણ કે નંબર 255 તેની ચોરી એક કહેવાતા સંત્રી કિંમત તરીકે એક સમસ્યા પર આધારિત છે. હવે તે બહાર વળે કે જે અક્ષર 255 પર તમે ટાઈપ કરી શકો છો કંઈક નથી તમારા કીબોર્ડ છે, તેથી તેને કોઈ મોટા સોદો છે. વપરાશકર્તા નોટિસ નથી હું આ પાત્ર ચોરી કરી છે. પરંતુ તમે ક્યારેય પર મદદ પાનાંઓમાં પણ જુઓ તો એક કમ્પ્યુટર સિસ્ટમ કેટલાક સંદર્ભ કહે છે કે, સતત આ જેમ બધા કેપ્સ ભૂલ તો આ સતત ઓફ માઇટ કિસ્સાઓમાં પરત કરવામાં, કે જે કર્યું બધા કેટલાક માનવ છે વર્ષો પહેલા આપખુદ લીધી હતી આ ખાસ કિંમત અને પાછા તે કિસ્સામાં સતત કૉલ કંઈક ખોટું થાય. હવે જાદુ અહીં નીચે થાય છે. પ્રથમ, હું રેખા 67 માં જાહેર છું બે અક્ષરો, C1 અને c2. અને પછી વાક્ય 68 માં, ખરેખર છે યાદ અપાવે છે કે કોડ કે જે એક લીટી અમારા મિત્ર printf આપવામાં તે અવતરણ ટકા સીએસ નથી. પરંતુ અહીં શું થઈ રહ્યું છે તે જુઓ. sscanf શબ્દમાળા સ્કેન અર્થ થાય છે - એક ફોર્મેટ સ્કૅન અર્થ એ થાય સ્ટ્રિંગ, તેને લીધે sscanf. કે શું અર્થ છે? જો તમે શબ્દમાળા sscanf પસાર થાય છે. અને રેખા ગમે છે સાઇન વપરાશકર્તા પ્રકારો તમે ફોર્મેટ સ્ટ્રિંગ જેવા sscanf પસાર શું છે scanf કહે છે કે આ તમે વપરાશકર્તા સાઇન લખ્યો છે આશા પછી તમે પસાર માં બે સરનામાં આ કિસ્સામાં મેમરી હિસ્સામાં,, હું બે જગ્યામાં હોય છે. તેથી હું તેને સરનામા આપવા જઈ રહ્યો છું C1 અને c2 નું સરનામું. અને તમે કામગીરી આપી કે યાદ કેટલાક ચલ ઓફ સરનામું, શું છે જો સૂચિતાર્થ? કે કાર્ય પરિણામે શું કરી શકો જો તે ના સરનામા આપવાની ચલ, તરીકે વિરોધ જો ચલ પોતે? તે હક, તેને બદલી શકે છે? તમે કોઈને ભૌતિક એક નકશો હોય તો સરનામું, તેઓ ત્યાં જાય છે અને શું કરી શકો છો તેઓ સરનામા અંતે માંગો ગમે. અહીં જ વિચાર. અમે sscanf, બે સરનામા માટે પસાર તો પણ મેમરી હિસ્સામાં, આ નાના મેમરી, C1 અને c2 થોડા હિસ્સામાં, પરંતુ અમે તેને ની સરનામા કહેવું sscanf તેને બદલી શકે છે. જીવન માં sscanf માતાનો હેતુ તેથી, અમે વાંચી જો માણસ પાનું, વાંચવા માટે છે શું વપરાશકર્તા ટાઇપ, ધરાવતા વપરાશકર્તા માટે આશા એક અક્ષર ટાઇપ અને કદાચ અન્ય પાત્ર અને ગમે તે વપરાશકર્તા ટાઇપ, પ્રથમ અક્ષર જાય અહીં, બીજા અક્ષર અહીં જાય છે. હવે, એક કોરે તરીકે, આ, અને તમે કરશે માત્ર, દસ્તાવેજીકરણને આ ખબર હું ત્યાં ખાલી જગ્યા મૂકવામાં હકીકત એ છે કે માત્ર હું કાળજી નથી અર્થ એ થાય કે જો વપરાશકર્તા સ્પેસ બાર થોડા સ્કોર તે અથવા તેણી એક લે વખત પહેલાં પાત્ર, હું અવગણવા માટે જઇ રહ્યો છું કોઇપણ સફેદ જગ્યા. જેથી મેં ખબર દસ્તાવેજીકરણ. બીજા% કેચ છે તે હકીકત સફેદ જગ્યા અનુસરતા ખરેખર છે ઇરાદાપૂર્વકની. હું શોધવા માટે સક્ષમ થવા માંગતા હોય તો વપરાશકર્તા ખરાબ અથવા સહકાર ન હતી. તેથી હું વપરાશકર્તા માત્ર ટાઇપ કે આશા છું એક પાત્ર, તેથી હું આશા કરું છું કે sscanf માત્ર પાછા જવાનું છે કિંમત 1 હું વાંચી હોય તો, ફરી, કારણ કે દસ્તાવેજીકરણ, sscanf માતાનો હેતુ માં જીવન નંબર પર પાછા છે ભરવામાં આવ્યા હતા કે ચલો વપરાશકર્તા ઈનપુટ છે. હું બે ચલો માં પસાર સરનામાં, C1 અને c2. હું કે જે, જોકે, આશા છું ફક્ત એક તેમને માર્યા નહીં કારણ કે જો sscanf વળતર 2, એવું માની શકાય કે શું તાર્કિક રીતે ઉદભવે છે? વપરાશકર્તા માત્ર મને એક આપી ન હતી પાત્ર જેમ હું તેમને જણાવ્યું હતું કે તેણી. તેઓ કદાચ અંતે ટાઇપ ઓછામાં બે અક્ષરો. હું બદલે બીજા ન હતી તેથી જો % C, હું માત્ર, એક હતી પ્રમાણિકપણે વધુ હશે અભિગમ, હું પ્રથમ નજરે લાગે છે, તમે શોધવા માટે આપની સમક્ષ જવા નથી વપરાશકર્તા તમે વધુ આપે છે જો તમે ખરેખર ઇચ્છતા કરતાં ઇનપુટ. તેથી આ એક ગર્ભિત સ્વરૂપ છે ભૂલ ચકાસણી છે. પરંતુ હું અહીં શું નોટિસ. એકવાર હું વપરાશકર્તા મને એક આપ્યો ખાતરી કરો કે છું પાત્ર, હું કરી લીટી મુક્ત getstring વિરુદ્ધની છે, કે જે વળાંક હું પાછા પછી malloc વાપરે છે, અને C1, હું આશા છે કે અક્ષર વપરાશકર્તા પૂરી પાડવામાં અને માત્ર પૂરી પાડી હતી. જેથી ઝડપી જ અસ્પષ્ટ છે, પરંતુ getchar પર કોઈ પ્રશ્ન? અમે અન્ય કેટલાક પાછા આવો પડશે. ઠીક છે, મને આગળ વધો અને આ કરવા દો - માત્ર ઉત્સાહિત કરવા માટે, હવે ધારવું અમારા એક સપ્તાહ વત્તા સમય ચર્ચા, તો આ structs.h નામની એક ફાઇલ છે. અને ફરીથી, આ માત્ર સ્વાદ છે, આગળ આવેલો છે કે જે કંઈક છે. પરંતુ નોટિસ કે ઘણો આ ટિપ્પણી છે. તેથી મને પ્રકાશિત દો માત્ર હવે માટે રસપ્રદ ભાગ છે. typedef - તે જ શબ્દ ફરીથી છે. typedef અમે શબ્દમાળા જાહેર કરવા ઉપયોગ ખાસ માહિતી પ્રકાર તરીકે. તમે એકદમ નવા બનાવવા માટે typedef ઉપયોગ કરી શકો છો જ્યારે અસ્તિત્વમાં નથી ડેટા પ્રકારો સી શોધ કરવામાં આવી હતી. હમણાં પૂરતું, Int સી ચાર સાથે આવે છે સી ડબલ સી સાથે આવે છે સાથે આવે છે, પરંતુ એક વિદ્યાર્થી કોઈ ખ્યાલ નથી. અને હજી સુધી તે માટે ખૂબ ઉપયોગી હશે સંગ્રહ કરે છે કે એક પ્રોગ્રામ લખવા માટે સમર્થ એક ચલ, એક વિદ્યાર્થી ID નંબર, તેમના નામ, અને તેમના મકાન છે. અન્ય શબ્દોમાં, ત્રણ ટુકડાઓ માહિતી, એક ઈન્ અને ગમે સ્ટ્રિંગ અને અન્ય સ્ટ્રિંગ. Typedef સાથે, શું ખૂબ શક્તિશાળી છે માટે આ અને કીવર્ડ sturct વિશે માળખું, તમે 2013 માં પ્રોગ્રામર, વાસ્તવમાં તમારા પોતાના વ્યાખ્યાયિત કરી શકો છો વર્ષ અસ્તિત્વમાં નથી ડેટા પ્રકારો પહેલાં પરંતુ તે તમારા હેતુ સંતોષવા. અને તેથી અહીં, 19 દ્વારા લાઇન 13, અમે, જેમ કે નવા માહિતી પ્રકાર જાહેર કરી રહ્યા છીએ એક Int, પરંતુ તે વિદ્યાર્થી ફોન. અને અંદર આ ચલની ચાલે છે એક Int, એક શબ્દમાળા - ત્રણ વસ્તુઓ હોઈ અને શબ્દમાળા. તેથી તમે ખરેખર શું છે તે વિચાર કરી શકો છો આ છે, છતાં પણ અહીં થયું એક આજે માટે એક સરળીકરણના બીટ, એક વિદ્યાર્થી અનિવાર્યપણે ચાલે છે આ જેમ દેખાય છે. તેના એક ભાગ હશે એક ID સાથે મેમરી, એક નામ ક્ષેત્ર, અને એક ઘર ક્ષેત્ર. અને અમે તે હિસ્સામાં ઉપયોગ સમક્ષ રજુ કરવાનો પ્રયત્ન કરીશું મેમરી અને તેમને ઍક્સેસ તરીકે અનુસરે છે. હું struct0.c જાય, તો અહીં છે પ્રમાણમાં લાંબા છે, પરંતુ બાદ કોડ ઓફ પેટર્ન, કે આ નવી યુક્તિ ઉપયોગ કરે છે. તેથી, પ્રથમ મને તમારા તરફ ધ્યાન દોરવા દો ઉપર રસપ્રદ ભાગો છે. સીધા વિદ્યાર્થીઓ 3 વ્યાખ્યાયિત કરે છે, જાહેર એક સતત કહેવાય વિદ્યાર્થીઓ અને સોંપે તે માત્ર આપખુદ નંબર 3, તેથી હું મદદથી ત્રણ વિદ્યાર્થીઓ છે હવે આ કાર્યક્રમ. અહીં મુખ્ય આવે છે. અને સૂચના, હું કેવી રીતે જાહેર નથી વિદ્યાર્થીઓ એક એરે? ઠીક છે, હું માત્ર એક જ વાક્યરચના વાપરે છે. આ શબ્દ વિદ્યાર્થી દેખીતી રીતે નવા છે. પરંતુ વિદ્યાર્થી, વર્ગ, કૌંસ વિદ્યાર્થીઓ. તેથી કમનસીબે ઘણો છે અહીં શબ્દો પુનઃઉપયોગ છે. આ માત્ર એક નંબર છે. તેથી આ ત્રણ કહીને જેવી છે. વર્ગ હું માંગો છો માત્ર શું છે જો ચલ કૉલ કરવા માટે. હું તે વિદ્યાર્થીઓ કૉલ કરી શકે છે. પરંતુ વર્ગ, આ એક વર્ગ છે ઑબ્જેક્ટ લક્ષી જાવા પ્રકારની માર્ગ છે. તે માત્ર વિદ્યાર્થીઓ એક વર્ગ છે. અને દરેક તત્વ ની માહિતી પ્રકાર કે એરેમાં વિદ્યાર્થી છે. તેથી આ થોડું અલગ છે અને કંઈક કહીને માંથી આ જેમ, તે માત્ર છે - હું મને ત્રણ વિદ્યાર્થીઓ આપવા કહી રહ્યો છું અને તે એરે વર્ગ કૉલ કરો. બધા અધિકાર. હવે અહીં ચાર લૂપ છે. આ વ્યક્તિ માતાનો પરિચિત - ફરી વળવું આ બોલ પર શૂન્ય ત્રણ. અને અહીં વાક્યરચના નવા ભાગ છે. આ કાર્યક્રમ, મને પૂછવા રહ્યું જો તે વિદ્યાર્થી આપવા માનવ, એક ઈન્ છે જે ને. અને અહીં તમે કરી શકો છો કે જેની સાથે વાક્યરચના છે ખાતે આઈડી ક્ષેત્ર માં કંઈક સંગ્રહ પાંચ આંકડાના US સ્થાન વર્ગ કૌંસ આઇ તેથી આ વાક્યરચના નવી નથી. આ માત્ર મને આઠમા આપવા અર્થ એ થાય વર્ગ માં વિદ્યાર્થી. પરંતુ આ પ્રતીક નવી છે. ઉપર હવે ત્યાં સુધી, અમે કોઈ ઉપયોગ નથી કરી શકો છો કર્યું આ જેમ ઓછામાં ઓછા માં કોડ. આ સાધન તરીકે ઓળખાય સ્ટ્રક્ટ પર જાઓ એક વિદ્યાર્થી અને ત્યાં કંઈક મૂકો. એ જ રીતે, આ આગામી લાઇન, 31, જાઓ આગળ અને મૂકવામાં ગમે તે વપરાશકર્તા પ્રકારો અહીં એક નામ માટે અને શું તેઓ માટે શું ઘર, આ જ વસ્તુ, આગળ વધો અને . ઘરમાં મૂકી. તેથી આ કાર્યક્રમ શું કરે છે આખરે શું? તમે ત્યાં થોડી સતામણી જોઈ શકો છો. મને આગળ વધો અને સ્ટ્ર્ક્ટ્સ 0 બનાવવા દો કોઈ સ્લેશ સ્ટ્રક્ટ 0, વિદ્યાર્થી ID ને 1, ડેવિડ માથેર, વિદ્યાર્થી આઈડી 2 કહે છે. રોબ કિર્કલૅંડ, વિદ્યાર્થી આઈડી 3. લોરેન Leverit - અને આ કાર્યક્રમ હતી જ વસ્તુ, છે, કે જે માત્ર સંપૂર્ણપણે મનસ્વી છે હું આ માહિતી સાથે કંઈક કરું તેવું ઇચ્છતાં હું કેવી રીતે અમને શીખવવામાં કર્યું હવે તે સ્ટ્ર્ક્ટ્સ ઉપયોગ, હું હમણાં જ હતી છે અહીં આ વધારાની લૂપ. હું વિદ્યાર્થીઓ એરે પર ફરી વળવું. હું અમારા છે, કદાચ હવે પરિચિત મિત્ર ઉપયોગ શબ્દમાળાને, stircomp તુલના ચેક 8 વિદ્યાર્થી ઘર છે માથેર બરાબર? અને તેથી જો, માત્ર કંઈક છાપવા આપખુદ માંગો, હા, છે. પરંતુ ફરીથી, ફક્ત મારા તકો આપવી અને ઉપયોગ અને ફરી ઉપયોગ કરવા આ નવા કોઈ સંકેત પુનઃઉપયોગ. તેથી જે અધિકાર, ધ્યાન આપતા? એક વિદ્યાર્થી કાર્યક્રમ સાથે આવે છે કંઈક મનસ્વી, પરંતુ તે બહાર વળે અમે સાથે ઉપયોગી વસ્તુઓ કરી શકો છો કે જે આ ઉદાહરણ તરીકે અનુસરે છે. આ એક વધુ જટિલ સ્ટ્રક્ટ છે સી માં તે એક ડઝન અથવા વધુ ક્ષેત્રોમાં ગોટ કંઈક અંશે રહસ્યમય નામ આપ્યું હતું. પરંતુ તમે ક્યારેય ગ્રાફિક્સ સાંભળ્યું હોય તો બીટમેપ કહેવાય ફાઇલ ફોર્મેટ, BMP, તે બહાર વળે કે બીટમેપ ફાઇલ ફોર્મેટ ખૂબ ખૂબ કે આ જેમ દેખાય છે. જો તે મૂર્ખ થોડી હસતો ચહેરો છે. તે હું ઝૂમ કરેલું છે તે નાના છબી છે ખૂબ મોટા પર હું દરેક જોઈ શકે છે કે જેથી વ્યક્તિગત બિંદુઓ કે પિક્સેલ. અમે પ્રતિનિધિત્વ કરી શકે છે હવે, તે વળે સંખ્યા 0, કહે છે, સાથે કાળા પર કોઈ. નંબર 1 અને સફેદ ટપકું. તેથી અન્ય શબ્દોમાં, તમે ઇચ્છો તો એક ડ્રો હસતો ચહેરો અને તે છબી સાચવો કોમ્પ્યુટર, તે zeros સંગ્રહ અને કરવા માટે પૂરતા આના જેવો કે રાશિઓ છે, જ્યાં, ફરીથી, રાશિઓ સફેદ હોય છે અને zeros કાળા છે. અને સાથે, તમે અસરકારક રીતે હોય તો રાશિઓ અને zeros ઓફ સજવું એક, તમે છે પિક્સેલ ગ્રીડ, અને તમે મૂકે તો તેમને બહાર, તમે પહોંચેલું છે થોડી હસતો ચહેરો. હવે, બીટમેપ ફાઇલ ફોર્મેટ, BMP છે અસરકારક રીતે કે હૂડ નીચે, પરંતુ વધુ પિક્સેલ્સ sot સાથે તમે વાસ્તવમાં રંગો પ્રતિનિધિત્વ કરી શકે છે. પરંતુ તમે વધુ આધુનિક હોય ત્યારે BMP અને JPEG, GIF અને જેમ ફાઈલ બંધારણો જેની સાથે તમે, તે પરિચિત હોઈ શકે છે ડિસ્ક પર ફાઈલો સામાન્ય રીતે માત્ર zeros અને પિક્સેલ માટે રાશિઓ હોય છે, પરંતુ તેઓ તેમજ કેટલાક મેટાડેટા છે - ખરેખર નથી કે અર્થમાં મેટા માહિતી પરંતુ તે ઉપયોગી છે. તેથી અહીં આ ક્ષેત્રો, જેનો અર્થ થાય છે અને અમે પી સેટ વધુ વિગતવાર આ જોશો 5, કે zeros અને રાશિઓ તે પહેલાં એક છબીમાં પિક્સેલ્સ પ્રતિનિધિત્વ મેટાડેટા એક ટોળું જેમ છે આ ઇમેજ માપ અને છબી પહોળાઈ. અને હું કેટલાક બંધ રહ્યો plucking નોટિસ અહીં મનસ્વી વસ્તુઓ - પહોળાઈ અને ઊંચાઈ. બીટ સભ્યપદ અને કેટલાક અન્ય વસ્તુઓ. તેથી ફાઇલ કેટલાક મેટાડેટા છે. પરંતુ ફાઈલોને નાખ્યો છે તે સમજવામાં દ્વારા આ રીતે આઉટ, તમે ખરેખર આ કરી શકો છો પછી છબીઓ ચાલાકી, છબીઓ પુનઃપ્રાપ્ત ડિસ્કમાંથી, છબીઓ માપ બદલો. પરંતુ તમે તે જરૂરી નથી કરી શકો છો તેમને વધારે છે. હું એક ફોટોગ્રાફ જરૂર છે. તેથી હું તમને જોયું, જે અહીં આરજે પાછા ગયા અમુક સમય પહેલા સ્ક્રીન પર. હું અહીં કીનોટ ખોલો, તો આ છે શું તમે ઝૂમ કરવાનો પ્રયાસ કરો તો શું થાય અને આરજે વધારે છે. કુલ ખરેખર કોઇ વધુ સારી રીતે મળતી નથી. હવે કીનોટ જો તે છેડછાડ પ્રકારની છે થોડુંક, માત્ર ઉપર ચળકાટ માટે આરજે ખાસ કરીને વિચાર નથી કે હકીકત તમે સાઇન ઝૂમ જ્યારે ઉન્નત અને તે આ રીતે કરો તો, જો ચોરસ જુઓ? અરે વાહ, તમે ચોક્કસપણે જોઈ શકો છો એક પ્રોજેક્ટર પર સ્ક્વેર. કે તમે વધારવા જ્યારે તમે વિચાર શું છે. પરંતુ સમજણ કેવી રીતે અમારા આરજે અથવા હસતો ચહેરો અમલમાં મૂકાયેલ છે અમને જણાવો કરશે વાસ્તવમાં ચાલવે કે કોડ કે જે લખવા આ બધી વસ્તુઓ. અને હું, હું આ નોંધ પર સમાપ્ત હો વિચાર્યું એક 55 સેકન્ડ, કે વધારવા હું બદલે ગેરમાર્ગે કહે છે, હિંમત. [વિડિઓ પ્લેબેક] -કુલ બોલતી છે. શું વિશે, મને ખબર નથી. જેથી અમે શું ખબર નથી? છે કે 9:15 રે Santoya ખાતે આ એટીએમ હતો. જેથી પ્રશ્ન શું છે કુલ 9:16 ખાતે કરી હતી? -શૂટીંગ નવ મિલિમીટરની કંઈક છે. કદાચ તેઓ આ સ્નાઈપર જોયું. અથવા તેમની સાથે કામ કરતા હતા. -પ્રતીક્ષા. એક પાછા જાઓ. -શું તમે જુઓ છો? , સંપૂર્ણ સ્ક્રીન તેમના ચહેરા અપ લાવો. -તેમના ચશ્મા. -ત્યાં એક પ્રતિબિંબ છે. , જે Neuvitas બેઝબોલ ટીમ છે. કે તેમના લોગો છે. અને તેઓ છે રહેલી વ્યકિત સાથે વાત છે કે જેકેટ પહેર્યા. [END વિડિઓ પ્લેબેક] ડેવિડ જે MALAN: આ ચાલશે સમસ્યા સમૂહ 5 છે. અમે આગામી સપ્તાહમાં તમે જોશો. MALE સ્પીકર: આગામી CS50 મુ. [તમરાઓ CHIRPING] [સંગીત વગાડવાનો]