[સંગીત વગાડવાનો] [વિડિઓ પ્લેબેક] -કુલ બોલતી છે. -શેના વિષે? -મને ખબર નથી. અમે શું ખબર નથી -તેથી? 9:15, રે પર એટલે Santoya આ એટીએમ હતો. અરે વાહ. તેથી પ્રશ્ન શું છે તેમણે 9:16 ખાતે કરી હતી? કંઈક ખાતે 9 મિલિમીટરની -Shooting. કદાચ તેઓ આ સ્નાઈપર જોયું. -OR તેની સાથે કામ કરતો હતો. -Wait. પાછા એક જાઓ. -શું તમે જુઓ છો? સંપૂર્ણ સ્ક્રીન તેમના ચહેરા લાવો. -His ચશ્મા. -ત્યાં એક પ્રતિબિંબ છે. ઇટ Nuevitas બેઝબોલ ટીમ છે. કે તેમના લોગો છે. અને તેઓ સાથે વાત છે રહેલી વ્યકિત કે જેકેટ પહેર્યા છે. [સમાપ્ત પ્લેબેક] ડેવીડના MALAN: બધા અધિકાર. આ CS50 છે અને આ એક બીટ વધુ છે ના [અશ્રાવ્ય] જેની સાથે તમે છો સમસ્યા સાથે છીછરા ચાર સુયોજિત કરો. આજે આપણે થોડી વધુ જોવા માટે શરૂ કરો ઊંડે પોઇન્ટર કહેવાય આ વસ્તુઓ, તે છતાં પણ જે એક સુંદર Arcane વિષય, તે ચાલી રહ્યું છે કે બહાર વળે આ સાધન બની કે જેના દ્વારા અમે મકાન અને એસેમ્બલ શરૂ કરી શકો છો વધુ આધુનિક કાર્યક્રમો. પરંતુ અમે છેલ્લા બુધવારે પર હતી પ્રથમ કેટલાક ક્લેમેશન માર્ગ દ્વારા. તેથી આ રિકોલ છે Binky અને અમે તેને ઉપયોગ એક કાર્યક્રમ પર એક નજર કે ખરેખર કંઈપણ રસપ્રદ ન હતી, પરંતુ તે થોડા સમસ્યાઓ ઉઘાડી હતી. તેથી શા માટે અમે જવામાં નથી, આજે શરૂ કરવા માટે ઝડપથી આ પગલાંઓ થોડા મારફતે, માનવ શરતો distill કરવાનો પ્રયાસ બરાબર શું રહ્યું છે તે અહીં અને શા માટે આ ખરાબ છે, અને પછી પર ખસેડો અને ખરેખર કંઈક નિર્માણ શરૂ આ ટેકનિક સાથે? તેથી આ પ્રથમ હતા આ કાર્યક્રમ બે લીટીઓ અને સામાન્ય માણસ દ્રષ્ટિએ, શું આ બે લીટીઓ કરી રહ્યા છે? વ્યાજબી આરામદાયક છે જે કોઈને શું સ્ક્રીન પર જાહેર કરવામાં આવ્યું છે સાથે? કરી આ બે લીટીઓ શું છે? તે બધા નથી કે સપ્તાહ એક અલગ, પરંતુ કેટલાક નવા ખાસ પ્રતીક છે. અરે વાહ? ત્યાં પાછા. પ્રેક્ષક: પોઇંટરો જાહેર? ડેવીડના MALAN: ફરીથી કહો? પ્રેક્ષક: પોઇંટરો જાહેર? ડેવીડના MALAN: જાહેર પોઇંટરો અને માતાનો એક થોડુંક વધુ રિફાઇન દો. AUDIENCE: [અશ્રાવ્ય] સરનામું એક્સ અને વાય પછી. ડેવીડના MALAN: અને પછી સંબોધવા. તેથી ખાસ અમે શું કરી રહ્યાં છો અમે બે ચલો જાહેર કરવામાં આવે છે. આ ચલો, જોકે, જવું છે પ્રકાર પૂર્ણાંક સ્ટાર છે, હોઈ જે વધુ ખાસ અર્થ થાય છે તેઓ સંગ્રહવા માટે જતા હોય છે પૂર્ણાંક સરનામું, અનુક્રમે, એક્સ અને વાય. હવે કોઈ મૂલ્ય છે? આ કોઈપણ વાસ્તવિક સરનામાં આપવામાં આવ્યાં છે સમય આ બિંદુએ બે ચલો? નંબર તે માત્ર કચરો કિંમતો જેથી-કહેવાય છે. તમે ખરેખર ફાળવશો નહી તો રેમ હતી ગમે ચલ, અગાઉ zeros સાથે ભરો રહ્યું છે અને મુદ્દાઓ તે ચલો બંને. પરંતુ અમે હજુ સુધી ખબર નથી શું તેઓ હોય છે અને તે છે શા માટે Binky કી હોઈ ચાલે છેલ્લા અઠવાડિયે તેના માથા ગુમાવી હતી. તેથી આ ક્લેમેશન હતી આ અવતાર જેમાં તમે માત્ર બે ચલો હોય છે, માટી થોડી પરિપત્ર ટુકડાઓ, કે ચલો સંગ્રહ છે, પરંતુ કરી શકો છો આ આવરિત તીર સૂચવે છે, તેઓ ખરેખર પોઇન્ટ કરી રહ્યાં છો ગમે ત્યાં સે દીઠ ઓળખાય છે. તેથી તો અમે આ વાક્ય હતી, અને આ મેમરી માટે હતી નવા છેલ્લા અઠવાડિયે, malloc માત્ર એક ફેન્સી માર્ગ છે જે ફાળવણી, ઓપરેટિંગ સિસ્ટમ કહેવાની Linux ની અથવા મેક ઓએસ અથવા Windows, અરે, મને અમુક મેમરી આપે છે, અને તમારી પાસે બધા કહેવું ઓપરેટિંગ સિસ્ટમ મેમરી માટે પૂછતી ત્યારે તે છે. તે શું કાળજી નથી ચાલી રહ્યું છે તમે તેની સાથે કરવા જઇ રહ્યા છો પરંતુ જો તમે ઓપરેટિંગ કહેવું જરૂર નથી શું malloc માર્ગ દ્વારા સિસ્ટમ. અરે વાહ? પ્રેક્ષક: કેટલી? ડેવીડના MALAN: કેટલી? કેટલી બાઇટ્સ, અને તેથી, આ, ફરીથી, એક contrived ઉદાહરણ તરીકે, માત્ર કહે છે કે, મને પૂર્ણાંક માપ આપે છે. પૂર્ણાંક હવે, કદ ચાર બાઇટ્સ અથવા 32 બિટ્સ છે. તેથી આ માત્ર એક રસ્તો છે કહે છે કે, અરે, ઓપરેટિંગ સિસ્ટમ, મને મેમરી ચાર બાઇટ્સ આપી હું મારા આગળના ઉપયોગ કરી શકો છો, અને ખાસ કરીને, શું કરે છે આદર સાથે malloc પાછા ચાર બાઇટ્સ કે ચંકને માટે? પ્રેક્ષક: સરનામું? ડેવીડના MALAN: આ સરનામું. ચાર બાઇટ્સ કે ચંકને ઓફ સરનામું. ચોક્કસ. અને જેથી આખરે સંગ્રહિત છે તે છે અમે ખરેખર નથી શા માટે એક્સ અને તે છે કાળજી કે શું સંખ્યા તે ox1 અથવા ox2 શું સરનામું છે અથવા અમુક ભેદી હેક્સાડેસિમલ સરનામું. અમે હમણાં જ pictorially કાળજી કે ચલ x હવે છે મેમરી કે ભાગ તરફ ઇશારો. જેથી તીર નિર્દેશક રજૂ કરે છે, અથવા વધુ ખાસ રીતે, એક મેમરી સરનામું. પરંતુ ફરીથી, અમે સામાન્ય રીતે કાળજી નથી તે વાસ્તવિક સરનામાં શું છે. હવે, આ વાક્ય કહે છે શું સામાન્ય માણસ દ્રષ્ટિએ? સ્ટાર એક્સ 42 અર્ધવિરામ નહીં. આ શું અર્થ છે? તમે જાઓ wanna? તમારી ગરદન ખંજવાળી નથી. પ્રેક્ષક: x ની સરનામું 42 છે. ડેવીડના MALAN: x ની સરનામું 42 છે. તદ્દન નથી. તેથી બંધ નથી, પરંતુ તદ્દન ત્યાં છે, કારણ કે આ એક્સ prefixing છે કે સ્ટાર. તેથી અમે થોડી ઝટકો જરૂર છે. અરે વાહ? પ્રેક્ષક: કિંમત કે નિર્દેશક એક્સ 42 પોઇન્ટ છે. ડેવીડના MALAN: બરાબર. નિર્દેશક કે જે x કિંમત 42 હોઈ છે, ચાલો કહે દો રહેશે પોઇન્ટ, અથવા, તારો બીજી રીતે મૂકી X ગમે સરનામા પર જાઓ, કહે છે તે 1 ઓક્સફર્ડ, શું એક્સ છે સ્ટ્રીટ અથવા 33 ઓક્સફર્ડ સ્ટ્રીટ અથવા ox1 અથવા ox33, ગમે , આંકડાકીય સરનામું છે જે સ્ટાર એક્સ x ની dereferencing છે. તેથી તે સરનામા પર જાઓ અને પછી ત્યાં 42 નંબર મૂકો. તેથી તે હશે એક કહે છે કે સમકક્ષ રીતે. તેથી તે બધા દંડ અને પછી અમે ચિત્ર પ્રતિનિધિત્વ કરશે નીચે પ્રમાણે અમે ઉમેર્યા છે જ્યાં ચાર કે ભાગ માટે 42 , જમણી બાજુ પર બાઇટ્સ પરંતુ વસ્તુઓ અવળું થયું છે આ વાક્ય હતું અને માતાનો Binky વડા પોપ આ બિંદુએ બોલ ખરાબ વસ્તુઓ થાય છે જ્યારે કારણ કે તમે કચરો કિંમતો ખોટો સંદર્ભ અમાન્ય ખોટો સંદર્ભ તમે અથવા પોઇન્ટર, અને હું અમાન્ય કહે કારણ કે આ બિંદુએ વાર્તા, વાય ની અંદર શું છે? આધારિત વાય ની કિંમત શું છે છેલ્લા થોડા પગલાંઓ પર? અરે વાહ? તે શું છે? પ્રેક્ષક: એક સરનામું. ડેવીડના MALAN: એક સરનામું. તે સરનામું હોવું જોઈએ પરંતુ હું તે આરંભ છે? તેથી હું હજી સુધી ન હોય. તેથી ત્યાં હોઈ શું ઓળખાય છે? તે માત્ર કેટલાક કચરો કિંમત છે. તે શૂન્ય થી કોઇ સરનામું, પોસ્ટ કરી શકે 2 અબજ તમે RAM ની બે શોના હોય તો, અથવા શૂન્ય અબજ 4 તમે કરેલા જો RAM ની ચાર ગીગાબાઇટ્સ મળી. તે કેટલાક કચરો કિંમત છે પરંતુ શું સમસ્યા છે ઓપરેટિંગ સિસ્ટમ છે, તો તમને આપવામાં ન હોય તો મેમરી કે ભાગ ખાસ તમે જવા માટે પ્રયાસ કરી રહ્યાં છો કે જે, તે સામાન્ય રીતે શું કારણ રહ્યું છે અમે એક segmentation fault તરીકે જોઇ છે. તેથી હકીકતમાં, તમે કોઇ પણ ધરાવતા ઓફિસ કલાકો સમસ્યાઓ પર સંઘર્ષ અથવા સમસ્યાઓ કે જે વધુ છે સામાન્ય રીતે બહાર આકૃતિ કરવાનો પ્રયાસ સાથે સેગ્મેન્ટેશન ક્ષતિમાં, તે સામાન્ય અર્થ થાય છે તમે એક સેગમેન્ટ સ્પર્શ કરી રહ્યાં છો તમે ન હોવી જોઈએ કે મેમરી. તમે મેમરી સ્પર્શ કરી રહ્યાં છો કે ઓપરેટિંગ સિસ્ટમ નથી તે શું તમે સ્પર્શ કરવાની પરવાનગી તમારા એરે માં ખૂબ દૂર જઈને અથવા, શું હવે શરૂ તમે સ્પર્શ કરી રહ્યાં છો કારણ કે માત્ર કેટલાક કચરો કિંમત છે કે મેમરી. તેથી અહીં સ્ટાર એક્સ કરી છે અવ્યાખ્યાયિત વર્તન જેવું. તમે તેને મતભેદ છે કારણ કે ક્યારેય કરવું જોઈએ આ કાર્યક્રમ માત્ર તૂટી રહ્યું છે છે, તમે કહી રહ્યાં છે કે, આ સરનામા પર જાઓ અને તમે કોઈ વિચાર જ્યાં છે તે સરનામું ખરેખર છે. તેથી ઓપરેટિંગ સિસ્ટમ શક્યતા છે તમારા કાર્યક્રમ તૂટી રહ્યું પરિણામે અને ખરેખર, કે છે શું Binky ત્યાં થયું. તેથી છેવટે, Binky નિશ્ચિત આ સાથે આ સમસ્યા નથી. કે કાર્યક્રમ જેથી પોતે અપૂર્ણ હતો. પરંતુ તમે સૉર્ટ આગળ બનાવટ તો અને તેને બદલે આ વાક્ય ચલાવવા, વાય માત્ર એક્સ બરાબર અર્થ એ થાય ગમે સરનામું એક એક્સ છે, પણ વાય માં મૂકેલ છે. અને તેથી pictorially, અમે કર્યું બે તીર સાથે આ રજૂ X અને વાય પોઇન્ટ થી તે જ સ્થળે. તેથી અર્થનિર્ધારણ, એક્સ સમાન છે વાય તે બંને કારણ કે એ જ સંગ્રહિત કરવામાં આવે છે સરનામું લીધે, 42 પોઇન્ટ અને હવે, જ્યારે તમે સ્ટાર કહે છે વાય, વાય માં સરનામા પર જાઓ આ એક રસપ્રદ આડ અસર છે. તેથી વાય માં સરનામું X માં સરનામા તરીકે જ વસ્તુ. તેથી જો તમે સરનામા માટે જવા કહે છે અને વાય 13 કિંમત ને બદલવા, જે બીજા અસર થઈ છે? એક્સ, બિંદુ D, તેથી વાત કરવા માટે છે તેમજ અસર જોઇએ. અને ખરેખર, કેવી રીતે નિક આ ચિત્ર દોર્યું ક્લેમેશન બરાબર હતી. અમે નિર્દેશક અનુસરો, તેમ છતાં વાય, અમે એ જ જગ્યાએ અંત અને તેથી અમે છાપો કરવામાં આવે તો એક્સ અથવા વાય માતાનો pointee બહાર, પછી અમે 13 ની કિંમત જોઈ શકે છે. હવે, હું pointee હોઈ કહે આ વિડિઓ સાથે સુસંગત. પ્રોગ્રામર્સ, મારા જ્ઞાન, ખરેખર ક્યારેય શબ્દ pointee કહે છે, પોઇન્ટેડ છે કે જે છે, પરંતુ સુસંગતતા માટે આ વિડિઓ સાથે ખ્યાલ કે હતી તે બધા છે તે પરિસ્થિતિમાં થતો હતો. ક્લેમેશન પર તેથી કોઇ પ્રશ્નો અથવા પોઇન્ટર અથવા malloc હજી સુધી? કોઈ? બધા અધિકાર. જેથી વધુ વગર ધમાલ, માતાનો એક નજર કરીએ આ ખરેખર છે જ્યાં કેટલાક સમય માટે ઉપયોગ કરવામાં આવે. તેથી અમે આ CS50 પુસ્તકાલય પડ્યું કે આ તમામ કાર્યોને મળ્યું છે. અમે, GetInt GetString ઘણો ઉપયોગ કર્યો કદાચ અગાઉ GetLongLong મારા pset એક અથવા તેથી, પરંતુ ખરેખર શું થઈ રહ્યું કરવામાં આવી છે? વેલ, એક ઝડપી નજર કરીએ એક કાર્યક્રમમાં હૂડ નીચે કે અમે તમને આ CS50 આપે શા માટે પ્રેરણા લાઇબ્રેરી છે, અને ખરેખર છેલ્લા અઠવાડિયે તરીકે, અમે તે લેવા શરૂ તાલીમ વ્હીલ્સ બંધ. તેથી હવે આ છટણી કરવામાં આવે છે એક પોસ્ટમોર્ટમ શું છે ચાલુ કરવામાં આવી CS50 પુસ્તકાલય અંદર, આપણે હવે ખસેડવાની શરૂ કરશે, તેમ છતાં તેને દૂર મોટા ભાગના કાર્યક્રમો માટે. તેથી આ 0 scanf કહેવાય કાર્યક્રમ છે. તે સુપર ટૂંકા છે. તે માત્ર આ રેખાઓ છે, પરંતુ તે એક કાર્ય કહેવાય scanf પરિચય અમે ખરેખર જોવા માટે જઈ રહ્યાં છો કે CS50 પુસ્તકાલય ની અંદર એક ક્ષણ, થોડા અલગ સ્વરૂપમાં યદ્યપિ. વાક્ય પર 16 તેથી આ કાર્યક્રમ એક ચલ x જાહેર કરવામાં આવે છે. તેથી મને પૂર્ણાંક માટે ચાર બાઇટ્સ આપે છે. તે વપરાશકર્તા કહેવાની કરવામાં આવી છે નંબર કૃપા કરીને, અને પછી આ એક રસપ્રદ વાક્ય છે કે ખરેખર છેલ્લા અઠવાડિયે મળીને જોડાણ અને આ. Scanf, અને પછી તે એક લે નોટિસ ફોર્મેટ સ્ટ્રિંગ, માત્ર printf જેમ, % હું પૂર્ણાંક અર્થ થાય છે, અને પછી તે લે છે થોડી લાગે છે, જે બીજી દલીલ ફંકી. તે 'ચિન્હ એક્સ, અને યાદ કરવા માટે, અમે માત્ર આ એક વાર ગયા સપ્તાહે જોયું. નું ચિહ્ન એક્સ શું પ્રતિનિધિત્વ કરે છે? નું ચિહ્ન સી શું કરે છે? અરે વાહ? પ્રેક્ષક: આ સરનામું. ડેવીડના MALAN: આ સરનામું. તેથી તે વિપરીત છે સ્ટાર ઓપરેટર, તારો ઓપરેટર કહે છે, જ્યારે પર જાઓ આ સરનામું ચિન્હ ઓપરેટર બહાર આકૃતિ, કહે છે આ ચલ સરનામું, અને તેથી આ છે, કારણ કે કી છે જીવનમાં scanf હેતુ વપરાશકર્તાની સ્કેન કરવા માટે છે કીબોર્ડ તરફથી ઇનપુટ, ગમે પર આધાર રાખીને તે અથવા તેણી પ્રકારો, અને પછી તે વપરાશકર્તાની ઇનપુટ વાંચો એક ચલ માં છે, પરંતુ અમે છેલ્લા બે અઠવાડિયામાં જોયું કે સ્વેપ કાર્ય કે અમે અમલ કરવા માટે વિના પ્રયાસે પ્રયાસ કર્યો માત્ર ભાંગી હતી. સ્વેપ કાર્ય સાથે જણાવ્યું હતું કે, અમે ફક્ત ints તરીકે A અને B જાહેર, તો અમે સફળતાપૂર્વક સ્વેપ હતી સ્વેપ ની અંદર બે ચલો માત્ર દૂધ અને OJ સાથે ગમે, પરંતુ સ્વેપ પરત જલદી આદર સાથે એનું શું પરિણામ આવ્યું એક્સ અને વાય માટે, મૂળ કિંમતો? કંઈ નથી. યાહ. કંઈ કારણ કે સમય થયું અદલબદલ, માત્ર તેના સ્થાનિક નકલો બદલવા બધા કહે છે કે જે આ જ સમયે, જ્યારે અમે કર્યું દલીલો માં પસાર કરવામાં કાર્યો કરવા માટે, અમે છો માત્ર તે દલીલો નકલો પસાર. તમે તે સાથે કરી શકો છો તમે તેમની સાથે જે કરવા માંગો છો, પરંતુ તેઓ કોઈ હોય રહ્યા છીએ મૂળ કિંમતો પર અસર. તેથી આ જો તમે સમસ્યારૂપ છે scanf જેમ કાર્ય છે કરવા માંગો છો જીવન માં જેની હેતુ સ્કેન કરવા માટે છે કીબોર્ડ વપરાશકર્તાની ઇનપુટ અને પછી, જેથી બ્લેન્ક ભરો વાત છે, કે જે, એક્સ જેવી ચલ આપી નીચેની હું હતા કારણ કે જો માત્ર scanf માટે એક્સ પસાર કરવા માટે, તમે છેલ્લા તર્ક ધ્યાનમાં જો સપ્તાહ, scanf તે ઇચ્છે ગમે તે કરી શકે X ની નકલ સાથે, પરંતુ તે ન કરી શકે અમે આપી જ્યાં સુધી કાયમ એક્સ બદલી , તેથી વાત કરવા માટે, એક ખજાનો નકશો scanf X હાજર કરે છે, જ્યાં જેમાં અમે તેથી x ની સરનામું પાસ scanf ત્યાં અને ખરેખર ફેરફાર જઈ શકે છે x ની કિંમત. અને તેથી ખરેખર, બધા આ કાર્યક્રમ કરે છે હું મારા સ્ત્રોત scanf 0 કરો તો 5m ડિરેક્ટરી, scanf 0 બનાવે છે, કોઈ scanf સ્લેશ, નંબર 50, કૃપા કરીને 50 માટે આભાર. તેથી તે છે કે જે બધી રસપ્રદ નથી પરંતુ ખરેખર શું થઈ રહ્યું છે જલદી હું કૉલ છે અહીં x ની કિંમત scanf કાયમી બદલાઈ રહી છે. હવે, આ સરસ લાગે છે અને સારા, અને હકીકતમાં, તે અમે ખરેખર જરૂર નથી જેવી લાગે છે બધા હવે અંતે આ CS50 પુસ્તકાલય. હમણાં પૂરતું, માતાનો ચલાવો અહીં આ વધુ એક વખત. મને એક બીજા માટે તે ફરી શરૂ કરીએ. ચાલો એક નંબર પ્રયાસ કરીએ કરો અને તેના બદલે પહેલાં જેવી 50 કહેતા, આપણે માત્ર કોઈ કહે દો. ઠીક છે, કે થોડો વિચિત્ર છે. ઠીક છે. અહીં અને માત્ર કેટલાક નોનસેન્સ. તેથી તે લાગતું નથી ભૂલભરેલા પરિસ્થિતિ હાથ ધરે છે. તેથી અમે શરૂઆત ઓછા કરવાની જરૂર છે કેટલાક ભૂલ ચકાસણી ઉમેરી રહ્યા છે વપરાશકર્તા છે તેની ખાતરી કરવા માટે 50 જેમ એક વાસ્તવિક નંબર લખ્યો, દેખીતી રીતે લખીને શબ્દો કારણ કે સમસ્યાવાળા તરીકે શોધી નથી, પરંતુ તે કદાચ પ્રયત્ન કરીશું. હવે તે છે આ આવૃત્તિ જુઓ મારા પ્રયાસ GetString reimplement છે. Scanf આ છે તો વિધેય માં બાંધવામાં શા માટે આપણે આ સાથે છીછરા કરવામાં આવી છે GetString જેવા તાલીમ વ્હીલ્સ? ઠીક છે, અહીં કદાચ મારી પોતાની છે GetString સરળ આવૃત્તિ જેમાં એક સપ્તાહ પહેલાં, હું જણાવ્યું હતું કે હોઈ શકે છે, મને શબ્દમાળા આપે છે અને તે બફર કૉલ કરો. આજે, હું હમણાં જ શરૂ જાઉં છું , ચાર સ્ટાર છે, કે જે, સ્મૃતિ કહે છે તે માત્ર પર્યાય છે. તે scarier લાગે છે પરંતુ તે છે ચોક્કસ જ વસ્તુ. તેથી મને એક ચલ કહેવાય બફર આપી કે શબ્દમાળા સ્ટોર ચાલી રહ્યું છે, , વપરાશકર્તા શબ્દમાળા કૃપા કરીને કહી અને પછી, ફક્ત પહેલા જેવી, ચાલો આ પાઠ ઉધાર પ્રયાસ કરીએ scanf % S આ સમય અને પછી બફર પાસ. હવે, ઝડપી સેનીટી તપાસો. હું શા માટે નથી કહેતા છું નું ચિહ્ન આ સમય બફર? અગાઉના ઉદાહરણ પરથી અનુમાન દોરવું. પ્રેક્ષક: ચાર સ્ટાર નિર્દેશક છે. ડેવીડના MALAN: બરાબર છે, આ જ સમયે, ઘરનાં પરચૂરણ કામો, કારણ કે સ્ટાર, પહેલેથી જ એક નિર્દેશક, એક સરનામું છે ત્યાં છે કે સ્ટાર ઓફ વ્યાખ્યા દ્વારા. અને scanf એક સરનામું અપેક્ષા તો, તે માત્ર બફર પાસ પૂરતા છે. હું 'ચિન્હ બફર કહે જરૂર નથી. વિચિત્ર માટે, તમે કરી શકે આ કંઈક આવું. તેને અલગ અલગ અર્થ હોય છે. આ તમે એક નિર્દેશક આપશે ખરેખર છે કે જે નિર્દેશક માટે સી, પરંતુ માટે માન્ય વસ્તુ હવે, ચાલો તેને સરળ રાખવા દો અને સતત વાર્તા રાખો. હું માત્ર પાસ જાઉં છું બફર અને તે સાચું છે. છતાં આ સમસ્યા આ છે. મને આગળ વધો અને આ ચલાવો તે સંકલન પછી કાર્યક્રમ. Scanf 1 બનાવો. ખરેખર તે મારા કમ્પાઇલર મારી ભૂલ મોહક. મને એક બીજા આપો. રણકાર. માતાનો scanf-1.c કહે છે. ઠીક છે. ત્યાં અમે જાઓ. મારે તેની જરૂર છે. CS50 આઈડી વિવિધ છે રૂપરેખાંકન સેટિંગ્સ કે પોતાને સામે રક્ષણ આપે છે. હું તે નિષ્ક્રિય કરવા માટે જરૂરી જાતે જ આ સમય રણકાર ચાલી રહ્યું છે. તેથી શબ્દમાળા કરો. હું આગળ જાઓ અને લખો જાઉં છું મારો મનપસંદ હેલો વિશ્વમાં. નલ, બરાબર. કે હું શું લખ્યો નથી. તેથી તે સૂચક છે કંઈક ખોટું છે. મને આગળ વધો અને લખો ખરેખર લાંબા શબ્દમાળા માં. નલ માટે આભાર અને મને ખબર નથી જો હું તે ભાંગી સમક્ષ રજુ કરવાનો પ્રયત્ન કરવા માટે જઇ રહ્યો છું. માતાનો થોડી નકલ કરવાનો પ્રયાસ કરો પેસ્ટ કરો અને આ મદદ કરે છે તો જુઓ. માત્ર આ એક ઘણો પેસ્ટ કરો. તે ચોક્કસપણે એક મોટી છે સામાન્ય કરતાં શબ્દમાળા. ચાલો ખરેખર તે લખવા દો. નંબર તે ખરેખર ખૂબ જ. આદેશ મળ્યો નથી. જેથી બિનસંબંધિત છે. હું પેસ્ટ કારણ કે કેટલાક ખરાબ અક્ષરો, પરંતુ આ બહાર વળે કામ કરવા માટે નથી જતા હોય છે. કારણ કે, ચાલો આ વધુ એક વખત પ્રયાસ કરીએ અમે ખરેખર તે ભાંગી તો તે વધુ મજા છે. ચાલો આ લખો અને હવે, હું છું ખરેખર લાંબા શબ્દમાળા નકલ કરવા જઈ અને હવે તો તે જોવા દો અમે આ વસ્તુ ભાંગી શકે છે. હું જગ્યાઓ અવગણવામાં અને નોટિસ નવી લાઇન અને અર્ધવિરામ અને તમામ ફંકી અક્ષરો. દાખલ કરો. અને હવે નેટવર્ક ધીમા આવી રહી છે. હું સ્પષ્ટ રીતે, ખૂબ લાંબા આદેશ V એ નીચે યોજાઇ હતી. તે ખરેખર ખૂબ જ! આદેશ મળ્યો નથી. ઠીક છે. વેલ, આ બિંદુ છે તેમ છતાં નીચેની. તેથી ખરેખર શું ચાલી રહ્યું છે આ જાહેરાત સાથે રેખા 16 પર ઘરનાં પરચૂરણ કામો સ્ટાર બફર? તેથી હું મેળવવામાં તે છું હું એક નિર્દેશક જાહેર કરે છે ત્યારે? હું મેળવવામાં છું બધા ચાર બાઇટ કિંમત છે બફર કહેવાય છે, પરંતુ તે અંદર શું છે આ ક્ષણે? તે માત્ર કેટલાક કચરો કિંમત છે. કોઈપણ સમયે કારણ કે તમે એક ચલ જાહેર સી, તે માત્ર કેટલાક કચરો કિંમત છે, અને અમે શરૂ કરી રહ્યાં છો આ વાસ્તવિકતા પર સફર. હવે, હું scanf કહી ત્યારે, આ સરનામા પર જાઓ અને ગમે તે વપરાશકર્તા પ્રકારો મૂકો. માં વપરાશકર્તા પ્રકારો તો હેલો વિશ્વ, સાથે સાથે, હું તેને જ્યાં મૂકી શકું? બફર એક કચરો કિંમત છે. જેથી એક તીર જેવા પ્રકારની છે કે જ્યાં કોણ જાણે પોઇન્ટ છે. કદાચ તે પોઇન્ટ છે અહીં મારા મેમરી. અને તેથી જ્યારે વપરાશકર્તા હેલો વિશ્વમાં પ્રકારો, આ કાર્યક્રમ મૂકી કરવાનો પ્રયાસ કરે છે શબ્દમાળા હેલ્લો વિશ્વ બેકસ્લેશ 0 મેમરી કે ભાગ છે. પરંતુ ઊંચી સંભાવના સાથે છે, પરંતુ સ્પષ્ટ નથી 100% સંભાવના કમ્પ્યુટર પછી તૂટી રહ્યું છે આ કાર્યક્રમ આ નથી કારણ કે મેમરી હું સ્પર્શ માટે માન્ય હોવું જોઈએ. તેથી ટૂંકા માં, આ કાર્યક્રમ છે બરાબર તે કારણ માટે અપૂર્ણ. હું મૂળભૂત શું નથી કરી રહ્યો છું? શું પગલાં માટે હું જેમ છોડી દીધી છે અમે માતાનો Binky પ્રથમ ઉદાહરણ સાથે અવગણવામાં? અરે વાહ? પ્રેક્ષક: મેમરી ફાળવણી? ડેવીડના MALAN: મેમરી ફાળવણી. હું ખરેખર ફાળવવામાં ન હોય કે જેઓ શબ્દમાળા માટે કોઇ મેમરી. તેથી અમે રીતે એક દંપતી આ ઠીક કરી શકે છે. એક, અમે સરળ રાખી શકો છો અને હકીકતમાં, હવે તમે છો એક અસ્પષ્ટપણું જોવા માટે શરૂ કરવા જઇ શું વચ્ચે લીટીઓ ઝાકઝમાળ, એક શબ્દમાળા શું છે, શું છે ચાર રચે સ્ટાર અક્ષરો શું ઝાકઝમાળ છે, છે. અહીં બીજા ઉદાહરણ છે શબ્દમાળાઓ અને નોટિસ સંડોવતા બધા હું વાક્ય પર કર્યું છે 16 ને બદલે કહેતા છે કે બફર ઘરનાં પરચૂરણ કામો હોઈ ચાલે છે સ્ટાર મેમરી એક ભાગ પર એક નિર્દેશક, હું ખૂબ જ સક્રિય આપવા જઈ રહ્યો છું 16 અક્ષરો માટે મારી જાતને બફર, અને હકીકતમાં, તમે પરિચિત છો, તો શબ્દ બફરીંગને સાથે, કદાચ વિડિઓઝ વિશ્વમાં માંથી, વિડિઓ બફરીંગને, બફરીંગને છે, બફરીંગને. વેલ, આ જોડાણ અહીં શું છે? YouTube ના વેલ, અંદર અને વિડિઓ પ્લેયર્સ અંદર સામાન્ય રીતે ઝાકઝમાળ છે 16 કરતાં મોટી છે. તે કદમાં એક ઝાકઝમાળ હોઈ શકે છે મેગાબાઇટ, કદાચ 10 મેગાબાઇટ્સ, અને તે એરે માં તમારા બ્રાઉઝર કરે , બાઇટ્સ એક સંપૂર્ણ સમૂહ ડાઉનલોડ ઓફ મેગાબાઇટ્સ એક સમગ્ર ટોળું વિડિઓ, અને વિડિઓ પ્લેયર, YouTube અથવા વિષયક છે, શરૂ થાય છે કે એરે ના બાઇટ્સ વાંચન, અને કોઈ પણ સમયે તમે જોઈ શબ્દ બફરીંગને, બફરીંગને, કે ખેલાડી છે એનો અર્થ એ થાય કે એરે ઓવરને મેળવેલ. નેટવર્ક તે નથી કે જેથી ધીમી છે વધુ બાઇટ્સ સાથે એરે ફરીથી અને તેથી તમે બીટ્સ બહાર છો આ વપરાશકર્તા માટે પ્રદર્શિત કરવા માટે. તેથી બફર એક ચાલાક શબ્દ કે અહીં છે તે માત્ર એક એરે મેમરી એક ભાગ છે. અને આ તેને ઠીક કરશે તે બહાર વળે છે, કારણ તમે એરે સારવાર કરી શકે છે કે, જોકે તરીકે તેઓ પણ બફર છતાં, સરનામાં છે માત્ર એક પ્રતીક છે, તે એક છે છે અક્ષરો ક્રમ, બફર, તે મારા માટે ઉપયોગી છે, પ્રોગ્રામર, તમે આસપાસ તેનું નામ પસાર કરી શકે છે તે હતા છતાં એક નિર્દેશક તરીકે તે છતાં એક ભાગ ના સરનામા હતા 16 અક્ષરો માટે મેમરી. કહે છે કે, તેથી હું પસાર કરી શકે છે બરાબર scanf કે શબ્દ અને તેથી હવે, હું આ કાર્યક્રમ બનાવવા હોય તો, scanf 2 બનાવવા માટે, કોઈ સ્લેશ scanf 2, અને લખો હેલો વર્લ્ડ, , કે time-- દાખલ હમ્મ, શું થયું? શબ્દમાળા કરો. હું શું ખોટું શું હતી? હેલો વર્લ્ડ, બફર. હેલો વર્લ્ડ. આહ, હું તે કરી રહ્યો છે શું ખબર. ઠીક છે. તેથી તે વાંચવા છે પ્રથમ જગ્યા સુધી. તેથી આપણે માત્ર એક ક્ષણ માટે ઠગ દો અને હું માત્ર કંઈક લખો માંગો છે ખરેખર લાંબા આ એક લાંબી સજા છે જેમ કે એક, બે, ત્રણ, ચાર, પાંચ, છ, સાત, આઠ, નવ, 10, 11, 12, 13, 14, 15, 16. ઠીક છે. તે ખરેખર લાંબા સજા છે. તેથી આ સજા છે કરતાં લાંબા સમય સુધી 16 અક્ષરો અને તેથી હું Enter દબાવો ત્યારે શું ચાલી રહ્યું છે? વેલ, આ કિસ્સામાં વાર્તા, હું જાહેર કર્યું હતું બફર ખરેખર એક એરે હોવા જવા માટે 16 અક્ષરો તૈયાર છે. તેથી એક, બે, ત્રણ, ચાર, પાંચ, છ, સાત, આઠ, નવ, 10, 11, 12, 13, 14, 15, 16. તેથી 16 અક્ષરો, અને હવે, જ્યારે હું આ એક લાંબી છે કંઈક વાંચી સજા શું છે રહ્યું છે હું આ વાંચી જાઉં છું કે લાંબા છે એસ ઇ-એન-ટી-E-એન-સી-ઇ, સજા. તેથી આ ઇરાદાપૂર્વક છે ખરાબ વસ્તુ છે કે હું આ ઉપરાંત લખવાનું રાખવા મારા એરે ની સીમાઓ મારા બફર ની સીમાઓ પાર. હું નસીબદાર અને કાર્યક્રમ વિચાર કરી શકે છે કાળજી ચાલી પર રાખવા અને નહીં, પરંતુ સામાન્ય રીતે, આ બોલતા ખરેખર મારા કાર્યક્રમ ભાંગી જશે, અને તે એક ભૂલ છે મારા હું પગલું ક્ષણ કોડ સીમાઓને કે એરે, કારણ કે હું તે તો ખબર નથી જરૂરી તૂટી રહ્યું અથવા હું માત્ર નસીબદાર વિચાર જાઉં છું. તેથી આ સમસ્યારૂપ છે, કારણ કે આ કિસ્સામાં, તે કામ કરવા લાગતું નથી અને છતાં પણ, અહીં ભાવિ ઉશ્કેરવું દો જ્યારે IDE ખૂબ થોડી સહન લાગે છે of-- ત્યાં અમે જાઓ. છેલ્લે. તેથી હું આ જોઈ શકો છો કે આ જ એક છું. તેથી હું માત્ર મજા ટાઈપ ઘણો હતો ખરેખર લાંબા વાસ્તવિક શબ્દસમૂહ બહાર તે ચોક્કસપણે વટાવી કે 16 બાઇટ્સ, હું કારણ કે આ ઉન્મત્ત લાંબા મલ્ટી વાક્ય માં ટાઇપ શબ્દસમૂહ, અને પછી શું થયું નોટિસ. આ કાર્યક્રમ છાપવા પ્રયાસ કર્યો અને પછી એક સેગ્મેન્ટેશન ક્ષતિમાં મળ્યો અને સેગ્મેન્ટેશન ખામી છે જ્યારે આ કંઈક થાય છે અને ઓપરેટિંગ સિસ્ટમ કહે છે ના, મેમરી સ્પર્શી શકતી નથી. અમે મારવા માટે જઈ રહ્યાં છો એકસાથે કાર્યક્રમ. તેથી આ સમસ્યારૂપ લાગે છે. હું કાર્યક્રમ જેમાં સુધારો કર્યો છે ઓછામાં ઓછા કેટલાક મેમરી પરંતુ આ પુરાવા લાગશે મેળવવામાં કાર્ય GetString કેટલાક મર્યાદિત લંબાઈ 16 શબ્દમાળાઓ. તમે લાંબા સમય સુધી આધાર માંગો છો તેથી જો 16 અક્ષરો કરતાં વાક્યો, તમે શું કરો છો? વેલ, તમે વધારો કરી શકે છે 32 આ બફર માપ અથવા તે પ્રકારની ટૂંકા લાગે છે. શા માટે આપણે કરી નથી તે 1000 પરંતુ પાછા દબાણ. તર્ક પ્રતિભાવ શું છે માત્ર કરીને આ સમસ્યા દૂર 1000 અક્ષરો જેમ, મોટી મારા બફર? આ રીતે GetString અમલીકરણ દ્વારા. અહીં શું સારી કે ખરાબ છે? અરે વાહ? પ્રેક્ષક: તમે ઘણો બાંધવા તો જગ્યા અને તમે તેનો ઉપયોગ નથી, પછી તમે તે જગ્યા ફરી ફાળવવા કરી શકતા નથી. ડેવીડના MALAN: ચોક્કસ. જો તમે ન કરો ત્યાં સુધી તો તે નકામું છે વાસ્તવમાં તે બાઇટ્સ 900 જરૂર અને હજુ સુધી તમે માટે પૂછી રહ્યાં છો કોઈપણ કુલ 1,000, તમે માત્ર પર વધુ મેમરી વપરાશ કરી રહ્યાં છો તમે જરૂર કરતાં વપરાશકર્તાની કમ્પ્યુટર, અને બધા કેટલાક બાદ જો તમે પહેલાથી જ આવી જીવન માં તમે છો કે જ્યારે કાર્યક્રમો ઘણાં ચાલી અને તેઓ મેમરી ઘણાં ખાવાથી કરી રહ્યાં છો આ ખરેખર પ્રભાવ પર અસર કરી શકે છે અને વપરાશકર્તા અનુભવ કમ્પ્યુટર પર. તેથી તે પ્રકારના એક બેકાર ઉકેલ છે, ખાતરી કરો કે માટે છે, અને તેનાથી વિપરીત, તે માત્ર ઉડાઉ છે, શું સમસ્યા હજુ પણ હું મારા બફર કરો તો, રહે 1000? અરે વાહ? પ્રેક્ષક: શબ્દમાળા લંબાઈ 1,001 છે. ડેવીડના MALAN: ચોક્કસ. તમારા શબ્દમાળા લંબાઈ 1,001 હોય તો, તમે ચોક્કસ જ સમસ્યા હોય છે, અને મારા દલીલ દ્વારા, હું માત્ર પછી તે 2000 બનાવવા માટે, પરંતુ તમે ખબર નથી તે પ્રયત્ન કરીશું કેવી રીતે મોટા અગાઉથી, અને હજુ સુધી, હું મારા કાર્યક્રમ કમ્પાઇલ હોય લોકો ઉપયોગ ભાડા પહેલાં અને ડાઉનલોડ તે. તેથી આ બરાબર પ્રકારની છે સામગ્રી CS50 પુસ્તકાલય પ્રયાસ કરે છે કે અમને મદદ અને અમે માત્ર નજરે પડશે અંતર્ગત અમલીકરણ કેટલાક અહીં, પરંતુ આ CS50 ટપકું સી આ છે CS50 IDE પર કરવામાં આવી રહ્યું છે કે ફાઈલ છે તમે ઉપયોગ કરી રહ્યો છું કે આ બધા અઠવાડિયા. તે પૂર્વ સંકલિત છે અને તમે કરેલા આપોઆપ તેનો ઉપયોગ કરવામાં આવી આ કર્યા પ્રકૃતિ દ્વારા રણકાર સાથે એલ CS50 ધ્વજ આડંબર, પરંતુ હું તમામ મારફતે સરકાવો તો આ વિધેયો, ​​અહીં GetString છે, અને માત્ર તમે આપવા માટે શું સ્વાદ, થઈ રહ્યું છે માતાનો પર એક ઝડપી નજર સંબંધિત જટિલતા. તે એક સુપર લાંબો છે કાર્ય છે, પરંતુ અમે ન હતી બધી હાર્ડ વિશે વિચારો હોય છે કેવી રીતે શબ્દમાળાઓ વિશે જાઓ. તેથી અહીં મારા બફર અને હું છે દેખીતી રીતે નલ પ્રારંભ. આ છે, અલબત્ત, છે ચાર રચે સ્ટાર તરીકે જ વસ્તુ છે, પરંતુ હું નક્કી CS50 પુસ્તકાલય અમલીકરણ અમે જઈ રહ્યાં છો, તો તે સંપૂર્ણપણે ગતિશીલ હું કેવી રીતે મોટા અગાઉથી ખબર નથી શબ્દમાળા વપરાશકર્તાઓ વિચાર કરવા માંગો છો જઈ રહ્યાં છે. તેથી હું શરૂ કરવા જઇ રહ્યો છું માત્ર એક ખાલી શબ્દમાળા સાથે અને મને ખૂબ બિલ્ડ કરવા જઇ રહ્યો છું મેમરી હું વપરાશકર્તા શબ્દમાળા ફિટ કરવાની જરૂર તરીકે અને હું ન હોય તો પૂરતી, હું પૂછવા જાઉં છું વધુ મેમરી માટે ઓપરેટિંગ સિસ્ટમ. હું તેમના શબ્દમાળા ખસેડવા જાઉં છું મેમરી નો મોટા ભાગ માં અને હું પ્રકાશિત અથવા મુક્ત જાઉં છું મેમરી અપૂરતું મોટી ચંકને અને અમે હમણાં જ જઈ રહ્યાં છો iteratively આ કરવા માટે. તેથી એક ઝડપી નજરથી, અહીં માત્ર એક ચલ છે જેની સાથે હું ટ્રેક રાખવા જાઉં છું મારા બફર ક્ષમતા છે. હું કેવી રીતે ઘણા બાઇટ્સ ફિટ થઈ શકે છે? અહીં એક ચલ n સાથે છે હું રાખવા જઈ રહ્યો છું, જે ખરેખર કેટલા બાઇટ્સ ટ્રેક વપરાશકર્તા લખ્યો છે કે બફર. જો તમે પહેલાં આ જોઇ ન હોય, તો તમે સ્પષ્ટ કરી શકો છો કે જે પૂર્ણાંક ચલ , તરીકે નામ સૂચવે છે, કે જે સહી થયેલ નહિં છે એનો અર્થ એ થાય કે તે બિન નકારાત્મક છે, અને શા માટે કરશે હું ક્યારેય સ્પષ્ટ સંતાપ કરવા માંગો છો પૂર્ણાંક માત્ર પૂર્ણાંક નથી કે, પરંતુ તે એક બિનનોંધાયેલ પૂર્ણાંક છે? તે બિન નકારાત્મક પૂર્ણાંક છે. [અશ્રાવ્ય] શું અર્થ છે? પ્રેક્ષક: તે રકમ વર્ણન છે મેમરી [અશ્રાવ્ય] કરી શકાય છે. ડેવીડના MALAN: યાહ. હું સહી થયેલ નહિં કહે તો તેથી, આ ખરેખર છે તમે વધારાની મેમરી એક બીટ આપવા જો તમે અને તે સિલી કાઇન્ડ લાગે છે, પરંતુ , કે વધારાની મેમરી એક બીટ છે તમે ઘણા બમણી હોય છે તમે પ્રતિનિધિત્વ કરી શકે છે મૂલ્યો, તે 0 અથવા 1 હોઇ શકે છે, કારણ કે. તેથી મૂળભૂત રીતે, પૂર્ણાંક આશરે હોઈ શકે છે નકારાત્મક 2 અબજ તમામ માર્ગ હકારાત્મક 2 અબજ સુધી. તે મોટા રેન્જ હોય ​​છે, પરંતુ તે હજુ પણ પ્રકારની ઉડાઉ છે તમે માત્ર વિશે કાળજી તો માપો, જે માત્ર તર્ક બિન નકારાત્મક હોઈ શકે છે અથવા હકારાત્મક કે 0, તેમજ તે પછી, શા માટે તમે 2 અબજ બરબાદ થાય છે નકારાત્મક નંબરોનો માટે શક્ય કિંમતો તમે ક્યારેય તેમને વાપરવા માટે જઈ રહ્યાં છો તો શું? તેથી તમે કરી શકો સહી થયેલ નહિં, હવે મારી પૂર્ણાંક કહેતા અબજ 4 0 વચ્ચે અને આશરે છે. તેથી અહીં કારણોસર માત્ર પૂર્ણાંક સી અમે હમણાં જ હવે માં મળશે તેના બદલે પૂર્ણાંક છે શા માટે એક કોલસો બનાવો, પરંતુ અહીં છે શું થઈ રહ્યું છે ભાવાર્થ તમે, અને કેટલાક પર હમણાં પૂરતું, ઉપયોગ કરી શકે છે, પણ pset ચાર fgetc કાર્ય અથવા તે પછી, અમે તે જોશો ફરી સમસ્યા પાંચ સુયોજિત fgetc કારણ કે નામ તરીકે સરસ છે પ્રકારની પ્રકારની arcanely, સૂચવે છે તે એક કાર્ય છે કે એક અક્ષર મળે છે અને તેથી શું મૂળભૂત રીતે જુદા છે અમે GetString કરી રહ્યાં છે તે વિશે અમે ઉપયોગ કરી રહ્યાં છો છે એ જ રીતે scanf. અમે હમણાં જ પગલું દ્વારા પગલું સાથે વિસર્પી છે ગમે પર વપરાશકર્તા ટાઇપ છે, અમે હંમેશા એક સ્થાપિત કરી શકે છે, કારણ કે ચાર રચે છે, અને તેથી અમે હંમેશા સુરક્ષિત રીતે કરી શકો છો એક સમયે એક કોલસો બનાવો જોવા, અને જાદુ અહીં થાય છે શરૂ થાય છે. હું નીચે સ્ક્રોલ જાઉં છું આ કાર્ય મધ્યમાં માત્ર થોડા સમય માટે આ કાર્ય દાખલ કરો. ભાગનું છે જેમ malloc કાર્ય, ત્યાં છે એક realloc કાર્ય જ્યાં realloc તમે મેમરી એક ભાગ ફરી ફાળવવા દે અને તે મોટી અથવા નાના બનાવે છે. તેથી લાંબા વાર્તા ટૂંકી અને આજે મારા હાથ એક મોજું, કે શું GetString ખબર કરી છે તે પ્રકારના છે ના જાદુઇ વધતી અથવા વપરાશકર્તા તરીકે બફર ઘટતી તેના અથવા તેણીના શબ્દમાળા માં પ્રકારો. તેથી જો વપરાશકર્તા પ્રકારો ટૂંકા શબ્દમાળા, આ કોડ માત્ર પૂરતી ફાળવે મેમરી શબ્દમાળા ફિટ. વપરાશકર્તા ટાઈપ રાખે છે હું ફરીથી અને ફરીથી તે કર્યું હતું અને ફરી, તો સાથે સાથે, તો બફર શરૂઆતમાં આ મોટી અને કાર્યક્રમ કરવા માટે, ખબર પડે છે એક મિનિટ રાહ જુઓ, હું જગ્યા બહાર છું, તે ડબલ કરવા જઈ રહ્યું છે બફર માપ અને પછી બફર માપ ડબલ અને ડબલિંગ કરે છે કે કોડ છે, અમે તેને અહીં જોવા હોય તો, તે છે ફક્ત આ હોંશિયાર એક લાઇનર. તમે આ વાક્યરચના જોઇ ન શકે પહેલાં, પરંતુ તમે સ્ટાર બરાબર કહે છે, તો આ જ વસ્તુ તરીકે છે ક્ષમતા ગુણ્યા 2 કહેતા. તેથી તે માત્ર બમણી રાખે બફર ક્ષમતા અને પછી realloc કહેવાની આપવા પોતે કે વધુ મેમરી. હવે, એક અલગ તરીકે, ત્યાં અહીં અન્ય કાર્યો છે અમે કોઈપણ વિગતવાર તપાસ નહીં કે GetInt માં બતાવવા માટે કરતાં અન્ય, અમે GetInt માં GetString ઉપયોગ કરે છે. અમે તે નથી કે તપાસ નલ, જે, સ્મૃતિ, ખાસ કિંમત છે કે કંઈક ખોટું થયું છે. અમે મેમરી છો. સારી કે માટે ચકાસો. અને અમે એક સંત્રી કિંમત આવો. પરંતુ હું તરીકે ટિપ્પણીઓ અલગ પાડવા પડશે શા માટે અને પછી અમે scanf આ પિતરાઇ ઉપયોગ sscanf કહેવામાં આવે છે અને તે બહાર વળે કે sscanf, અથવા શબ્દમાળા scanf, તમે વાક્ય પર એક નજર કરી શકો છો કે વપરાશકર્તા ટાઇપ અને તમે દો છે અનિવાર્યપણે તે વિશ્લેષણ અને હું છું શું અહીં કરી હું sscanf જણાવું છું છે, વપરાશકર્તા છે ગમે વિશ્લેષણ માં ટાઇપ કરો અને ખાતરી કરો% i બનાવવા માટે, ત્યાં તે પૂર્ણાંક છે, અને અમે નહીં ત્યાં પણ છે બરાબર શા માટે આજે પ્રવેશ મેળવવા એક nutshell માં% અહીં સી, પરંતુ તે માટે પરવાનગી આપે છે વપરાશકર્તા ટાઇપ છે તો અમને શોધવા માટે નંબર પછી બોગસ કંઈક. તેથી કારણ કે GetInt અને GetString ફરીથી પ્રયાસ કરી, ફરીથી પ્રયાસ કરવા માટે તમને કહું છું, ફરી પ્રયાસ કારણ કે તમામ છે અમે તેવા પરચૂરણ ખર્ચ કર્યો છે કે કોડ છે, તે પ્રકારની વપરાશકર્તાની ઇનપુટ જોઈ છે તેની ખાતરી કરવા માટે તે સંપૂર્ણપણે આંકડાકીય છે અથવા તે એક વાસ્તવિક ફ્લોટિંગ છે બિંદુ કિંમત અથવા જેમ, શું કિંમત પર આધાર રાખીને તમે ઉપયોગ કરી રહ્યાં છો કામ કરે છે. નવાઇ. ઠીક છે. કે જે કોળિયો હતી પરંતુ બિંદુ અહીં છે કે અમે હતી કારણ તે તાલીમ વ્હીલ્સ પર કારણ કે સૌથી નીચા સ્તરે છે માત્ર જેથી ઘણી વસ્તુઓ છે કે અમે ઇચ્છતા કે ખોટું જઈ શકે છે preemptively નિયંત્રિત કરવા માટે આ ચોક્કસપણે તે વસ્તુઓ વર્ગ પ્રારંભિક અઠવાડિયા, પરંતુ હવે pset ચાર અને pset પાંચ સાથે અને બહાર તમે તેને સહી વધુ છે કે જોશે તમે પણ જો તમે વધુ સક્ષમ છો સમસ્યાઓ તે પ્રકારના ઉકેલવા જાતે. GetString અથવા GetInt પર કોઈપણ પ્રશ્ન છે? અરે વાહ? પ્રેક્ષક: તમે શા માટે ડબલ કરશે બફર ક્ષમતા તેના બદલે માત્ર વધારો કરવાને તે ચોક્કસ રકમ છે? ડેવીડના MALAN: સારા પ્રશ્ન. આપણે શા માટે ક્ષમતા બમણી કરશે બફર વિરોધ માત્ર તે વધી કેટલાક સતત કિંમત છે? તે ડિઝાઇન નિર્ણય હતો. અમે હમણાં જ તે કરે છે, કારણ કે નિર્ણય કર્યો સમય મુજબના ખર્ચાળ થોડી પૂછો હોઈ ઓપરેટિંગ સિસ્ટમ મેમરી માટે, અમે ન હતી માં મેળવવામાં અંત કરવા માંગો છો મોટા શબ્દમાળાઓ માટે એક પરિસ્થિતિ અમે પૂછ્યા હતા કે ફરીથી અને ફરીથી ઓએસ અને ફરીથી અને ફરીથી મેમરી માટે ઝડપી ઉત્તરાધિકાર. તેથી અમે ફક્ત કંઈક નિર્ણય લીધો આપખુદ પરંતુ અમે વ્યાજબી આશા, કે, તમે, ચાલો શું ખબર આગળ જાતને વિચાર કરવાનો પ્રયાસ કરો અને માત્ર કે જેથી તે બમણી રાખવા અમે વખત જથ્થો ઘટાડવા અમે malloc કૉલ કરવા માટે હોય અથવા realloc, પરંતુ કુલ ચુકાદો જાણીને ગેરહાજરીમાં કૉલ શું વપરાશકર્તાઓ લખો કરવા માંગો છો શકે છે. બંને રીતે દલીલ હોઈ શકે છે. બેશક સારી. તેથી આપણે એક દંપતી પર એક નજર કરીએ મેમરી અન્ય આડઅસરો, ખોટું ન જઇ શકો છો કે જે વસ્તુઓ અને સાધનો કે જે તમે કરી શકો છો ભૂલો આ પ્રકારના પકડી ઉપયોગ કરે છે. તે છે, તેમ છતાં તમે બધા બહાર વળે check50, તમે ખૂબ જણાવ્યું નથી બગડેલ લખી કરવામાં આવી છે સપ્તાહ એક કારણ કોડ છે, બધા check50 પરીક્ષણો હોય તો પસાર, અને તો પણ તમે અને તમારા ટીએફ સુપર વિશ્વાસ છે હેતુ તરીકે તમારો કોડ કામ કરે છે. તમારો કોડ બગડેલ કરવામાં આવી છે અથવા તમે કે જે બધા અપૂર્ણ, CS50 પુસ્તકાલય ઉપયોગ કરીને, મેમરી લીક કરવામાં આવી છે. તમે ઓપરેટિંગ સિસ્ટમ પૂછ્યા કરવામાં આવ્યા છે કાર્યક્રમો મોટા ભાગના મેમરી માટે તમે તેવા પરચૂરણ ખર્ચ કર્યો છે, પરંતુ તમે કર્યું ખરેખર તે પાછા ક્યારેય આપવામાં. તમે GetString કહેવાય છે અને GetInt અને GetFloat, પરંતુ GetString સાથે, તમે કરેલા ungetstring અથવા આપો કહેવાય ક્યારેય શબ્દમાળા પાછા અથવા જેમ, પરંતુ અમે જોઇ છે GetString મેમરીને ફાળવવા કરે છે malloc માર્ગ અથવા આ દ્વારા માત્ર છે કે જે કાર્ય realloc, ભાવના ખૂબ સમાન છે, અને હજુ સુધી, અમે થયા છો માટે ઓપરેટિંગ સિસ્ટમ પૂછવા મેમરી અને મેમરી ફરીથી અને ફરીથી પરંતુ તે પાછા આપ્યા નથી. હવે, એક અલગ તરીકે, તે તારણ છે કે જે એક કાર્યક્રમ, મેમરી તમામ સરખેસરખા ત્યારે આપોઆપ મુક્ત કરવામાં આવે છે. તેથી તે એક વિશાળ સોદો નથી છે. તે તોડી નથી ચાલી રહ્યું છે IDE અથવા વસ્તુઓ ધીમી છે, પરંતુ જ્યારે કાર્યક્રમો કરી સામાન્ય રીતે મેમરી લીક અને તેઓ લાંબા સમય માટે ચલાવી રહ્યા છો. તમે ક્યારેય મૂર્ખ ઓછી જોવા મળે છે, તો મેક ઓએસ અથવા રેતીની ઘડિયાળ માં બીચ પર બોલ વિન્ડોઝ પર તે પ્રકારની જ્યાં ધીમી અથવા વિચારવાનો અથવા વિચારવાનો અથવા માત્ર ખરેખર શરૂ થાય છે એક ક્રોલ કરવા ધીમી, તે ખૂબ જ કદાચ હોઈ શકે મેમરી છિદ્ર પરિણામ. લખ્યું જે પ્રોગ્રામરો તમે ઉપયોગ કરી રહ્યાં છો સોફ્ટવેર મેમરી માટે ઓપરેટિંગ સિસ્ટમ પૂછો દર થોડા મિનિટ, દરેક કલાક. પરંતુ તમે ચલાવી રહ્યા છો, તો તે પણ જો સોફ્ટવેર, તમારા કમ્પ્યુટર માં ઘટાડી ઓવરને પર કલાકો કે દિવસો માટે, તમે વધુ અને વધુ માટે પૂછતી કરી શકે છે મેમરી અને ખરેખર ક્યારેય તેનો ઉપયોગ અને તેથી તમારા કોડ હોઈ શકે છે, અથવા શકે કાર્યક્રમો, મેમરી લીક થઈ શકે છે અને તમે મેમરી લીક શરૂ કરવા માટે, અન્ય કાર્યક્રમો માટે ઓછી મેમરી છે, અને અસર છે બધું ધીમી. હવે, આ અત્યાર સુધી એક છે સૌથી ભયાનક કાર્યક્રમો તમે તકો હશે CS50 માં ચલાવવા માટે ત્યાં સુધી તેના ઉત્પાદન કરતાં પણ વધુ વિશિષ્ટ છે, કારણ કે રણકાર અથવા બનાવી અથવા આદેશ કોઈપણ અમે પહેલાં સ્કોર કર્યો વાક્ય કાર્યક્રમો પરંતુ Thankfully, તેના ઉત્પાદન જડિત કેટલાક સુપર મદદરૂપ ટીપ્સ છે કે ઉપયોગી ક્યાં pset ચાર હશે અથવા ચોક્કસપણે પાંચ pset. તેથી Valgrind એક સાધન છે કે જોવા માટે વાપરી શકાય છે તમારા કાર્યક્રમ મેમરી લિક માટે. ચલાવવા માટે પ્રમાણમાં સરળ છે. તમે પણ Valgrind અને પછી ચલાવો તે થોડી વર્બોઝ છે છતાં, ડેશ ડેશ લીક ચેક સંપૂર્ણ બરાબર છે, અને પછી કોઈ સ્લેશ અને તમારા કાર્યક્રમ નામ. તેથી Valgrind પછી તમારા કાર્યક્રમ ચાલશે અને તમારા કાર્યક્રમ ખૂબ ઓવરને અંતે તે સરખેસરખા પહેલાં ચાલી રહ્યું હોય અને તમે બીજા પ્રોમ્પ્ટ આપે તે વિશ્લેષણ કરવા જઈ રહ્યું છે તમારા કાર્યક્રમ તે ચાલી રહ્યું છે, જ્યારે અને તમે લીક હતી TELL સારી હજુ સુધી કોઈ મેમરી અને, તમે મેમરી સ્પર્શ હતી કે તમે સંબંધ ન હતી? તે બધું પકડી શકે છે, પરંતુ તે મોટા ભાગની વસ્તુઓ મોહક પર ખૂબ સારી છે. તેથી અહીં મારા કર્યા રન એક ઉદાહરણ છે આ કાર્યક્રમ ચલાવો, Valgrind કર્યા, કહેવાય કાર્યક્રમ પર મેમરી, અને હું જાઉં છું છે કે લીટીઓ પ્રકાશિત કરવા માટે આખરે અમને રસ. તેથી પણ વધુ વિક્ષેપોમાં છે હું સ્લાઇડ માંથી કાઢી કર્યું છે. પરંતુ માત્ર આ શું જોવા દો કાર્યક્રમ અમને કહી સક્ષમ છે. તે અમને વસ્તુઓ કહેવાની સક્ષમ છે 4 કદ અમાન્ય લખવા માંગો. અન્ય શબ્દોમાં, તમે મેમરી સ્પર્શ તો, મેમરી ખાસ 4 બાઇટ્સ તમે ન હોવી જોઇએ કે, Valgrind તમે તે કહી શકે છે. 4 કદ અમાન્ય લખો. તમે ચાર બાઇટ્સ સ્પર્શ તમે ન હોવી જોઇએ છે. જ્યાં તમે કે શું હતી? આ સુંદરતા છે. મેમરી ટપકું સી રેખા 21 જ્યાં તમે છે ખરાબ અને તે મદદરૂપ છે કે શા માટે છે. મોટા ભાગની GDB જેમ, તે મદદ કરી શકે છે વાસ્તવિક ભૂલ તમે નિર્દેશ કરે છે. હવે, આ એક થોડી વધુ છે વર્બોઝ ગૂંચવણમાં મૂકે ન હોય. 1 બ્લોકમાં 40 બાઇટ્સ ચોક્કસપણે છે નુકશાન રેકોર્ડ 1 1 હારી. કે શું અર્થ છે? વેલ, તે માત્ર તમે માટે પૂછવામાં અર્થ એ થાય 40 બાઇટ્સ અને તમે તેને પાછા આપી નથી. તમે malloc કહેવાય અથવા તમે કહેવાય GetString અને ઓપરેટિંગ સિસ્ટમ તમે 40 બાઇટ્સ, પરંતુ તમે ક્યારેય આપ્યો મુક્ત કે મેમરી પ્રકાશિત થાય છે, અને વાજબી હોઇ શકે છે, અમે બતાવવા ક્યારેય કર્યું તમે કેવી રીતે મેમરી પાછા આપી. એક સુપર છે બહાર ફેંકે છે સરળ કાર્ય મફત કહેવાય છે. એક દલીલ, આ વસ્તુ લે તમે મફત અથવા પાછા આપવા માંગો છો પરંતુ 40 બાઇટ્સ, દેખીતી રીતે, આ કાર્યક્રમ વાક્ય પર જતું રહ્યું છે મેમરી 20 સી DOT. તેથી આપણે આ કાર્યક્રમ જોવા દો. તે સુપર નકામું છે. તે માત્ર ત્યારે જ દર્શાવે છે આ ચોક્કસ ભૂલ. તેથી આપણે એક નજર કરીએ. અહીં મુખ્ય અને મુખ્ય, નોટિસ, કહે છે એક કાર્ય એફ અને પછી વળતર કહેવાય છે. તેથી કે જે બધી રસપ્રદ નથી. એફ શું કરે છે? હું એક પ્રોટોટાઇપ સાથે સંતાપ ન હતી નોટિસ. હું કોડ રાખવા માગે શક્ય તેટલી મિનિમલ. તેથી હું મુખ્ય એફ ઉપર મૂકી અને કે, ચોક્કસપણે, દંડ છે આ જેમ ટૂંકા કાર્યક્રમો માટે. તેથી એફ કંઈપણ પાછા આવો અને નથી કરતું નથી કંઈપણ લે છે, પરંતુ તે આવું નથી. તે ખૂબ જેવા જાહેર આ Binky ઉદાહરણમાં, કે એક્સ કહેવાય નિર્દેશક રહ્યું છે પૂર્ણાંક સરનામું સંગ્રહવા માટે. તેથી તે ડાબી બાજુ છે. ઇંગલિશ માં, શું છે કરી જમણી બાજુ? કોઈપણ? આ અમારા માટે શું કરવાનું છે? અરે વાહ? AUDIENCE: [અશ્રાવ્ય] વખત પૂર્ણાંક માપ છે, જે 10 વખત કે [અશ્રાવ્ય] ડેવીડના MALAN: સારા અને મને સારાંશ દો. તેથી 10 પૂર્ણાંકો માટે પૂરતી જગ્યા ફાળવી અથવા 10 પૂર્ણાંક માપ શું છે તે 4 છે ચાર બાઇટ્સ, તેથી 10 ગુણ્યા 40, હું કર્યું કે જમણી બાજુ કે જેથી હાઈલાઇટ મને 40 બાઇટ્સ આપે છે અને પ્રથમ બાઇટ ની સરનામું સંગ્રહ X માં. અને હવે છેલ્લે, અને અહીં જ્યાં આ કાર્યક્રમ બગડેલ, શું છે રેખા 21 સાથે ખોટું કે તર્ક પર આધારિત છે? શું રેખા 21 સાથે ખોટું છે? અરે વાહ? પ્રેક્ષક: તમે નથી કરી શકો છો [અશ્રાવ્ય] એક્સ માં ઇન્ડેક્સ. ડેવીડના MALAN: યાહ. હું કે જેમ X માં ઇન્ડેક્સ ન જોઈએ. તેથી વાક્યરચના અનુસાર, તે બરાબર છે. શું સારું છે તમે જેમ જ છે, ઝાકઝમાળ નામ સારવાર કરી શકે છે છતાં તે જ રીતે, એક નિર્દેશક છે તે છતાં તરીકે તમે એક નિર્દેશક સારવાર કરી શકે છે ઝાકઝમાળ, અને તેથી હું વાક્યરચના અનુસાર કરી શકો છો X કૌંસ કંઈક કહે છે, X કૌંસ હું, પરંતુ 10 સમસ્યાવાળા હોય છે. શા માટે? પ્રેક્ષક: તે અંદર નથી કારણ કે. ડેવીડના MALAN: તે નથી મેમરી કે ભાગ પર આધારિત છે. સૌથી કિંમત શું હું જોઈએ છે તે ચોરસ કૌંસ માં મૂકી શકાય? 9 મારફતે 9 0. શૂન્ય ઈન્ડેક્સીંગ છે. તેથી 9 મારફતે 0 દંડ હશે. કૌંસ 10 સારી નથી અને પરંતુ, દરેક સમય છતાં યાદ હું CS50 IDE બનાવવા માટે પ્રયાસ લાગે છે બોગસ કિંમતો લખીને ક્રેશ, તે હંમેશા સહકાર નથી અને ખરેખર, તમે ઘણી વખત નસીબદાર વિચાર માત્ર કારણ કે ઓપરેટિંગ સિસ્ટમ નથી નોંધ્યું છે કે તમે અત્યાર સુધીમાં સહેજ મેમરી કેટલાક ભાગ પસાર કરવા માટે, તમે તકનીકી અંદર રોકાયા કારણ કે તમારા સેગમેન્ટમાં છે, પરંતુ વધુ કે પર ઓપરેટિંગ સિસ્ટમો વર્ગ, આ જેમ અને તેથી કંઈક ખૂબ જ સરળતાથી વણતપાસાયેલા જઈ શકે છે. તમારા કાર્યક્રમ ક્યારેય તૂટી રહ્યું છે સતત પરંતુ કદાચ ક્ષણભર માં એક વખત. અને તેથી આપણે Valgrind પ્રયાસ કરો આ પર, અને અહીં જ્યાં અમે ભરાઈ ગયાં મળશે ક્ષણભરમાં આઉટપુટ દ્વારા. તેથી મેમરી Valgrind લીક ચેક કરો સંપૂર્ણ કોઈ સ્લેશ મેમરી સમકક્ષ હોય છે. હું વચન શા માટે છે અને અહીં છે આ ભૂલાવી શકે છે. અહીં Valgrind, અહીં શું શું છે પ્રોગ્રામર, કેટલાક વર્ષો ago- તે એક સારો વિચાર હશે નક્કી કર્યું જેમ આઉટપુટ જોવા માટે. તેથી આપણે આ અર્થમાં બનાવવા દો. ડાબી બાજુ તેથી તમામ રીતે કોઈ વાજબી કારણ માટે બાજુ કાર્યક્રમ પ્રક્રિયા ID છે અમે હમણાં જ અનન્ય ઓળખકર્તા ચલાવવા આ કાર્યક્રમ માટે અમે ફક્ત ચાલી હતી. અમે કે કાઢી સ્લાઇડ, પરંતુ ત્યાં અહીં કેટલાક ઉપયોગી માહિતી છે. માતાનો ખૂબ જ ટોચ સુધી સ્ક્રોલ દો. અમે શરૂ કર્યું છે અહીં છે. તેથી તે બધા ખૂબ આઉટપુટ નથી. અહીં તે અમાન્ય લખવા છે રેખા 21 પરનું કદ 4. વેલ, રેખા 21 શું હતું? રેખા 21 બરાબર હતું આ અને તે અર્થમાં બનાવે છે હું validly છું કે હું છું કારણ કે 4 બાઇટ્સ લખવા આ પૂર્ણાંક મૂકવા પ્રયાસ કરી, જે કંઈપણ હોઈ શકે છે તે માત્ર બને છે શૂન્ય છે, પરંતુ હું પ્રયાસ કરી રહ્યો છું એક સ્થાન પર તે મૂકી કે મને સંબંધ નથી. એક વધુમાં, અહીં નીચે, 40 બાઇટ્સ બ્લોકો ચોક્કસપણે રેકોર્ડ 1 માં ખોવાઈ જાય છે. કે હું malloc કૉલ કારણ કે જ્યારે છે અહીં, હું ખરેખર મેમરી મુક્ત નથી. તેથી અમે કેવી રીતે આ ઠીક કરી શકે છે? મને આગળ જવા દો અને થોડી સુરક્ષિત હોઈ અને ત્યાં 9 કરવું અને અહીં મફત એક્સ મને દો. આ આજે નવા કાર્ય છે. હવે હું મેમરી કોઈ સ્લેશ બનાવવા પુનઃ ચલાવો તો, , તેને ફરીથી પર Valgrind ચલાવવા દો મારી બારી વધારવા અને Enter દબાવો. હવે, તે સારી છે. તેઓ સારા સમાચાર દફનાવી આ આઉટપુટ તમામ. બધા ઢગલો બ્લોકો મુક્ત હતા. અમે શું ઢગલો પાછા આવો પડશે છે, પરંતુ કોઈ લિક શક્ય છે. તેથી આ માત્ર અન્ય છે તમારા સાધન કીટ માટે સાધન જેની સાથે તમે શરૂ કરી શકો છો હવે તે જેવી ભૂલો શોધી. પરંતુ માતાનો જોવા દો શું વધુ ખોટું અહીં જઈ શકો છો. હવે સંક્રમણ દો ખરેખર એક સમસ્યા હલ. એક કોરે તરીકે, આ એક રાહત થશે તો મૂંઝવણ અથવા તણાવ થોડો, હવે આ રમુજી છે. યાહ. તે ખૂબ સારી છે. પોઇન્ટર છે કારણ કે સરનામાં અને સરનામા સંમેલન દ્વારા સામાન્ય રીતે હોય છે હેક્સાડેસિમલ સાથે લખાયેલ છે. હા, હા, આ હવે રમુજી છે. Anyhow, તેથી હવે દો ખરેખર એક સમસ્યા ઉકેલવા માગે છે. આ સુપર રહી છે સુપર આમ અત્યાર સુધી નીચા સ્તર, અને અમે ખરેખર ઉપયોગી કરી શકો છો આ નીચા સ્તર વિગતો સાથે વસ્તુઓ. તેથી અમે થોડા અઠવાડિયા રજૂ પહેલા એક એરે ની કલ્પના. ઝાકઝમાળ સરસ હતી કારણ કે તે અમારી કોડ સાફ કરવા માટે હાર્ડ છે અમે એક લખવા માગતા હતા, કારણ કે જો બહુવિધ વિદ્યાર્થીઓ સાથે કાર્યક્રમ અથવા બહુવિધ નામો અને ઘરો અને ડોર્મસ અને કોલેજો અને તે બધા, અમે બધું વધુ સ્ટોર કરી શકે છે સ્વચ્છ એક એરે અંદર. પરંતુ એક નુકસાન એ છે કે પ્રસ્તાવ એક એરે આમ અત્યાર સુધી. તમે તેને જાતે નથી સહન કર્યું હોય તો પણ એક કાર્યક્રમમાં, માત્ર સહજ ભાવે, ખરાબ વસ્તુ શું છે એક એરે વિશે, કદાચ? હું કેટલાક મર્મર્સ સાંભળવા. પ્રેક્ષક: તે મુશ્કેલ છે માપ બદલવા માટે. ડેવીડના MALAN: તે મુશ્કેલ છે માપ બદલવા માટે. તમે માપ બદલી શકતા નથી એક એરે, હકીકતમાં, સે દીઠ સી માં તમે અન્ય એરે સ્થાપિત કરી શકે છે, જૂના એક બધું ખસેડવા હવે નવું, અને માં કેટલાક વધારાના જગ્યા હોય છે, પરંતુ તે એક ન ગમે છે જાવા અથવા Python જેવી ભાષાઓ અથવા અન્ય કોઇ નંબર જેની સાથે ભાષાઓ માટે તમે અમુક પરિચિત હોઈ શકે છે તમે માત્ર વસ્તુઓ ઉમેરી શકો છો એક એરે ઓવરને કંટાળો આવે ત્યાં સુધી. તમે એક એરે હોય છે, ત્યારે તેના કદ છે કે કદ 6, અને વિચાર અગાઉ જેવી ખૂબ ચોક્કસ કદના એક બફર કર્યા, તમે દરવાજો બહાર ધારી હોય છે માપ શું તમે તેને કરવા માંગો છો? તમે ખૂબ મોટી ધારી, તો તમે જગ્યા બગાડ કરી રહ્યાં છો. તમે ખૂબ નાની ધારી, તો તમે ઓછામાં ઓછું, કે ડેટા સ્ટોર કરી શકો છો ઘણો વધારે કામ વગર. પોઇન્ટર તેથી આજે, આભાર, અમે કરી શકો છો સાથે મળીને આપણા પોતાના વૈવિધ્યપૂર્ણ stitching શરૂ માહિતી માળખાં, અને હકીકત એ છે કે અહીં કંઈક છે કે થોડી વધુ દેખાય છે પ્રથમ નજરમાં છુપાયેલું છે, પરંતુ આ અમે એક કડી થયેલ કૉલ કરશો શું છે યાદી, અને સારાંશ તેના નામ પ્રકારની તે. તે નંબરો યાદી છે, અથવા આ કિસ્સામાં, નંબરો યાદી પરંતુ તે કશું યાદી હોય છે, પરંતુ શકે છે તે એક સાથે તીર માર્ગ દ્વારા જોડાયેલા છે અને માત્ર એક અનુમાન લેવા શું ટેકનિક સાથે અમે રજુ કરવાનો પ્રયત્ન કરવા જતા હોય છે એકસાથે ભાતનો ટાંકો માટે, પ્રકારની એક થ્રેડ સાથે પોપકોર્ન જેમ, અહીં યાદીઓ લંબચોરસ કડી? તેના નંબરો? અંતર્ગત ભાષા લક્ષણ શું છે? પ્રેક્ષક: એક નિર્દેશક. ડેવીડના MALAN: એક નિર્દેશક. તેથી આ તીર દરેક અહીં રજૂ એક નિર્દેશક અથવા માત્ર એક સરનામું. તેથી અન્ય શબ્દોમાં, હું માંગો છો, તો નંબરોની યાદી સંગ્રહવા માટે, જો હું માંગો છો હું માત્ર તેને સંગ્રહવા કરી શકો છો વૃદ્ધિ અને ઘટાડવાની ક્ષમતાને ઝાકઝમાળ મારા ડેટાને માળખું. તેથી હું થોડો કરવાની જરૂર છે વધુ વ્યવહારિકતા, કુશળતા, પરંતુ આ નોંધ્યું છે કે ચિત્ર પ્રકારની સૂચવે તમે માત્ર થોડી થ્રેડો મળી છે કે જો બધું મળીને જોડાઈ કદાચ જગ્યા બનાવવા માટે કે જે હાર્ડ નથી તે લંબચોરસ વચ્ચે બે અથવા તે ગાંઠો બે કે અમે શરૂ કરી શકશો નવી નોડ મૂકી, તેમને ફોન, અને પછી કેટલાક નવા થ્રેડ સાથે, માત્ર એકસાથે ત્રણ ગાંઠો ખાઈ, પ્રથમ એક, છેલ્લા એક છે, અને એક તમે માત્ર મધ્યમ દાખલ છે. અને ખરેખર એક કડી થયેલ યાદી ઝાકઝમાળ જેમ નહિં પણ, ગતિશીલ છે. તે પ્રગતિ કરી શકે છે અને તે કરી શકો છો સંકોચો અને જો તમે ન કરો ખબર હોય અથવા અગાઉથી કેવી રીતે કાળજી હોય છે ખૂબ માહિતી તમે સંગ્રહ કરી રહ્યા છીએ, પરંતુ તે અમે થોડી હોય છે બહાર વળે આ અમલ કરવા માટે કેવી રીતે કાળજી. તેથી પ્રથમ અમે અમલ કેવી રીતે વિચાર કરીએ આ થોડું લંબચોરસ છે. તે પૂર્ણાંક અમલ કરવા માટે સરળ છે. તમે માત્ર પછી પૂર્ણાંક n અને કહે છે તમે પૂર્ણાંક માટે 4 બાઇટ્સ વિચાર, પરંતુ હું પૂર્ણાંક કેવી રીતે મેળવી શકું, તે n કૉલ અને પછી એક નિર્દેશક, આગામી કૉલ કરો. અમે આ કહી શકે છે વસ્તુઓ અમે માંગો કંઈપણ પણ હું એક વૈવિધ્યપૂર્ણ માહિતી માળખું જરૂર છે. અરે વાહ? પ્રેક્ષક: 'નું ચિહ્ન [અશ્રાવ્ય]. ડેવીડના MALAN: તેથી ચિન્હ અમે ઉપયોગ કરશે સંભવિત નોડ સરનામું વિચાર. પરંતુ અમે અન્ય જરૂર સી લક્ષણ માટે મને બનાવવા માટે ક્ષમતા આપે છે આ વૈવિધ્યપૂર્ણ લંબચોરસ, આ વૈવિધ્યપૂર્ણ ચલ તમે યાદમાં, કરશે. પ્રેક્ષક: એક સ્ટ્રક્ટ. ડેવીડના MALAN: એક સ્ટ્રક્ટ. છેલ્લા અઠવાડિયે યાદ, અમે રજૂઆત કરી સ્ટ્રક્ટ, આ પ્રમાણમાં સિમ્પલ કીવર્ડ કે અમને આ જેવી વસ્તુઓ કરી શકો છો. સી ડેટા સાથે આવે ન હતી માળખું વિદ્યાર્થી કહેવાય છે. તે પૂર્ણાંક અને ફ્લોટ અને કોલસો બનાવો અને સાથે આવે છે જેમ કે, પરંતુ તે વિદ્યાર્થી સાથે ન કરવામાં આવે તો, પરંતુ અમે એક વિદ્યાર્થી ડેટા પ્રકાર બનાવી શકો છો, આ વાક્યરચના સાથે વિદ્યાર્થી માળખું, અહીં. અને તમે ફરીથી અને ફરીથી આ જોશો. તેથી વિશે ચિંતા કરશો નહીં કીવર્ડ્સ યાદ છે, પરંતુ મહત્વપૂર્ણ છે કે મુખ્ય શબ્દ છે અમે જણાવ્યું હતું કે માત્ર એ હકીકત સ્ટ્રક્ટ અને પછી અમે તેને વિદ્યાર્થી કહેવામાં આવે છે અને અંદર વિદ્યાર્થી એક નામ અને એક ઘર હતું એક ડોર્મ અથવા જેમ કે. અને તેથી હવે આજે, ચાલો આ પ્રસ્તાવ દો. હું થોડા શબ્દો ઉમેર્યાં, પણ જો હું માંગો છો કર્યું છે કે આ લંબચોરસ અમલ કરવા માટે પૂર્ણાંક અને બંને મળી નિર્દેશક, તમે, હું શું છું ખબર નોડ કહેવાય સ્ટ્રક્ટ જાહેર કરવા જઈ રહી છે. હું કહેવા જાઉં, તે અંદર પણ છું નોડ, આ લંબચોરસ, પૂર્ણાંક છે કે અને અમે તેને કહી શકશો એન અને તે આગામી નિર્દેશક છે. અને આ એક થોડો વર્બોઝ છે પરંતુ તમે તે વિશે વિચારો તો, ચિત્રમાં હતા કે તીર એક ક્ષણ પહેલા શું માહિતી પ્રકાર છે? જ્યાં તે તીર દરેક પોઇન્ટ છે માહિતી માળખું કયા પ્રકારનું છે? તે માત્ર સે દીઠ પૂર્ણાંક તરફ ઇશારો નથી. તે તરફ ઇશારો કરે છે સમગ્ર લંબચોરસ વસ્તુ અને તે લંબચોરસ વસ્તુ, અમે નોડ તરીકે ઓળખાય છે, જણાવ્યું હતું. અને તેથી અમે પ્રકારની હોય છે પુનરાવર્તિત આ જેમ વ્યાખ્યાયિત નોડ કે, અમે કહીએ છીએ, એ કહેવાય પૂર્ણાંક સમાવશે અને નિર્દેશક આગળ અને કહેવાય જે માહિતી બંધારણ પ્રકાર કે નિર્દેશક પોઇન્ટ દેખીતી રીતે છે સ્ટ્રક્ટ નોડ પ્રયત્ન જઈ રહી છે. તેથી આ annoyingly વર્બોઝ છે અને માત્ર વિદ્યાડબંરવાળું હોઈ કારણ શા માટે આપણે કરી શકતા નથી આ કહેવું છે, કે જે પ્રમાણિકપણે ઘણો વધુ વાંચનીય લાગે છે રિકોલ વાંચી છે કે સી કારણ કે વસ્તુઓ ઉપરથી નીચે સુધી, ડાબેથી જમણે. અમે અર્ધવિરામ વિચાર ત્યાં સુધી તે નથી શબ્દ નોડ ખરેખર અસ્તિત્વમાં છે. અમે આ પ્રકારની હોય છે માંગો છો, તો માહિતી અંદર ચક્રીય સંદર્ભ માળખું, અમે આ કરવા માટે હોય છે, જ્યાં અમે ટોચ પર સ્ટ્રક્ટ નોડ કહે છે કે જે અમને આ વર્ણન એક લાંબા માર્ગ આપે છે વસ્તુ, અમે સ્ટ્રક્ટ નોડ કહે છે પછી અંદર, અને પછી ખૂબ જ છેલ્લા વાક્ય પર અમે કહીએ છીએ, બધા હક છે, સી, જે રીતે દ્વારા, ફક્ત આ સમગ્ર ખરેખર કૉલ વસ્તુ નોડ અને બંધ એકસાથે શબ્દ સ્ટ્રક્ટ મદદથી. તેથી આ માત્ર પ્રકારની એક વાકયરચનામાં છે આખરે આપણને બનાવી દે છે કે યુક્તિ બરાબર આ જેવી લાગે છે કે કંઈક. આપણે હવે ધારે તો અમે કરી શકો છો જેથી સી માં આ વસ્તુ અમલમાં મૂકવા માટે, કેવી રીતે ખરેખર આપણે શું આ સરકાઉ શરૂ? વેલ, હકીકતમાં, અમે શું છે બધા છે જમણી અને માત્ર ડાબી ફરી વળવું પ્રકારની ગાંઠો સામેલ અથવા ગાંઠો કાઢી અથવા આપણે માંગો છો ત્યાં વસ્તુઓ શોધવા માટે, પરંતુ આ કરવા માટે, ચાલો આગળ વધો અને બનાવવા દો વસ્તુઓ થોડી વધુ વાસ્તવિક, કારણ કે આ આમ અત્યાર સુધી સુપર નીચા સ્તર રહી છે. કોઈને શાબ્દિક પ્રથમ હોઈ કરવા માંગો છો? ઠીક છે. પર આવો. તમારુ નામ શુ છે? ડેવિડ ડેવિડ. ડેવીડના MALAN: ડેવિડ. તમને મળી ને આનંદ થયો. હું પણ. બધા અધિકાર. અને અમે એક નંબર 9 જરૂર છે. તરીકે સારી નથી પ્રથમ છે, કદાચ. ઠીક છે, નંબર 9. એક નંબર 17, કૃપા કરીને. મને થોડી દૂર પાછા જઈએ. સંખ્યા 22, કૃપા કરીને, અને કેવી રીતે દૂર પાછા વિશે હું કોઇ પણ હાથ જોઈ શકો છો જો બધા પ્રકાશ અથવા કોઈ સાથે. કોઈને અધિકાર ત્યાં સ્વૈચ્છિક આવી રહી છે. તમે આવો માંગો છો? તમારા ડાબા હાથ બળજબરી ઉપર રહ્યું છે. 17 બરાબર. 22. 26 નીચે આવતા હોય છે. અન્ય કોઈને પણ ગમશે forcefully-- પર આવો. એક વાસ્તવિક સ્વયંસેવક. તેથી ખૂબ જ ઝડપથી, તો તમે ગાય્ઝ વ્યવસ્થા કરી શકે છે પોતે માત્ર ગમે સ્ક્રીન પર ગાંઠો. આભાર. અને તમે 26 હશો. બધા અધિકાર અને ઝડપી પરિચય. તેથી હું ડેવિડ છું અને તમે પણ છે? ડેવિડ ડેવિડ. ડેવીડના MALAN: અને તમે છે? જેક: જેક. સુ: સુ. ALEX: એલેક્સ. રાફેલ: રાફેલ. TAYLOR: ટેલર. ડેવીડના MALAN: ટેલર. ઉત્તમ. તેથી આ અમારા સ્વયંસેવકો છે આજે અને આગળ વધો અને કે જે રીતે થોડો પાળી અને માત્ર આગળ વધો અને રાખવા તમે અથવા તમારા તરીકે તમારા નંબરો હોલ્ડિંગ પ્રથમ સાઇન અને તમારા ડાબા હાથ મદદથી આગળ વધો અને માત્ર અમલ આ તીર, માત્ર તમારા ડાબા હાથ શાબ્દિક અર્થ છે કે જેથી તમે નિર્દેશ કરીશું ગમે તરફ સંકેત અને જાતે કે જેથી અમુક જગ્યા આપે છે અમે દૃષ્ટિની ખરેખર તમારા હાથ જોઈ શકો છો પોઇન્ટ, અને તમે માત્ર નિર્દેશ કરી શકો છો પ્રકારની જમીન પર દંડ છે. તેથી અહીં અમે એક એક કડી થયેલ યાદી છે બે, ત્રણ, ચાર, પાંચ ગાંઠો શરૂઆતમાં, અને અમે આ ખાસ છે નોટિસ જે શરૂઆતમાં નિર્દેશક કી અમે ટ્રેક રાખવા માટે હોય છે, કારણ કે સમગ્ર લંબાઈ યાદી કોઈક. તેઓ છોડી રહ્યાં છો, તેમ છતાં આ ગાય્ઝ, જમણી પાછા મેમરી પાછળ, તેઓ ખરેખર ગમે ત્યાં હોઈ શકે કમ્પ્યુટરની મેમરી છે. તેથી આ ગાય્સ હોઈ શકે છે સ્ટેજ પર ગમે ત્યાં સ્થાયી અને તેથી કે જે લાંબા સમય સુધી તેઓ છો તરીકે દંડ છે, ખરેખર એક બીજા પર પોઇન્ટ, પરંતુ બધી વસ્તુઓ રાખવા સ્વચ્છ અને સરળ, અમે પડશે માત્ર તેમને ડ્રો જેવા અધિકાર માટે છોડી આ છે, પરંતુ મોટા ગાબડા હોય હોઈ શકે છે તે ગાંઠો વચ્ચે. હવે, હું વાસ્તવમાં કેટલાક સામેલ કરવા માંગો છો નવી કિંમત, ચાલો આગળ વધો અને આ કરવા દો. હવે અમે એક તક છે અન્ય નોડ પસંદ કરો. 55 mallocing સાથે બંધ શરૂ કરીએ છીએ. કોઈને malloc હોવા વાંધો છે? ઠીક છે, પર આવે છે. તમારુ નામ શુ છે? રેઈન્બો: રેઈન્બો. ડેવીડના MALAN: રેઈન્બો? બધા અધિકાર. Malloc રેઈન્બો. પર આવો. તેથી હવે આપણે આપણી જાતને પૂછી ઍલ્ગરિધમનો અમે 55 મૂકી શકો છો જ્યાં. તેથી અમને તમામ ખબર, દેખીતી રીતે, જ્યાં તે કદાચ અમે પ્રયાસ કરી રહ્યાં છો, તો અનુસરે આ સૉર્ટ રાખવા અને તમે ગાય્ઝ એક લઇ શકે છે તો પાછા પગલું તેથી અમે બંધ કરાયું નથી સ્ટેજ, કે જે મહાન હશે. તેથી વાસ્તવમાં, સપ્તરંગી, મારી સાથે અહીં શરૂ કરવા માટે, કારણ કે અમે હવે કરી શકો છો કમ્પ્યુટર તરીકે એક સમયે માત્ર એક ચલ જુઓ. આ પ્રથમ નોડ છે તેથી જો. તેમણે એક નોડ નથી નોટિસ તેમણે માત્ર એક નિર્દેશક છે તેમણે પ્રયત્ન દોરવામાં છે અને તે શા માટે છે એક નિર્દેશક માત્ર કદ નથી તે સંપૂર્ણ લંબચોરસ છે. તેથી અમે દરેક ખાતે તપાસ જઈ રહ્યાં છો પુનરાવૃત્તિ 9 કરતાં 55 ઓછા છે? નંબર 17 કરતાં 55 ઓછા છે? નંબર 22 કરતાં ઓછી? 26 કરતાં ઓછી? 34 કરતાં ઓછી? અને તેથી હવે, દેખીતી રીતે રેઈન્બો ઓવરને અંતે અનુસરે છે. તેથી સ્પષ્ટ હોઈ શકે છે, અને શું તમારું નામ, ટેલર હતો? TAYLOR: ટેલર. ડેવીડના MALAN: ટેલર વચ્ચે એટલી ડાબી બાજુ અને અહીં રેઈન્બો હાથ, જેની પાસેથી શું નિર્દેશ કરવાની જરૂર છે આ યાદી માં 55 દાખલ કરવા માટે ઓર્ડર? અમે શું કરવાની જરૂર છે? અરે વાહ? પ્રેક્ષક: ટેલર હાથ ડાબી નિર્દેશ કરવાની જરૂર છે. ડેવીડના MALAN: ચોક્કસ. તેથી નોડ દાખલ આ યાદી ઓવરને માં ખૂબ સરળ છે કારણ કે ટેલર માત્ર જમીન પર, તેના બદલે નિર્દેશ છે અથવા આપણે નલ તે કહી શકશો નલ ગેરહાજરીમાં જેવું છે એક નિર્દેશક અથવા ખાસ શૂન્ય નિર્દેશક, તમે છો તમારા ડાબા સાથે બિંદુ પર જઈને હાથ રેઈન્બો અને પછી રેઈન્બો પર, જ્યાં તમારા ડાબા જોઈએ હાથ કદાચ નિર્દેશ? ડાઉન. તેના હાથ જેવું છે, તો તે સારું નથી અહીં અથવા સૉર્ટ કોઇ બંધ તરફ જે રીતે. કે માનવામાં આવશે એક કચરો કિંમત પરંતુ તે માટે પોઇન્ટ જો કેટલાક જાણીતા કિંમત, અમે પડશે શૂન્ય અથવા નલ કૉલ, તે બરાબર છે અમે આ એક શબ્દ છે, કારણ કે અને અમે યાદી હવે સમાપ્ત છે ખબર. તેથી શું બીજા છે પ્રમાણમાં સરળ કેસ? અમે 5 malloc શકે છે? પર આવો. તમારુ નામ શુ છે? ટિફની: ટિફની. ડેવીડના MALAN: હું દિલગીર છું? ટિફની: ટિફની. ડેવીડના MALAN: ટિફની. બધા અધિકાર. ટિફની malloced કરવામાં આવી છે કિંમત 5. પર આવો. આ એક ખૂબ પ્રમાણમાં સરળ છે, પરંતુ હવે ઓપરેશન્સ ઓફ ઓર્ડર પર વિચાર કરીએ. તે ખૂબ સરળ હતો અંતે ટેલર સાથે. સંખ્યા 5, અલબત્ત કરતાં ઓછી 9 છે અને તેથી અમે ટિફની છે, ડેવિડ છે અને તમારું નામ શું હતું? જેક: જેક. ડેવીડના MALAN: જેક. ટિફની, જેક, અને ડેવિડ. જેની હાથ પ્રથમ સુધારાશે જોઇએ? શું તમે અહીં શું કરવા માંગો છો? એક દંપતિ શક્ય માર્ગો છે, પરંતુ એક અથવા વધુ ખોટું રીતે પણ છે. પ્રેક્ષક: leftmost સાથે શરૂ કરો. ડેવીડના MALAN: આ leftmost સાથે શરૂ કરો. કોણ પછી અહીં leftmost છે? પ્રેક્ષક: પ્રથમ. ડેવીડના MALAN: બરાબર. તેથી પ્રથમ સાથે શરૂ કરો અને તમે ક્યાં કરી ડેવિડ હાથ હોઈ અપડેટ કરવા માંગો છો? પ્રેક્ષક: 5 તરફ. ડેવીડના MALAN: બરાબર. પાંચ અંતે દાઉદ, બિંદુ અથવા ટિફની અહીં છે, અને હવે? પ્રેક્ષક: ટિફની 9 નિર્દેશ? ડેવીડના MALAN: પરફેક્ટ, માતાનો Binky સિવાય વડા માત્ર પ્રકારની અધિકાર છે, બંધ પડી? સાથે ખોટું શું છે કારણ કે શાબ્દિક આ ચિત્ર? પ્રેક્ષક: કંઈ પોઇન્ટ છે. ડેવીડના MALAN: કંઈ છે હવે જેક માટે પોઇન્ટ. અમે શાબ્દિક 9 અનાથ કર્યું અને 17 છે, અને અમે શાબ્દિક કર્યું આ મેમરી બધા લીક દ્વારા કારણ કે પ્રથમ દાઊદના હાથમાં અપડેટ, કે તે યોગ્ય રીતે છે, કારણ કે ત્યાં સુધી દંડ હવે ટિફની પર પોઇન્ટ, પરંતુ કોઈ એક હતી, જો જેક અંતે નિર્દેશ કરવા અગમચેતી, પછી અમે ગુમાવી કર્યું કે યાદી સમગ્ર. તેથી આપણે પૂર્વવત્ દો. તેથી તે એક સારી વાત હતી સફર પરંતુ હવે યોગ્ય દો. આપણે સૌથી પહેલા શું તેના બદલે શું કરવું જોઈએ? અરે વાહ? પ્રેક્ષક: ટિફની 9 નિર્દેશ જોઈએ? ડેવીડના MALAN: હું નથી કરી શકો છો તમે કે બંધ વિચાર. 9 કોણ નિર્દેશ જોઈએ? પ્રેક્ષક: ટિફની. ડેવીડના MALAN: બધા અધિકાર. તેથી ટિફની 9 પ્રથમ નિર્દેશ જોઈએ. તેથી ટિફની લેવી જોઈએ એક સરખા કિંમત પર ડેવિડ, જે લાગે છે એક ક્ષણ માટે બિનજરૂરી, પરંતુ તે બીજું, કારણ કે હવે દંડ છે પગલું, અમે દાઊદના હાથમાં અપડેટ કરી શકો છો ટિફની પર, અને પછી તો નિર્દેશ અમે ફક્ત પ્રકારની વસ્તુઓ સાફ અપ આ વસંત જેવા પ્રકારની છે છતાં, હવે તે એક યોગ્ય નિવેશ છે. તેથી ઉત્તમ. તેથી હવે અમે લગભગ ત્યાં છો. માતાનો એક અંતિમ દાખલ કરો કિંમત 20 મૂલ્ય. અમે એક અંતિમ સ્વયંસેવક malloc શકે તો શું? પર આવો. તેથી આ એક થોડી વધુ મુશ્કેલ છે. પરંતુ ખરેખર, આ કોડ અમે છો લેખન, મૌખિક, તેમ છતાં માત્ર એક ટોળું કર્યા જેવી છે હવે શરતો અધિકાર હોય તો શું? અમે એક શરત હતી તે અનુસરે તો ચકાસણી અંતે, કદાચ શરૂઆતમાં. અમે લૂપ અમુક પ્રકારની જરૂર છે મધ્યમાં સ્થળ શોધવા. તેથી આપણે તમારું નામ શું છે સાથે તે કરવા દો? એરિક એરિક. ડેવીડના MALAN: એરિક? એરિક. તમને મળી ને આનંદ થયો. તેથી અમે 20 હોય છે. પાંચ કરતા ઓછી? નંબર નવ કરતા ઓછા? નંબર 17 કરતાં ઓછી? નંબર ઠીક છે. તેમણે અહીં અનુલક્ષે છે અને તમારા નામ ફરીથી છે? સુ: સુ. ડેવીડના MALAN: સુ. ALEX: એલેક્સ. ડેવીડના MALAN: સુ, એલેકસ, અને? એરિક એરિક. ડેવીડના MALAN: એરિક. જેની હાથ પ્રથમ સુધારાશે કરવાની જરૂર છે? પ્રેક્ષક: એરિક. ઠીક છે. તેથી એરિક જ્યાં અંતે નિર્દેશ જોઈએ? 22 મુ. સારી. અને હવે આગામી શું છે? દાવો પછી એરિક પર નિર્દેશ કરી શકો છો અને હવે, જો તમે ગાય્સ માત્ર જે સારું હોય છે અમુક જગ્યા બનાવવા દૃષ્ટિની, હવે અમે નિવેશ કર્યું છે. તેથી હવે એક પ્રશ્ન પર વિચાર કરીએ પરંતુ અમારા સ્વયંસેવકો માટે ખૂબ આભાર. ખૂબ જ સારી રીતે થાય છે. તમને ગમે તો, તે રાખી શકો છો. અને અમે એક અતિસુંદર વિદાય ભેટ, જો હોય તમે દરેક એક તણાવ બોલ લેવા માંગો છો. મને ફક્ત આ નીચે પસાર કરીએ. તેથી આ takeaway શું છે? આ અમેઝિંગ હોય તેમ લાગે છે અમે હવે હોય ત્યાં સુધી તરીકે એક માટે વૈકલ્પિક રજૂ જેથી મર્યાદિત નથી કે એરે કેટલાક નિશ્ચિત કદ એક એરે માટે. તેઓ ગતિશીલ પ્રગતિ કરી શકે છે. પરંતુ અમે જેમ જ અઠવાડિયામાં જોઇ ભૂતકાળમાં, અમે મફત માટે કંઈ ક્યારેય વિચાર જેવા ચોક્કસ અહીં એક વેપાર બોલ છે. એક કડી થયેલ એક ઊંધો તેથી યાદી આ dynamism છે? આ ક્ષમતા, પ્રમાણિકપણે વૃદ્ધિ પામે છે અને માટે અમે કાઢી કરી શકે છે જરૂરી અને અમે સંકોચો શકે છે. અમે શું કિંમત ચૂકવીને કરવામાં આવે છે? બે વખત સૌ પ્રથમ જ જગ્યા ધરાવે છે. તમે ચિત્ર પર નજર કરો તો, લાંબા સમય સુધી છું હું પૂર્ણાંકો યાદી સ્ટોર. હું એક યાદી સ્ટોર છું પૂર્ણાંકો વત્તા પોઇન્ટર. તેથી હું જગ્યાનો જથ્થો બમણો રહ્યો છું. હવે, કદાચ કે આવા નથી એક મોટો સોદો 4 બાઇટ્સ, 8 બાઇટ્સ, પરંતુ તે ચોક્કસપણે ઉમેરો કરી શકે છે મોટા માહિતી સમૂહો માટે. અન્ય નુકસાન શું છે? અરે વાહ? પ્રેક્ષક: અમે છે તેમને એક બાય એક પસાર થાય છે. ડેવીડના MALAN: યાહ. અમે તેમને એક બાય એક પસાર હોય છે. જો અમે આ સુપર આપ્યો શું ખબર ચોરસ કૌંસ અનુકૂળ લક્ષણ સંકેત, વધુ યોગ્ય રેન્ડમ ઍક્સેસ તરીકે ઓળખાય છે, અમે માત્ર જમ્પ કરી શકો છો જ્યાં વ્યક્તિગત તત્વ પરંતુ હવે હું હજુ પણ હતી, તો અહીં મારા સ્વયંસેવકો, હું શોધવા માટે ઇચ્છતા હોય તો નંબર 22, હું માત્ર નથી કરી શકો છો કૌંસ કંઈક કંઈક આવો. હું ખૂબ, ઉપર યાદી જોવા માટે હોય છે સરખી અમારી શોધ ઉદાહરણો જેમ, સંખ્યા 22 શોધવા માટે. તેથી અમે ત્યાં કિંમત ચૂકવી પડી છે એવું લાગે છે. પરંતુ અમે તેમ છતાં કરી શકો છો અન્ય સમસ્યાઓ ઉકેલવા માગે છે. હકીકતમાં, મને પરિચય દો દ્રશ્યો માત્ર એક દંપતિ. તમે નીચે કરવામાં આવી છે તેથી જો માથેર ડાઇનિંગ હોલ તાજેતરમાં, તમે કે યાદ પડશે તેમના આ જેમ ટ્રે રન ટાઇમ સ્ટેકનું, અમે આ ઉધાર વર્ગ પહેલાં Annenberg. તેથી ટ્રે આ સ્ટેક છે, જોકે, પ્રતિનિધિ ખરેખર છે કમ્પ્યુટર સાયન્સ માહિતી માળખું. એ માહિતી બંધારણ છે કોમ્પ્યુટર વિજ્ઞાન એક સ્ટેક તરીકે ઓળખાય છે, જે ખૂબ જ સરસ રીતે બરાબર આ દ્રશ્ય પોતે પૂરું પાડે છે. આ ટ્રે દરેક ન હોય તો તેથી ટ્રે પરંતુ એક નંબર જેવી અને હું ઈચ્છતો નંબરો સ્ટોર કરવા માટે, હું અહીં એક નીચે મૂકી શકે છે, અને હું અહીં અન્ય નીચે મૂકી શકે અને નંબરો સ્ટેકીંગ ચાલુ એક બીજા, અને શું છે ટોચ પર આ વિશે સંભવિત ઉપયોગી શું સૂચિતાર્થ છે કે છે આ માહિતી માળખું? હું બહાર ખેંચી શકે છે કે જે નંબર પ્રથમ સૌથી સરળ? ત્યાં તાજેતરમાં એક મૂકો. તેથી આ અમે કહીએ છીએ કોમ્પ્યુટર વિજ્ઞાન એક LIFO માહિતી માળખું. માં પ્રથમ બહાર રહે છે. અને અમે લાંબા શા પહેલાં જોશો કે, હવે ઉપયોગી પણ હોઈ શકે છે માત્ર મિલકત માને છે. જો તમને લાગે કે અને તે પ્રકારની મૂર્ખ છે ડાઇનિંગ હોલ તે કેવી રીતે વિશે. દર વખતે તેઓ સ્વચ્છ ટ્રે અને ટોચ પર તાજી રાશિઓ મૂકી, તમે અગાઉ સ્વચ્છ કરી શકે છે પરંતુ આખરે ખૂબ જ ગંદા અને ડસ્ટી ખૂબ તળિયે ટ્રે જો તમે ખરેખર ક્યારેય કે તળિયે મેળવવા સ્ટેક, કારણ કે તમે માત્ર નવા મૂકી રાખવા અને તે ટોચ પર સ્વચ્છ રાશિઓ. આ જ વસ્તુ થાય છે શકે છે એક સુપરમાર્કેટ માં પણ. તમારે એક પ્રદર્શન કેસ હોય દૂધ અને દર વખતે CVS ના અથવા વધુ દૂધ નહીં રહેલી વ્યકિત, તમે માત્ર milks ધક્કો જો તમે પહેલાથી જ પાછળ છે અને તમે અપ ફ્રન્ટ નવા મૂકી તમે કેટલાક ખૂબ બીભત્સ હોય રહ્યા છીએ આ માહિતી માળખું ઓવરને અંતે દૂધ, તે નીચે હંમેશા કારણ કે સમાન તે પાછળ હંમેશા છે. પરંતુ વિશે વિચારો કરવા માટે અન્ય માર્ગ છે માહિતી અને હમણાં પૂરતું, આ લાઇન. તમે એક તે લોકો છો, તો જે ગમે એપલ સ્ટોર્સ બહાર લાઇન જ્યારે નવા ઉત્પાદન આવે છે બહાર, તો તમે કદાચ છો સ્ટેક માહિતી મદદથી નથી માળખું તમે કારણ કે દરેક વ્યક્તિને કોણ છે સ્વત્વાર્પણ કરવું કરશે લાઇન કેટલાક નવા રમકડા ખરીદવા માટે. તેના બદલે, તમે કદાચ ઉપયોગ કરી રહ્યાં છો માહિતી માળખું કેવા પ્રકારની સિસ્ટમ અથવા શું પ્રકારની વાસ્તવિક દુનિયામાં? આસ્થાપૂર્વક તે એક વાક્ય છે, અથવા વધુ યોગ્ય રીતે અથવા વધુ બ્રિટિશ, જેમ કે એક કતાર. અને તે એક કતાર પણ બહાર વળે કોમ્પ્યુટર વિજ્ઞાન માહિતી માળખું, પરંતુ કતાર ખૂબ જ છે વિવિધ મિલકત. તે LIFO નથી. માં પ્રથમ બહાર રહે છે. ભગવાન મનાઈ ફરમાવવી. તે જગ્યાએ FIFO છે. પ્રથમ પ્રથમ બહાર, માં. અને તે એક સારી વાત છે ઔચિત્યની ખાતર ચોક્કસપણે જ્યારે તમે લાઇન રહ્યાં છો સવારે સુપર પ્રારંભિક. તમે પ્રથમ ત્યાં વિચાર જો પ્રથમ તેમજ બહાર વિચાર કરવા માંગો છો. અને તેથી આ માહિતી તમામ માળખાં, ક્યુને અને રન ટાઇમ સ્ટેકનું અને અન્ય જુમખું, તમે બહાર વળે આ માત્ર એક એરે વિચાર કરી શકો છો. આ કદાચ એક એરે છે ચોક્કસ માપ 4, પરંતુ તે કરશો અમે હમણાં જ ખૂંટો શકે છે, જો પ્રકારની સરસ હોઈ ટ્રેની લગભગ અનંત ઊંચા અમે તો કે ઘણા ટ્રે અથવા સંખ્યાઓ છે. તેથી કદાચ અમે કરવા માંગો છો અહીં એક કડી થયેલ યાદી વાપરવા માટે, પરંતુ વેપાર બોલ હોઈ ચાલે છે સંભવિત છે કે અમે વધુ મેમરી જરૂર છે, થોડો વધુ સમય લે છે, પરંતુ અમે સ્ટેક ઊંચાઇ મર્યાદા નથી, ખૂબ માથેર પ્રદર્શન કેસ જેમ સ્ટેક કદ મર્યાદિત કરી શકે છે, અને તેથી આ ડિઝાઇન નિર્ણયો અથવા આખરે અમને ઉપલબ્ધ વિકલ્પો. આ માહિતી સાથે જેથી માળખાં, અમે શરૂ કર્યું સંભવિત નવી ઉચ્ચ ભૂસકે જોઈ શું પર અગાઉ સુપર ઝડપી હતી અને અમે છોડી જાય છે જ્યાં બંધ આજે અને જ્યાં અમે મેળવવા માટે આશા પડશે બુધવારે છે, અમે પડશે એક માહિતી જોવા માટે શરૂ અમને શોધવા દે છે કે માળખું લોગ અંત સમય માહિતી મારફતે ફરી. અને અમે સપ્તાહ શૂન્ય માં, સ્મૃતિ, જોયું કે દ્વિસંગી શોધ અથવા વિભાજન સાથે અને એક અને જીતી. તે હજુ સુધી પાછા અને વધુ સારી રીતે આવે છે આ બુધવાર માટે હોલી ગ્રેઇલનો આ સાથે આવવા પ્રયત્ન કરશે સાચી ચાલે છે માહિતી બંધારણ અથવા સૈદ્ધાંતિક માં સતત સમય, જેમાં તે કેવી રીતે ઘણા વાંધો નથી લાખો અથવા વસ્તુઓ અબજો અમે આ માહિતી માળખું હોય છે, તે કરશે અમને સતત સમય લે છે, કદાચ એક પગલું અથવા બે પગલાંઓ અથવા 10 પગલાંઓ પરંતુ પગલાંઓ સતત નંબરો કે માહિતી બંધારણ મારફતે શોધવા માટે. તે ખરેખર પવિત્ર ગ્રેઇલ હશે પરંતુ બુધવારે તે પર વધુ. પછી યા જુઓ. [સંગીત વગાડવાનો]