[Powered by Google Translate] [6 અઠવાડિયું] [ડેવિડ જે Malan] [હાર્વર્ડ યુનિવર્સિટી] [આ CS50 છે.] [CS50.TV] આ CS50 છે, અને આ 6 અઠવાડિયું શરૂઆત છે, જેથી નવા સાધનો દંપતી હવે ઉપલબ્ધ છે માટે તમે લાભ ના લેવા માટે, જેમાં સૌ પ્રથમ CS50 પ્રકાર કહેવામાં આવે છે. ઓડ્સ છે જો તમે મને અથવા શિક્ષણ ફેલો કોઈપણ જેવા છીએ, તમે કદાચ કાર્યક્રમ, જેમની શૈલી આ જેવી થોડી કંઈક જુએ છે જોઇ છે. કદાચ તમે કેટલાક મોડી રાત્રે જ ખૂણામાંથી કાપવાની શરૂ કરવા, અથવા તમે તેની સાથે પાછળથી વ્યવહાર પડશે, અને પછી ટીએફ અથવા CA ઓફિસ કલાકો દરમિયાન ઉપર આવે છે. પછી તેને હાર્ડ અમારા માટે વાંચવા માટે. વેલ, આ કોડ વાક્યરચના અનુસાર યોગ્ય છે, અને તે કમ્પાઇલ કરવામાં આવશે, અને તે વાસ્તવમાં ચાલી જશે. પરંતુ તે ચોક્કસપણે શૈલી માટે 5 નથી. પરંતુ હવે અહીં, જો આપણે આ ડિરેક્ટરીમાં જાઓ નોટિસ અને એ કે હું conditions2.c-હોય અને હું આ ફાઈલ conditions2.c પર આ નવા આદેશ, style50, સ્કોર લિમિટેડ, નોંધ્યું છે કે તે મને જાણ છે કે તે ઢબના રહી છે. Gedit નોંધ્યું કે ફાઈલ ડિસ્ક પર બદલાઈ ગયેલ છે, અને જો હું ફરીથી લોડ કરો ક્લિક કરો, તમારા બધા સમસ્યાઓ હવે ઓટોમેટેડ છે. [વધાવી] કે જે વસ્તુઓ અમે આ સપ્તાહમાં કર્યું છે. સમજો કે તે અપૂર્ણ છે, કારણ કે ત્યાં અમુક કોડ છે કે તે ફક્ત સંપૂર્ણપણે stylize કરવાનો નથી, થશે સમજો પરંતુ હવે એ સાધન તમે લાભ ના લઈ શકે છે માત્ર જો ઉપર વ્યવસ્થિત વધુ મૂકવામાં errantly સર્પાકાર કૌંસ કેટલાક અને ગમે છે. પરંતુ વધુ આકર્ષક હવે CS50 તપાસ છે. CS50 તપાસ સાથે, તમે ખરેખર આ જ ચોકસાઈ પરીક્ષણો કરી શકો છો તમારા પોતાના કોડ કે જે શિક્ષણ ફેલો કરવા સક્ષમ હોય છે છે. આ આદેશ વાક્ય ઉપયોગીતા છે કે જે ઉપકરણ હવે આવે છે જલદી તમે દીઠ તરીકે update50 કરવું pset 4 સ્પષ્ટીકરણો, તમે અને તે અનિવાર્યપણે ઉપયોગ આના જેવું જ. તમે આદેશ check50 ચલાવો. પછી તમે આદેશ વાક્ય દલીલ પાસ, અથવા વધુ સામાન્ય રીતે સ્વીચ અથવા ધ્વજ તરીકે પણ ઓળખાય છે. સામાન્ય રીતે, વસ્તુઓ છે કે જે hyphens પાસે સ્વીચ તરીકે ઓળખવામાં આવે છે આદેશ વાક્ય કાર્યક્રમ છે, તેથી-c સ્પષ્ટ ચકાસણીઓમાંની કે જે તમે ચલાવવા માંગો છો. આ પરીક્ષણો છે કે જે તમે ચલાવવા માંગો છો આ શબ્દમાળાને દ્વારા વિશિષ્ટ રીતે ઓળખાય છે, 2012/pset4/resize. અન્ય શબ્દોમાં, કે જે હમણાં જ એક મનસ્વી પરંતુ અનન્ય શબ્દમાળા છે કે અમે અનન્ય pset હિસ્સો 4 ચોકસાઈ પરીક્ષણો ઓળખવા વાપરો. અને પછી તો તમે ફાઈલો એક જગ્યા અલગ પડેલ યાદી સ્પષ્ટ કરે છે કે તમે અપલોડ કરવા માંગો છો વિશ્લેષણ માટે CS50 તપાસ માટે. હમણાં પૂરતું, જો હું મારા દ્રાવણમાં માટે અહીં જાઓ resize.c- દો મને એક મોટી બારી ટર્મિનલ ખોલો અને હું આગળ વધો અને ચાલો સ્કોર check50-c 2012/pset4/resize કહે, અને પછી હું આગળ જાઓ અને ફાઈલો નામો સ્પષ્ટ કરવા માટે, resize.c, અને પછી Enter ફટકો તે સંકોચન કરતું, તે અપલોડ્સ, તે ચકાસે છે, અને હું માત્ર પરીક્ષણ સમગ્ર જથ્થો નિષ્ફળ ગયું. શીર્ષ પર ડાબે લાલ માં એક કહે છે કે resize.c અને bmp અસ્તિત્વ ધરાવે છે. કે કસોટી હતી. કે પ્રશ્ન અમે કહેવામાં આવી હતી. અને તે નાખુશ છે કારણ કે જવાબ ખોટા હતા. તેને નીચે સફેદ લખાણ કહે છે તે અસ્તિત્વમાં bmp.h અપેક્ષિત છે, અને તે માત્ર મારા દોષ છે. હું તેને અપલોડ કરવા માટે ભૂલી ગયા છો, તેથી હું બન્ને ફાઇલો અપલોડ કરવાની જરૂર છે, resize.c અને bmp.h. પરંતુ હવે અન્ય પરીક્ષણો તમામ પીળો છે નોટિસ કારણ કે તેઓ નથી ચાલે છે, અને તેથી હસતો ચહેરો ઊભી છે કારણ કે તેઓ ન તો ખુશ ન ઉદાસી છે, પરંતુ અમે લાલ કે મુદ્દો નિવારણ પહેલાં તે અન્ય ચેકો રન કરશે. મને આ નક્કી કરે છે. મને બહાર ઝૂમ અને આ પુનઃ ચલાવો, bmp.h સાથે પણ આ સમય આદેશ વાક્ય પર, દાખલ કરો, અને હવે જો તમામ સારી રીતે જાય, તે પછી અને પરિણામે તપાસ પરત તમારા પકડ ચાલી રહ્યું છે શ્વાસ- બધા લીલા, જેનો અર્થ થાય છે કે હું ખરેખર સારી 4 pset પર કરી રહ્યો છું અત્યાર સુધી. તમે જુઓ છો અને વર્ણનાત્મક ટેક્સ્ટ માંથી અટકળ બાંધવી અહીં કરી શકો છો બરાબર શું છે અમે પરીક્ષણ કર્યું છે. અમે પરીક્ષણ પ્રથમ ફાઇલો અસ્તિત્વમાં હોય? પછી અમે પરીક્ષણ resize.c કમ્પાઇલ કરે છે? તો પછી અમે એ નથી કે તે ફરીથી કદમાં જ્યારે n એ, એ પુન: માપ પરિબળ, 1 છે નથી 1x1-પિક્સેલ બીએમપી પરીક્ષણ કર્યું છે. હવે, જો તમે કોઈ વિચાર n એ શું છે, તો તમે એક વાર તમે 4 pset માં ડાઇવ કરશે, પરંતુ તે માત્ર એક સેનીટી ચકાસવા માટે ખાતરી કરો કે તમે માપ બદલવાની નથી કરો બધા એક છબી જો પુન: માપ પરિબળ 1 છે. જો તેનાથી વિપરિત, તે 2x2 યોગ્ય રીતે એક 1x1 પિક્સેલ બીએમપી માટે 1x1 પિક્સેલ resizes જ્યારે n 2 છે, પછી એ જ રીતે, ખાણ મુજબ રચાય છે. ટૂંકમાં, આ કરવા માટે, એક જ છે, જે પાર આંગળીઓને લેવા તમે પહેલાં અધિકાર સમીકરણની તમારા pset સબમિટ કરો. તમે જાણતા હશે ચોકકસ શું તમારા ટીએફ ટૂંક જાણતા હશે , જ્યારે તમે આ સમસ્યા સેટ કેટલાક સબમિટ વિશે જાઓ અને શિક્ષણશાસ્ત્ર વિષયક પ્રેરણા ખરેખર છે મૂકવા તમે સામે કે જેથી તક જ્યારે તમે તર્કગમ્ય ખબર કે ત્યાં તમારો કોડ માં ભૂલો અને પરીક્ષણો છે કે જે પસાર થઈ રહી નથી છે, તમે વધુ અસરકારક સમય આગળ ઉપર મૂકવા માટે તે સમસ્યા હલ કરી શકો છો બદલે પોઈન્ટ ગુમાવી, તમારા ટીએફ માંથી પ્રતિસાદ મેળવવા, અને પછી જાઓ, "Ahh," જેમ હું જે figured છે કરીશું. હવે ઓછામાં ઓછા ત્યાં મદદ માટે છે કે જે તમને શોધવા સાધન છે. તે બહાર નિર્દેશ જ્યાં ભૂલ નથી જવાનું, પણ તે તમને જણાવશે તે દર્શાવે છે. હવે ખ્યાલ એ પરીક્ષણો જરૂરી સંપૂર્ણ નથી. જસ્ટ કારણ કે તમે એક લીલો હસતો ચહેરાઓ પૂર્ણ સ્ક્રીન વિચાર નથી તેનો અર્થ નથી, તમારો કોડ પરિપૂર્ણ છે પરંતુ તે અર્થ એ નથી કે તે ચોક્કસ ઉલ્લેખ દ્વારા સૂચવવામાં પરીક્ષણ પાસ છે. ક્યારેક અમે તપાસમાં નથી પ્રકાશિત થશે. હમણાં પૂરતું, ગૂઢ રહસ્યની અથવા ડિટેક્ટિવ વાર્તા કે નાટક, એક 4 pset પાસાંઓ છે, છે નિરાશાજનક પ્રકારની જો અમે તમને આપી તે શું છે, અને ત્યાં છતી ઘણી છે તે જવાબ જે વ્યક્તિ કે લાલ અવાજ છે. આ સ્પેક હંમેશા pset 5 આગળ માટે ભવિષ્યમાં સ્પષ્ટ થશે શું તમે અસ્તિત્વમાં ચકાસે છે. તમે નોટિસ પડશે ત્યાં નીચે આ સફેદ URL છે. હવે માટે, આ માત્ર તપાસ આઉટપુટ છે. જો તમે તે URL ની મુલાકાત લો, તમે ઉન્મત્ત, છુપાયેલું સંદેશાઓ સંપૂર્ણ જથ્થો મળશે કે જે તમે મારફતે જોવા સ્વાગત કરશો, પરંતુ તે સ્ટાફ માટે મોટે ભાગે છે તેથી અમે નિદાન અને check50 પોતે ભૂલો ડિબગ કરી શકો છો. મુસીબત વગર, ચાલો જ્યાં અમે બોલ છોડી પર ખસેડો. CS50 પુસ્તકાલય અમે લીધો માટે અમુક અઠવાડિયા માટે મંજૂર પછી પરંતુ છેલ્લા અઠવાડિયે, અમે પાછા એક તેનો સ્તરોની peeling શરૂ કર્યું. અમે એકાંતે બદલે શું તરફેણમાં શબ્દમાળા મૂકવા શરૂ? [વિદ્યાર્થીઓ] ચાર. ચાર *, જે ઘરનાં પરચૂરણ કામો * કરવામાં આવ્યો છે અને આ તમામ સમય, પરંતુ હવે અમે ડોળ કરે છે કે તે એક વાસ્તવિક માહિતી પ્રકાર શબ્દમાળા છે નથી. તેના બદલે, તે પ્રકારની સમાનાર્થી ઘરનાં પરચૂરણ કામો * માટે લાગે, અને શબ્દમાળા અક્ષરો ક્રમ છે, તેથી તે શા માટે અર્થમાં બનાવવા નથી ઘરનાં પરચૂરણ કામો * ઓ તરીકે શબ્દમાળાઓ પ્રતિનિધિત્વ? ચાર રચે છે * શું શબ્દમાળા આ વિચાર સંદર્ભમાં પ્રતિનિધિત્વ કરે છે? યાહ >> [વિદ્યાર્થી]. પ્રથમ અક્ષર. ગુડ, પ્રથમ અક્ષર છે, પરંતુ તદ્દન પ્રથમ અક્ષર. તે [વિદ્યાર્થીઓ] સરનામું છે. ગુડ, પ્રથમ અક્ષર ની સરનામું. બધા જરૂરી છે માટે કોમ્પ્યુટરની મેમરીમાં શબ્દમાળા પ્રતિનિધિત્વ ફક્ત તેની પ્રથમ બાઇટ તે અનન્ય સરનામું છે. તમે પણ જાણતા લાંબા તે કેવી રીતે નથી હોય કારણ કે તમે કેવી રીતે આકૃતિ બહાર ગતિશીલ કરી શકે છે? [વિદ્યાર્થી] શબ્દમાળા રન નોંધાયો નહીં. તમે શબ્દમાળા લંબાઈ, ઉત્તમ છે, પરંતુ શબ્દમાળા લંબાઈ કામ કરે છે કેવી રીતે કહી શકે છે? તે શું કરે છે? યાહ. [વિદ્યાર્થી] જઈને ત્યાં સુધી તમે નલ અક્ષર વિચાર રાખો. અરે વાહ, બરાબર, તે માત્ર લૂપ માટે એક સાથે iterates, લૂપ જ્યારે, * ના અંત ગમે છે, અને ઓવરને રજૂ થાય છે 0 \ દ્વારા કહેવાતા nul પાત્ર, nul, માટે નલ, કે જે નિર્દેશક સાથે ભેળસેળ ન શકાય, જે વાતચીત આજે ફરીથી આવશે. અમે પાછા GetInt એક સ્તર peeled, અને પછી અમે GetString જોતા હતા, અને તે વિધેયો બંને ખરેખર, અથવા યાદ, GetString, ચોક્કસ કાર્ય મદદથી હતી ખરેખર પાર્સ છે, કે જે, અથવા વંચાય છે વિશ્લેષણ, વપરાશકર્તાની ઇનપુટ. અને જે નવા કાર્ય શું છે? Scanf અથવા sscanf. વાસ્તવમાં તે થોડા અલગ લોટમાંથી બનાવવામાં આવે છે. ત્યાં scanf છે, ત્યાં sscanf છે, ત્યાં fscanf છે. હવે માટે, જોકે, ચાલો એક વધુ સરળતાથી સમજાવી પર કેન્દ્રિત છે, દો અને મને આગળ વધો અને સાધન માં ખોલવા આ જેવા ફાઇલ, scanf1.c. આ એક સુપર સરળ કાર્યક્રમ છે, પરંતુ તે કંઈક કે અમે ક્યારેય કર્યું છે કરે છે આ CS50 પુસ્તકાલય ની મદદ વગર. આ વપરાશકર્તા માંથી પૂર્ણાંક નોંધાયો નહીં. તે કેવી રીતે કામ કરે છે? વેલ, 16 ત્યાં લીટી માં, નોંધ્યું છે કે અમે પૂર્ણાંક કહેવાય એક્સ જાહેર અને વાર્તામાં આ બિંદુએ, x ની કિંમત શું છે? [અશ્રાવ્ય વિદ્યાર્થી જવાબ] [ડેવિડ એમ] અધિકાર કોણ જાણે, કેટલાક કચરો કિંમત સંભવિત છે, તેથી 17 માં, અમે માત્ર વપરાશકર્તા કહેવું મને નંબર આપવા માટે, કૃપા કરીને, અને 18 પગલું છે જ્યાં તે રસપ્રદ નોંધાયો નહીં. Scanf માટે printf એક વિચાર છે કે જેમાં તે અવતરણ આ બંધારણમાં કોડ વાપરે ઉધાર લાગે છે. % D કોર્સ એક અક્ષાંશ નંબર છે. પરંતુ શા માટે હું અને તેના બદલે એક્સ માત્ર એક્સ માં પસાર છું? ભૂતપૂર્વ યોગ્ય છે. યાહ. [અશ્રાવ્ય વિદ્યાર્થી જવાબ] બરાબર, જો આ કાર્યક્રમના ઉદ્દેશ, કાર્ય GetInt પોતે જેમ, છે વપરાશકર્તાના પૂર્ણાંક વિચાર હું વિધેયો પસાર કરી શકો છો તમામ ચલો હું માંગો છો, પરંતુ જો હું તેમને સંદર્ભ દ્વારા પાસ કરતું નથી અથવા સરનામા દ્વારા અથવા નિર્દેશક, આજની હેતુઓ માટે તમામ પર્યાય, પછી કાર્ય કરવા માટે કોઈ કે ચલ સમાવિષ્ટો બદલી કરવાની ક્ષમતા ધરાવે છે. આ એક નકલ માં સ્વેપ એ બગડેલ આવૃત્તિ જેવી જ પસાર કરશે કે અમે થોડા સમયમાં લગભગ હવે વાત કરી છે. પરંતુ તેના બદલે, આમ અને એક્સ દ્વારા, હું શું શાબ્દિક માં પસાર છું? [વિદ્યાર્થી] આ સરનામું. એક્સ ઓફ સરનામા. >> તે scanf કહેવાય કાર્ય માટે એક નકશો દોરવા અને અહીં જણાવ્યું હતું કે જેવું છે, આ કમ્પ્યુટર મેમરી એક ભાગ માટે દિશાઓ છે જે માટે તમારે સાઇન કેટલાક પૂર્ણાંક સંગ્રહવા જઈ શકે છે ક્રમમાં sscanf માટે હવે શું કરવું શું ઓપરેટર, વાક્યરચના કયા ભાગ તે માટે ઉપયોગ કરે છે રહ્યું છે છતાં પણ અમે તેને જોઈ કારણ કે કોઈએ આ કાર્ય લખ્યું કરી શકે છે? અન્ય શબ્દોમાં કહીએ - કે શું છે? [વિદ્યાર્થી] વાંચી એક્સ. ત્યાં કેટલાક વાંચન જ હશે, પરંતુ માત્ર એક્સ અહીં બાબતે. જો scanf x ની સરનામું કરવામાં આવી પસાર થાય છે, વાક્યરચના અનુસાર, ઓપરેટર શું ક્યાંક અસ્તિત્વમાં બંધાયેલ છે અંદર ની scanf અમલીકરણ કરે છે, જેથી scanf વાસ્તવમાં તે સરનામા માટે 2 નંબર લખી શકે? અરે વાહ, જેથી *. યાદ કે * અમારા ડિરેફરન્સ ઓપરેટર, જે અર્થ એવો થાય ત્યાં જવું. એકવાર તમે એક સરનામું કરવામાં આપ્યો કર્યું છે, કારણ કે કેસ અહીં છે, scanf કદાચ-જો આપણે છે તે ખરેખર તેના સ્ત્રોત આસપાસ જોવામાં કોડ છે * એક્સ અથવા વાસ્તવમાં તે સરનામા પર જાઓ અને કેટલાક કિંમત ત્યાં મૂકી સમકક્ષ કરી. હવે, તરીકે કેવી રીતે scanf કીબોર્ડ તરફથી ઇનપુટ નહીં, અમારા હાથ આજે બહાર વેવ પડશે. જસ્ટ ધારે છે કે ઓપરેટિંગ સિસ્ટમ સાથે વાત sscanf પરવાનગી આપે છે વપરાશકર્તાની કીબોર્ડ છે, પરંતુ આ 19 વાક્ય હવે બિંદુએ, જ્યારે અમે ફક્ત બહાર એક્સ છાપો, તે કેસ હોય તેમ લાગે છે scanf કે એક્સ માં પૂર્ણાંક મૂકવામાં આવ્યું છે. કે ખરેખર કેવી રીતે કામ કરે છે scanf છે, અને છેલ્લા અઠવાડિયે યાદ કે બરાબર કેવી રીતે GetString અને GetInt અને તેના કાર્યો અન્ય કુટુંબ આખરે કામ કરે છે, sscanf જેમ થોડો અણબનાવ હોવા છતાં, જેનો અર્થ થાય છે કે જેને બદલે શબ્દમાળા સ્કેન કરે છે. દો પરંતુ આ થોડો અણબનાવ પર એક નજર. Scanf2, હું ખરેખર અપ ખરાબ કર્યું. શું ખોટું અને છે હું ટિપ્પણી કે ખૂબ જ સમજાવે છે છુપાવવા પડશે શું આ કાર્યક્રમ સાથે ખોટું છે, સંસ્કરણ 2? કારણ કે આ સમય શક્ય તકનીકી રહો. તે ખૂબ સારી દેખાય છે. તે સરસ રીતે, ઇન્ડેન્ટેડ છે પરંતુ- ઠીક, કેવી રીતે આપણે તેના ટૂંકા પ્રશ્નો માટે નીચે વૃક્ષ, રોપા, વેલીનાં નકામાં ડાળ, ડાંખળાં, પાન, વગેરે કાપી નાખીને તેને ઘાટમાં લેવાં? 16 લાઇન. 16 વાક્ય ચોક્કસ પરંતુ તકનિકી ઇંગલિશ માં કરી શું છે? થોડું ત્રાસદાયક મેળવી. હા, માઇકલ. [વિદ્યાર્થી] તે એક શબ્દમાળા પ્રથમ અક્ષર તરફ ઇશારો કરે છે. ઠીક છે, બંધ. મને કે થોડો ઝટકો. શબ્દમાળા પ્રથમ અક્ષર માટે પોઇન્ટિંગ, તો તમે ચલ કહેવાય બફર જાહેર કરવામાં આવે છે કે જે શબ્દમાળા પ્રથમ સરનામા માટે નિર્દેશ કરી, અથવા બદલે છે, કે જે વધારે કામની પાળી માટે ખાસ નિર્દેશ કરશે. વાસ્તવમાં તે ગમે ત્યાં નથી પોઇન્ટ છે કારણ કે ત્યાં કોઈ સોંપણી ઓપરેટર છે નોટિસ. ત્યાં કોઈ સમાન નિશાની છે, જેથી તમામ અમે કરી રહ્યા છીએ તે ચલ કહેવાતા બફર allocating છે. તે 32 બિટ્સ બને છે કારણ કે તે એક નિર્દેશક છે, બફર સમાવિષ્ટો કદાચ છેવટે અને ચાર રચે એક સરનામું સમાવે છે, પણ હવે, બફર શું છે? જસ્ટ કેટલાક બનાવટી કોણ જાણે, કેટલાક કચરો કિંમત, કારણ કે અમે તેને બાહ્ય રીતે નથી આરંભ છે, તેથી અમે કંઈપણ નથી લાગતું કરીશું. ઠીક છે, તેથી હવે 17 વાક્ય શું છે 17 લીટી કરતું હોય તો શું? કદાચ કે આ ઉપર ગરમ કરશે. તે શબ્દમાળા અધિકાર છાપે છે? તે છાપે શબ્દમાળા કરો. 18 લીટી પરિચિત પ્રકારની હવે એ છે કે અમે ફક્ત આ એક અણબનાવ જોયું પરંતુ અલગ ફોર્મેટ કોડ સાથે છે, તેથી 18 લીટી માં, અમે scanf કહેવાની કરી રહ્યાં છો અહીં મેમરી એક ભાગ સરનામું છે. હું તમને એક શબ્દમાળા માં ઉપર ફોન કરો,% s દ્વારા સૂચિત કરવા માંગો છો, પરંતુ સમસ્યા એ છે કે આપણે વસ્તુઓને એક દંપતિ અહીં કર્યું નથી. એક સમસ્યાઓ શું છે? [વિદ્યાર્થી] તે એક NULL નિર્દેશક ખોટો સંદર્ભ માટે પ્રયાસ કરી રહી છે. ગુડ, નલ અથવા ફક્ત અન્યથા અજ્ઞાત પોઇન્ટર. તમે scanf એક સરનામું સોંપવામાં કરી રહ્યાં છો, પરંતુ તમે માત્ર એક ક્ષણ પહેલા કહ્યું હતું કે, કે જે અમુક સરનામા કચરો કિંમત છે કારણ કે અમે ખરેખર કંઈપણ તેને ન સોંપો નહોતી, અને તેથી તમે કહેતાં રહ્યાં છો scanf અસરકારક રીતે જવું શબ્દમાળા અહીં મૂકો, પરંતુ અમે જ્યાં હજી સુધી અહીં છે ખબર નહિં હોય, તેથી અમે ખરેખર બફર માટે મેમરી નથી ફાળવવામાં આવ્યા છે. વધુમાં, તમે શું પણ છે scanf પણ કહેવાની? ધારો કે આ મેમરી એક ભાગ હતો, અને તે કચરો કિંમત ન હતી, પરંતુ તમે હજુ પણ મહત્વપૂર્ણ કંઈક કહેવાની થતો નથી scanf. [વિદ્યાર્થી] તે ક્યાં ખરેખર છે, & "અને" નું ચિહ્ન. & "અને" નું ચિહ્ન છે, તેથી આ કિસ્સામાં, તે ઠીક છે. કારણ કે બફર પહેલાથી જ એક નિર્દેશક તરીકે જાહેર કરવામાં આવે છે સિન્ટેક્ષ ના * ભાગ સાથે, અમે & "અને" નું ચિહ્ન ઉપયોગ કરવાની જરૂર નથી કારણ કે તે પહેલાથી જ એક સરનામું છે, પરંતુ મને લાગે છે કે હું અહીં સાંભળ્યું. [વિદ્યાર્થી] મોટું તે કેવી રીતે છે? ગુડ, અમે scanf નથી કહેતાં મોટું કેવી રીતે આ બફર છે રહ્યાં છો, જેનો અર્થ થાય છે તો પણ બફર એક નિર્દેશક હતા, અમે scanf કહી રહ્યાં છે, એક શબ્દમાળા અહીં મૂકો, પરંતુ અહીં 2 બાઇટ્સ હોઇ શકે છે, તેને 10 બાઇટ્સ હોઇ શકે છે, તે મેગાબાઇટ હોઈ શકે છે. Scanf કોઈ વિચાર ધરાવે છે, અને કારણ કે આ મેમરી એક ભાગ છે કદાચ, તે હજુ સુધી શબ્દમાળા નથી. તે માત્ર ત્યારે જ શબ્દમાળા છે એક વાર તમે અક્ષરો અને \ મેમરી કે ભાગ માટે 0 લખો. હવે તે માત્ર મેમરી કેટલાક ભાગ છે. Scanf ખબર પડશે ત્યારે તે સરનામું લખીને રોકવા માટે. જો તમે ભૂતકાળમાં કેટલાક ઉદાહરણો છે જ્યાં હું રેન્ડમ કીબોર્ડ પર ટાઈપ યાદ બફર ઓવરફ્લો પ્રયત્ન કરી રહ્યા છે, અને અમે બરાબર છે કે જે વિશે શુક્રવારે વાત કરી. જો શત્રુ કોઈક તમારા કાર્યક્રમ એક બહુ મોટા શબ્દ injects અથવા વાક્ય અથવા શબ્દસમૂહ પછી તમે અપેક્ષા રાખતા હતા તમે રોળાઈ શકે છે મેમરી એક ભાગ છે, જે ખરાબ પરિણામ હોઈ શકે છે, સમગ્ર કાર્યક્રમ પોતે ઉપર લઈ જેવા હોય છે. અમે આ કોઈક ઠીક કરવાની જરૂર છે. મને બહાર ઝૂમ અને આ કાર્યક્રમ 3 આવૃત્તિ માં જાઓ. કે થોડો વધુ સારી છે. આ વૃતાન્તમાં, તફાવત નોટિસ. 16 લીટી માં, હું ફરીથી એક ચલ કહેવાય બફર જાહેર છું, પરંતુ તે શું હવે? તે 16 અક્ષરો ઝાકઝમાળ છે. આ સારી છે અને આ અર્થ કારણ કે હવે હું scanf કહી શકે છે અહીં મેમરી એક વાસ્તવિક ભાગ છે. તમે લગભગ પોઇંટરો હવે હોવાથી એરે વિચાર કરી શકો છો, છતાં પણ તેઓ ખરેખર સમકક્ષ નથી. તેઓ અલગ અલગ સંદર્ભમાં વર્તે પડશે. પરંતુ તે ચોક્કસપણે કેસ કે બફર સંદર્ભ આપે છે છે 16 સંલગ્ન અક્ષરો કારણ કે કે એક એરે શું છે અને કેટલાક અઠવાડિયા માટે હવે બની રહી છે. અહીં, હું scanf કહેવાની છું અહીં મેમરી એક ભાગ છે. આ સમય છે, તે ખરેખર મેમરી એક ભાગ છે, પરંતુ આ કાર્યક્રમ શા માટે છે હજી પણ વાપરી? શું ખોટું હજુ પણ છે? મેં કહ્યું કર્યા છે મને, પરંતુ-16 બાઇટ્સ આપી [વિદ્યાર્થી] તો શું તેઓ 16 કરતાં વધુ માં લખ્યું છે? બરાબર, જો 17 અક્ષરો અથવા 1700 અક્ષરો વપરાશકર્તા પ્રકારો? હકીકતમાં, ચાલો જોવા અમે આ ભૂલ પર સફર નથી કરી શકો છો હવે તો. તે વધુ સારી રીતે નથી, પરંતુ સંપૂર્ણ છે. મને આગળ વધો અને scanf3 બનાવવા માટે આ કાર્યક્રમ કમ્પાઇલ ચલાવો. મને scanf3 ચલાવવા માટે, કૃપા કરીને શબ્દમાળા: હેલો, અને અમે ઠીક લાગે છે. મને થોડી લાંબા સમય સુધી એક પ્રયાસ કરો, હેલો ત્યાં. ઠીક છે, હેલ્લો ત્યાં દો કેવી રીતે આજે તમે છે, દાખલ કરો. નસીબદાર પ્રકારની અહીં મેળવી રહ્યા છે, ચાલો હેલ્લો ત્યાં કહેવું તમે કેવી રીતે છે. તે ખરેખર ખૂબ જ. ઠીક છે, તેથી અમે નસીબદાર મળી. ચાલો જોવા જો આપણે આ ન ઠીક કરી શકે છે. ના, તે દો મને પણ નકલ કરશો નહિં બનશે. ચાલો આ ફરીથી પ્રયાસ કરો. અધિકાર બધા દ્વારા ઊભી છે. અમે જોશો લાંબા હું કેવી રીતે ધ્યાન કેન્દ્રિત જ્યારે હજુ પણ આ કરી ડોળ કરી શકો છો. તે ખરેખર ખૂબ જ. કે બદલે યોગ્ય ખરેખર છે. ત્યાં અમે જાઓ. બિંદુ કરી હતી. આ મૂંઝવતી છતાં પણ તે છે, કે તે એક મહાન મૂંઝવણ સૂત્રોની જ્યારે કાર્યક્રમો કે જે ભૂલો હોય લખવાનું કારણ કે તેઓ પોતાની જાતને પ્રગટ માત્ર એક વખત ક્યારેક જ્યારે છે. આ વાસ્તવિકતા એ છે કે જો તમારી કોડ સંપૂર્ણપણે તૂટી જાય છે, તે માત્ર સંપૂર્ણપણે ટૂંક સમયમાં આવી શકે એકવાર ભાંગી કારણ કે, કેટલીકવાર અનિવાર્યપણે થાય છે શું ઓપરેટિંગ સિસ્ટમ ફાળવે છે તમે કરતાં થોડી વધુ મેમરી ખરેખર કારણ ગમે તે માટે જરૂર છે, અને તેથી કોઈ એક 16 અક્ષરો તમારા ભાગ પછી તરત મેમરી ઉપયોગ કરે છે, તેથી જો તમે 17, 18, 19, ગમે છે, તે જેમ કે મોટો સોદો નથી જાઓ. હવે, કોમ્પ્યુટર, પણ જો તે બિંદુ પર તૂટી નથી, છેવટે કંઈક બીજું બાઇટ નંબર 17 અથવા 18 અથવા 19 નો ઉપયોગ કરી શકે છે, જે અંતે તમારો ડેટા નિર્દેશ કરે છે કે તમે ત્યાં મૂકી લાંબા અતિશય છે, તેમ છતાં, છે ફરીથી લખાઈ કેટલાક અન્ય કાર્ય દ્વારા સંભવિત બનશે. તે આવશ્યકપણે માટે અકબંધ રહી નથી ચાલી રહ્યું છે, પરંતુ તે જરૂરી seg દોષ નથી કારણ બનશે. પરંતુ આ કિસ્સામાં, હું આખરે પર્યાપ્ત અક્ષરો પૂરી પાડવામાં કે હું અનિવાર્યપણે મેમરી મારા સેગમેન્ટમાં વટાવી ગયું, અને છેતરપિંડી, ઓપરેટિંગ સિસ્ટમ જણાવ્યું હતું કે, "માફ કરશો, તે કોઈ સારું, સેગ્મેન્ટેશન ક્ષતિમાં છે." દો અને હવે શું શું મારું અહીં રહે ડિરેક્ટરી- નોંધ્યું છે કે હું આ ફાઇલને અહીં છે, કોર. નોંધ કરો કે આ ફરી કોર ડમ્પ કહે છે. તે આવશ્યકપણે એક ફાઇલ છે કે જે તમારા કાર્યક્રમ મેમરી સામગ્રી સમાવે છે એક મુદ્દો છે જેમાં તે ક્રેશ થયું છે, અને થોડા ઉદાહરણ અહીં પ્રયાસ માત્ર દો મને અહીં જાઓ અને scanf3 પર gdb ચલાવો અને પછી ત્રીજા કોર કહેવાય દલીલ સ્પષ્ટ કરવા માટે, અને અહીં નોંધ્યું છે કે જો હું કોડ યાદી, અમે હંમેશની જેમ કરવાનો gdb સાથે આ કાર્યક્રમ દ્વારા વૉકિંગ શરૂ કરી શકશો, અને હું તેને ચલાવવા અને માં પગલું આદેશ સાથે હું ફટકો-તરીકે કરી શકો છો કે તરત gdb- જલદી હું વિશાળ શબ્દમાળા માં લખીને પછી સંભવિત બગડેલ રેખા દબાવો, હું ખરેખર તેને અહીં ઓળખવા માટે સમર્થ હશો. વધુ આ પર, છતાં, કોર ડમ્પ દ્રષ્ટિએ વિભાગમાં અને ગમે કે જેથી તમે ખરેખર આસપાસ કોર ડમ્પ કરી શકે થેલી, કોથળી અંદર અને જુઓ વાક્ય શું કાર્યક્રમ તમે નિષ્ફળ ગયું. પછી પોઇંટરો અને સરનામાં પર કોઈપણ પ્રશ્ન છે? પર આજે કારણ કે, અમે લેવા માટે મંજૂર છે કે આ વસ્તુઓ અસ્તિત્વ ધરાવે છે શરૂ જઈ રહ્યાં છો અને અમે જાણીએ છીએ કે ચોકકસ શું તેઓ છે. હા. [વિદ્યાર્થી] આવો તમે એક & "અને" નું ચિહ્ન આગામી મૂકી નહોતી કેવી રીતે ભાગ- પ્રશ્ન સારું. હું કેવી રીતે આવ્યા હતા હોય છે એક & "અને" નું ચિહ્ન અક્ષર એરે માટે આગામી મૂકી તરીકે હું અગાઉ ન અમારા ઉદાહરણો સાથે સૌથી? ટૂંકા જવાબ છે એરે થોડો ખાસ હોય છે. તમે લગભગ ખરેખર એક સરનામું તરીકેની બફર વિચાર કરી શકો છો, અને તે માત્ર જેથી આ કેસ બને છે કે ચોરસ કૌંસ સંકેતલિપિ સગવડ છે કે જેથી અમે 0 કૌંસ, 1 કૌંસ માં જઈ શકે છે, 2 માટે * નોટેશનમાં ઉપયોગ કર્યા વગર, કૌંસ. કે જે સફેદ જૂઠ એક બીટ છે કારણ કે એરે અને પોઇન્ટર હકીકત છે, થોડુંક અલગ છે, પરંતુ તેઓ ઘણીવાર પરંતુ હંમેશા એકબીજાના ઉપયોગ કરી શકો છો. ટૂંકમાં, જ્યારે કાર્ય મેમરી એક ભાગ એક નિર્દેશક એવી અપેક્ષા છે, તમે ક્યાં તો તેને એક સરનામું કે malloc દ્વારા પરત ફર્યા હતા પસાર કરી શકો છો, અને અમે malloc ફરીથી લાંબા પહેલાં પડશે જુઓ, અથવા તમે તેને એરે નું નામ પસાર કરી શકે છે. તમે સંગ્રહ સાથે & "અને" નું ચિહ્ન કરતા નથી કારણ કે તેઓ પહેલાથી જ નથી અનિવાર્યપણે સરનામાં ગમે છે. કે એક અપવાદ છે. કુલ સ્કોર કૌંસ તેમને ખાસ બનાવે છે. તમે એક & "અને" નું ચિહ્ન મૂકી શકે બફર માટે આગામી? આ કિસ્સામાં નથી. કારણ કે ફરીથી, આ ખૂણામાં કેસ કામ કરશે એરે તદ્દન ખરેખર સરનામાં નથી જ્યાં. પરંતુ અમે કદાચ તે પહેલાં લાંબા પાછા અન્ય ઉદાહરણો સાથે આવી પડશે. ચાલો એક સમસ્યા અહીં ઉકેલ લાવવા પ્રયાસ કરો. અમે એ માહિતી બંધારણ છે કે અમે કેટલીક એક એરે તરીકે પણ ઓળખાય છે સમય માટે ઉપયોગ કરી રહ્યો છું હોય છે. બિંદુ માં કેસ, કે અમે શું માત્ર હતી. પરંતુ એરે કેટલાક upsides અને downsides છે. એરે સરસ શા માટે છે? એક વસ્તુ છે કે જે તમે ઇચ્છો-અંશે તમે એરે એરે-વિશે શું ગમે છે? શું તેમને વિશે અનુકૂળ છે? શું અનિવાર્ય છે? અમે પ્રથમ સ્થાને શા માટે ન હતી તેમને દાખલ? યાહ. [વિદ્યાર્થી] તેઓ માહિતી ઘણો સ્ટોર કરી શકો છો અને તમે સમગ્ર વસ્તુ ઉપયોગ નથી. તમે એક વિભાગનો ઉપયોગ કરી શકો છો. ગુડ, ઝાકઝમાળ તમે દશાંશ માહિતી ઘણો સ્ટોર કરી શકો છો સાથે, અને તમે જરૂરી તેને તેનો ઉપયોગ નથી, તેથી તમે overallocate કરી શકો છો, જે અનુકૂળ હોઈ શકે જો તમને અગાઉથી ખબર નથી એવી અપેક્ષા રાખે છે કંઈક કેટલી નથી શકે છે. GetString યોગ્ય ઉદાહરણ છે. GetString, અમને દ્વારા લેખિત, કોઈ વિચાર કેટલા અક્ષરો અપેક્ષા ધરાવે છે, તેથી હકીકત એ છે કે અમે સંલગ્ન મેમરી હિસ્સામાં ફાળવી શકે સારો છે. એરે પણ એક સમસ્યા અમે થોડા અઠવાડિયા પહેલા હવે જોયું ઉકેલવા જ્યાં તમારો કોડ માટે ખૂબ જ ખરાબ રીતે ડિઝાઇન કરવામાં કોઇ કાર્યમાં એકને શિરેથી ઊતરીને બીજાને શિરે જવું શરૂ થાય છે. જણાવ્યું હતું કે હું એક વિદ્યાર્થી ડેવિડ કહેવાય માળખું બનાવનાર, અને પછી તે ખરેખર એક વૈકલ્પિક હતો, અલબત્ત, એક ચલ કહેવાય નામ અને અન્ય મને લાગે છે કે, ઘર કહેવાય ચલ રહી છે, અને અન્ય ID ને કહેવાય છે કારણ કે તે આ વાર્તા માં હું પછી કંઈક બીજું દાખલ કરવા માગે છે ચલ પ્રોગ્રામમાં રોબ છો, તેથી તે પછી હું એક મિનિટ રાહ જુઓ નિર્ણય લીધો, હું આ ચલો નામ બદલી કરવાની જરૂર છે. ચાલો NAME1 ખાણ, ID1, house1 કૉલ કરો. ચાલો રોબ NAME2 ની, house2, ID2 કૉલ કરો. પરંતુ પછી ટોમી વિશે શું એક મિનિટ રાહ જુઓ! તો પછી અમે વધુ ત્રણ ચલો હતી. અમે કોઈએ, ચલો ચાર સેટમાં રજૂઆત કરી હતી. વિશ્વમાં અવ્યવસ્થિત ખૂબ જ ઝડપથી મેળવી શરૂ, તેથી અમે સ્ટ્ર્ક્ટ્સ રજૂઆત કરી હતી, અને શું સ્ટ્રક્ટ વિશે અનિવાર્ય છે? એક સી સ્ટ્રક્ટ શું તમને છે? તે ખરેખર ત્રાસદાયક છે આજે. શું >>? [અશ્રાવ્ય વિદ્યાર્થી જવાબ] અરે વાહ, ખાસ કરીને, typedef તમે નવી માહિતી પ્રકાર બનાવવા માટે પરવાનગી આપે છે, અને સ્ટ્રક્ટ, તો સ્ટ્રક્ટ કીવર્ડ, તમે પ્રાવૃત માટે પરવાનગી આપે છે માહિતી કલ્પનાત્મક સંબંધિત મળીને ટુકડાઓ અને ત્યાર બાદ તેમને વિદ્યાર્થી કંઈક કહી. કે સારા હતા કારણ કે હવે અમે નમૂનારૂપ બની શકે વધુ જેવું સરળ સુસંગત એક ચલ એક વિદ્યાર્થી કલ્પના બદલે આપખુદ શબ્દમાળા માટે એક, એક ID માટે આવી રહી છે, અને તેથી આગળ. એરે સરસ છે કારણ કે તેઓ અમને અમારી કોડ સફાઈ શરૂ કરવા માટે પરવાનગી આપે છે. પરંતુ શું નુકસાન હવે એક ઍરેની? તમે શું ન કરી શકો? યાહ. [વિદ્યાર્થી] તમે જાણતા મોટું તે કેવી રીતે હોય છે. તમે જાણવા મોટું તે કેવી રીતે હોય છે, જેથી તે પીડા પ્રકારની છે. તમે તે પહેલાં પ્રોગ્રામિંગ અનુભવ સાથે ખબર ભાષાઓ ઘણો માં, જાવા જેમ, તમે મેમરી એક ભાગ છે, ખાસ ઝાકઝમાળ પૂછી શકો છો, મોટું તમે કેવી રીતે હોય છે, લંબાઈ, મિલકત, તેથી વાત સાથે, અને તે ખરેખર અનુકૂળ છે. સી, તમે પણ સામાન્ય એરે પર strlen નથી કહી શકો છો strlen કારણ કે, જેમ શબ્દ સૂચિત કરે છે, શબ્દમાળાઓ માટે જ છે, અને તમે આ માનવ સંમેલન કારણે શબ્દમાળા લંબાઈ આકૃતિ કરી શકો છો એ \ 0, પરંતુ એક એરે કર્યા અને વધુ સામાન્ય છે, માત્ર મેમરી એક ભાગ છે. જો તે ints ઝાકઝમાળ છે, ત્યાં કેટલાક વિશિષ્ટ અક્ષર નથી ચાલી રહ્યું છે ઓવરને અંતે તમે પ્રતીક્ષામાં છે. તમારે એક એરે લંબાઈ યાદ છે. ઝાકઝમાળ અન્ય એક નુકસાન પોતે GetString તેના વડા ઉછેર. ઝાકઝમાળ અન્ય નુકસાન શું છે? સર, તમે મને અને માત્ર આજે. [અશ્રાવ્ય વિદ્યાર્થી પ્રતિભાવ] >> તે શું છે? તે સ્ટેક પર જાહેર કરવામાં આવ્યું છે. ઠીક છે, સ્ટેક પર જાહેર કરી હતી. તમે કે કેમ નથી ગમતી? [વિદ્યાર્થી] કારણ કે તે ફરીથી નહીં. તે ફરીથી નહીં. ઠીક છે, જો તમે એક એરે વાપરવા માટે મેમરીને ફાળવવા, તમે, ઉદાહરણ માટે નહિં, તો તે પરત ફરી શકે છે કારણ કે તે સ્ટેક પર છે. ઠીક છે, કે જે ગેરલાભ છે. અને કેવી રીતે આશરે એક ઝાકઝમાળ સાથે અન્ય? એકવાર તમે તેને ફાળવવા, તમે પ્રકારની ખરાબ જો તમને વધુ જગ્યાની જરૂર કરશો કરતાં કે એરે છે. તો પછી અમે રજૂઆત કરી હતી, સ્મૃતિ, malloc છે, જે અમને એ ગતિશીલ મેમરી ફાળવણી કરવાની ક્ષમતા આપી હતી. પરંતુ જો આપણે એક અલગ વિશ્વ સંપૂર્ણપણે પ્રયાસ કર્યો? જો અમે તે સમસ્યાઓ એક દંપતી ઉકેલવા માગે છે તેથી અમે જગ્યાએ મારું પેન નિદ્રાધીન અહીં ગયો છે જો આપણે તેને બદલે અનિવાર્યપણે વિશ્વ કે આ જેવા હવે બનાવવા માંગો? આ ઝાકઝમાળ છે, અને અલબત્ત, આ પ્રકારની ખરાબ એકવાર અમે એરે ઓવરને દબાવો, અને હવે હું લાંબા સમય સુધી અન્ય પૂર્ણાંક અથવા અન્ય પાત્ર માટે જગ્યા હોય છે. જો અમે પ્રકારના preemptively સારી કહી, અમે શા માટે આરામ નથી આ જરૂરિયાત છે કે મેમરી આ બધા ટુકડા પાછળ સંલગ્ન પાછળ હોઇ શકે છે, અને શા માટે, જ્યારે હું પૂર્ણાંક અથવા ઘરનાં પરચૂરણ કામો કરવાની જરૂર નથી, ફક્ત મને એક તેમને માટે જગ્યા આપી? અને જ્યારે હું અન્ય જરૂર છે, મને બીજા જગ્યા આપે છે, અને જ્યારે હું અન્ય જરૂર છે, મને બીજા જગ્યા આપે છે. જે લાભ હવે કોઈને જો બીજું છે અહીં ઉપર મેમરી, કોઈ મોટો સોદો લે છે. હું મેમરી આ વધારાના ભાગ અહીં છે અને પછી એક આ લઇશું. હવે, માત્ર અહીં કેચ છે કે આ લગભગ લાગે છે કે હું હોય વિવિધ ચલો સંપૂર્ણ જથ્થો. આ પાંચ જુદા જુદા સંભવિત ચલો જેમ લાગે છે. પરંતુ જો આપણે શબ્દમાળાઓ એક વિચાર ચોરી અમે કોઈક જેમાં આ વસ્તુઓ એકસાથે કલ્પનાત્મક લિંક કરવા માટે, અને જો હું આ હતી? આ મારું ખૂબ જ ખરાબ રીતે દોરવામાં તીર છે. ધારવું પરંતુ મેમરી આ હિસ્સામાં દરેક બીજા જણાવ્યું, અને આ વ્યક્તિ છે, જે પોતાના અધિકાર માટે આ બોલ પર કોઈ બહેન છે, આવી કોઈ તીર છે. આ હકીકત શું સંકળાયેલી યાદી તરીકે ઓળખાય છે છે. આ નવી માહિતી બંધારણ છે કે અમને મેમરી એક ભાગ ફાળવવા માટે પરવાનગી આપે છે, પછી બીજું, પછી બીજું, અન્ય, તો પછી કોઇ પણ સમયે અમે માંગો છો એક કાર્યક્રમ દરમિયાન, અને અમે યાદ રાખો કે તેઓ તમામ છો કોઈક સંબંધિત શાબ્દિક chaining દ્વારા મળીને તેમને, અમે અને તે pictorially એક તીર સાથે અહીં કર્યું હતું. પરંતુ કોડ છે, શું પદ્ધતિ કે જે દ્વારા તમે કોઈક કનેક્ટ કરી શક્યા હશે, લગભગ સ્ક્રેચ જેમ, એક બીજા ભાગ માટે ભાગ? અમે એક નિર્દેશક વાપરવા માટે, જમણી શકે છે? કારણ કે ખરેખર તીર કે ઉપરી ડાબા ચોરસમાં થી ચાલી રહ્યું છે, આ એક આ અહીં વ્યક્તિ, અંદર આ સ્ક્વેર ઓફ સમાવી શકે છે કેટલાક માત્ર ints કેટલાક માત્ર કોલસો બનાવો, પરંતુ જો હું ખરેખર ફાળવવામાં થોડો વધારે છે, જેથી હવે જગ્યા, મેમરી મારા હિસ્સામાં દરેક છતાં પણ આ મને ખર્ચ રહ્યું છે, હવે થોડી વધુ લંબચોરસ લાગે છે જ્યાં એક મેમરીનો હિસ્સામાં ઓફ છે નંબર માટે વપરાય છે, નંબર 1, જેમ કે અને પછી જો આ વ્યક્તિ 2 નંબર સ્ટોર કરે છે, મેમરી આ અન્ય ભાગ એક તીર માટે વપરાય છે, અથવા વધુ concretely, એક નિર્દેશક. ધારવું અને હું અહીં ઉપર સંખ્યા 3 સ્ટોર જ્યારે હું આ કે વ્યક્તિ પર નિર્દેશ કરવા માટે ઉપયોગ કરે છે, અને હવે આ વ્યક્તિ, ચાલો ધારી હું માત્ર મેમરી ત્રણ જેવા હિસ્સામાં કરવા માંગો છો. હું કે મારફતે લીટી દોરે, નલ સંકેત મળશે. ત્યાં કોઈ વધારાના પાત્ર છે. ખરેખર, આ છે અમે કેવી રીતે અમલમાં જઈ શકો કંઈક કે જે સંકળાયેલી યાદી તરીકે ઓળખાય છે. એક કડી થયેલ યાદી નવી માહિતી માળખું છે, અને તે વેગ તરફ પથ્થર છે ખૂબ પારખુ માહિતી માળખાં કે સમસ્યાઓ ઉકેલવા શરૂ ફેસબુક પ્રકારના સમસ્યાઓ લીટીઓ અને Google પ્રકારના સમસ્યાઓ સાથે જ્યાં તમે વિશાળ ડેટા સેટ્સ ધરાવે છે, અને તે લાંબા સમય સુધી તેને નહીં માટે બધું નજીકના સંગ્રહવા અને લીનીયર શોધ કંઈક ઉપયોગ અથવા બાઇનરી શોધ જેવા પણ કંઈક. તમે હજુ પણ વધુ સારી ચાલી વખત કરવા માંગો છો. હકીકતમાં, એક પવિત્ર Grails આપણે આ સપ્તાહ પછી અથવા આગામી વિશે વાત કરીશું અલ્ગોરિધમ ચાલી જેની સમય સતત છે. અન્ય શબ્દોમાં, તે હંમેશા સમય અને એ જ માત્રામાં કોઈ પદાર્થ લે છે મોટા કેવી રીતે ઇનપુટ છે, અને ખરેખર અનિવાર્ય હશે, હજુ પણ વધુ છે તેથી લઘુગુણકીય કંઈક કરતાં. શું સ્ક્રીન પર આ છે અહીં? આ લંબચોરસ દરેક બરાબર છે હું શું માત્ર હાથ દ્વારા લખવામાં આવી હતી. પરંતુ ડાબી પર બધી રીતે વસ્તુ ખાસ ચલ છે. તે એક નિર્દેશક જ હશે કારણ કે એક gotcha એક કડી થયેલ યાદી સાથે, આ વસ્તુઓ તરીકે ઓળખાય છે, છે કે જે તમે યાદીની લિંક એક ઓવરને પર અટકી છે. માત્ર એક શબ્દમાળા સાથે માંગો, તો તમારે પ્રથમ ઘરનાં પરચૂરણ કામો ની સરનામું જાણતા હોય છે. સંલગ્ન યાદી જ સોદો. તમે મેમરી પ્રથમ ભાગ ના સરનામું જાણતા હોય છે ત્યાંથી, કારણ કે તમે દરેક અન્ય એક પહોંચી શકે છે. નુકસાન. કિંમત શું અમે ગતિશીલ કર્યા આ વૈવિધ્યતાને માટે ચૂકવવામાં આવે છે મોટા માહિતી બંધારણ છે કે જો આપણે ક્યારેય વધુ મેમરી જરૂર છે, દંડ, માત્ર એક વધુ ભાગ ફાળવો અને નિર્દેશક દોરવા માંથી યાદીમાં નવા પૂંછડી માટે જૂના? યાહ. [વિદ્યાર્થી] તે લગભગ બમણું ખૂબ જગ્યા લે છે. તે બે વાર તેટલી જગ્યા લે છે, જેથી ચોક્કસપણે એક નુકસાન છે, અને અમે આ જોઇ છે સમય અને જગ્યા અને સાનુકૂળતા વચ્ચે પહેલાં સંતુલિત જ્યાં હવે, અમે આ નંબરો દરેક માટે 32 બિટ્સ જરૂર નથી. અમે ખરેખર 64, નંબર માટે 32 અને નિર્દેશક માટે 32 કરવાની જરૂર છે. પરંતુ હેય, હું RAM ની 2 ગીગાબાઇટ્સ છે. અન્ય 32 અહીં અને અહીં બિટ્સ ઉમેર્યું હતું કે સોદો મોટા થાય તેમ લાગતું નથી. પરંતુ મોટા માહિતી સમૂહો માટે, તે ચોક્કસપણે શાબ્દિક બમણી ખૂબ સુધી ઉમેરે છે. શું બીજું નુકસાન હવે, અથવા લક્ષણ શું આપણે આપી નથી, જો આપણે એક કડી થયેલ યાદી નથી અને ઝાકઝમાળ સાથે વસ્તુઓ યાદી પ્રતિનિધિત્વ? [વિદ્યાર્થી] તમે તે પાછળની નથી પસાર કરી શકો છો. તમે તેને પાછળની નથી પસાર કરી શકો છો, જેથી તમે પ્રકારની ખરાબ છો જો તમે વૉકિંગ કરી રહ્યાં છો ડાબેથી જમણી લૂપ અથવા જ્યારે લૂપ માટે ઉપયોગ કરવા માટે અને પછી તમે સમજો, "ઓહ, હું યાદી શરૂઆત પર જાઓ કરવા માંગો છો." તમે કારણ કે આ પોઇંટરો માત્ર ડાબી બાજુથી જમણી જઇ શકો છો તરીકે તીરો દર્શાવે છે. હવે, તમે બીજા ચલ સાથે યાદી શરૂઆત યાદ કરી શકે છે, પરંતુ તે માટે ધ્યાનમાં રાખવા જટિલતા છે. ઝાકઝમાળ, કોઈ બાબત અત્યાર સુધી તમે કેવી રીતે જાય છે, તો તમે હંમેશા બાદ, ઓછા, ઓછા કરવા માટે, શકે બાદ અને જ્યાંથી તમે આવ્યા માંથી પાછા જાઓ. અન્ય નુકસાન અહીં શું છે? યાહ. [અશ્રાવ્ય વિદ્યાર્થી પ્રશ્ન] તમે, જેથી તમે ખરેખર શકે કર્યા છે માત્ર એક માહિતી સમયમાં બમણું યાદીની લિંક કહેવાય માળખું પ્રસ્તાવ મૂક્યો, અને ખરેખર, તમે આ લંબચોરસ દરેક અન્ય નિર્દેશક ઉમેરો કરશે જે અન્ય દિશામાં જાય છે, ઊંધો જે હવે તમે પાછા અને આગળ પસાર કરી શકો છો, જે નુકસાન હવે તમે બધી મેમરીનો તરીકે કરી રહ્યાં છે ત્રણ વખત ઉપયોગ અમે ઉપયોગ અને એ પણ કોડ દ્રષ્ટિએ જટિલતા ઉમેરીને તમે તેને અધિકાર વિચાર લખી હોય છે. પરંતુ આ બધા કદાચ ખૂબ વાજબી આપલે, જો રિવર્સલ વધારે અગત્યની છે. યાહ. [વિદ્યાર્થી] તમે પણ એક 2D સંલગ્ન યાદી હોઈ શકે નહિં. ગુડ, તમે ખરેખર એક 2D યાદીની લિંક હોઈ શકે નહિં. તમે કરી શકે. તે લગભગ એક એરે તરીકે સરળ નથી. ઝાકઝમાળ જેમ, તમે ઓપન કૌંસ, બંધ કૌંસ, ઓપન કૌંસ, કૌંસ બંધ કરવા માટે, અને તમે કેટલાક માળખું 2-પરિમાણીય મેળવો. તમે 2-પરિમાણીય યાદીની લિંક અમલ કરી શકે છે જો તમે વધારાની તરીકે તમે આ બાબતો દરેક ત્રીજા નિર્દેશક એક પ્રસ્તાવ કરવું અને જો તમે અન્ય યાદી વિશે વિચારો તમને 3D શૈલી આવતા સ્ક્રીન માંથી અમને તમામ છે, કે જે માત્ર અમુક પ્રકારના અન્ય સાંકળ છે. અમે તે કરી શકી હોત, પરંતુ તે ઓપન કૌંસ, ચોરસ કૌંસ લખીને તરીકે સરળ નથી. યાહ. [અશ્રાવ્ય વિદ્યાર્થી પ્રશ્ન] ગુડ, તેથી આ એક વાસ્તવિક kicker છે. આ ગાણિતીક નિયમો છે કે અમે ઉપર, ઓહ, જેમ કે દ્વિસંગી શોધ pined કરી લીધી છે, તમે બોર્ડ પર નંબરો ઝાકઝમાળ શોધ કરી શકો છો અથવા ફોન બુકમાં તેથી વધુ ઝડપથી જો તમે વાપરવા વિભાજિત અને જીતી અને એક દ્વિસંગી શોધ અલ્ગોરિધમનો, પરંતુ બાઈનરી શોધ બે ધારણા જરૂરી છે. એક, કે માહિતી છટણી કરવામાં આવી હતી. હવે, અમે કદાચ આ છટણી રાખી શકો છો, તેથી કદાચ કે જે ચિંતા નથી, પરંતુ બાઈનરી છે શોધ પણ ધારી કે તમે નંબરો યાદી રેન્ડમ ઍક્સેસ હતી, અને ઝાકઝમાળ તમે રેન્ડમ એક્સેસ કરવાની પરવાનગી આપે છે, અને રેન્ડમ એક્સેસ દ્વારા, હું તેનો અર્થ જો તમે ઝાકઝમાળ આપવામાં કરી રહ્યાં છો, કેટલી સમયે તે તમે લે માટે 0 કૌંસ મેળવવા? એક ઓપરેશન, તમે માત્ર [0] ઉપયોગ કરે છે અને તમે ત્યાં છો. કેટલી પગલાંઓ તે 10 સ્થાન મેળવવા લાગી છે? એક પગલું, તમે માત્ર [10] પર જાઓ અને તમે ત્યાં છો. તેનાથી વિપરીત, તમે એક કડી થયેલ યાદીમાં 10 મા પૂર્ણાંક કેવી રીતે મેળવી શકું? તમે શરૂઆતમાં શરૂ હોય છે કારણ કે તમે માત્ર યાદ કરી રહ્યા છીએ એક કડી થયેલ યાદી ને શબ્દમાળા જેમ, શરૂઆતમાં યાદ આવી રહી છે તેના પ્રથમ ચાર રચે છે જે સરનામા દ્વારા, અને તે 10 મી પૂર્ણાંક શોધવા માટે બનાવવા માટે અથવા સ્ટ્રિંગ છે કે 10 મી પાત્ર, તો તમારે આખી ધુત્કારી કાઢવું ​​વસ્તુ શોધવા હોય છે. ફરીથી, અમે અમારી સમસ્યાઓ બધી હલ કરી રહ્યાં છો. અમે નવા રજૂઆત કરી રહ્યાં છો, પરંતુ તે ખરેખર તમે શું કરવા માટે ડિઝાઇન પ્રયાસ કરી રહ્યા છો તેના પર આધાર રાખે છે. આ અમલીકરણ દ્રષ્ટિએ, અમે તે વિદ્યાર્થી માળખું એક વિચાર ઉધાર કરી શકો છો. વાક્યરચના ખૂબ સમાન હવે સિવાય છે, આ વિચાર થોડો એક અમૂર્ત વધુ છે કરતાં ઘર અને નામ અને ID ને. પરંતુ હું પ્રસ્તાવ છે કે અમે સી એ માહિતી બંધારણ કરી શકે છે કે નોડ તરીકે ઓળખાય છે, સ્લાઇડ પર છેલ્લા શબ્દ સૂચવે છે, નોડ ની અંદર, અને નોડ ફક્ત કોમ્પ્યુટર વિજ્ઞાન એક સામાન્ય કન્ટેનર છે. તે સામાન્ય રીતે એક વર્તુળ કે ચોરસ અથવા લંબચોરસ તરીકે અમે કર્યું છે પ્રમાણે ઉઠાવવામાં છે. અને આ માહિતી માળખું, અમે પૂર્ણાંક, n હોય છે, જેથી નંબર હું સંગ્રહવા માંગો છો છે. પરંતુ આ બીજા લાઇન સ્ટ્રક્ટ નોડ આગામી * શું છે? આ શા માટે છે સાચું, અથવા ભૂમિકા શું આ વસ્તુ નાટક કરે છે, છતાં પણ તે પ્રથમ નજરમાં થોડી છુપાયેલું છે? યાહ. [અશ્રાવ્ય વિદ્યાર્થી જવાબ] બરાબર છે, તેથી spoils ના * સૉર્ટ કરો કે તે અમુક પ્રકારની એક નિર્દેશક છે. આ નિર્દેશક નું નામ આપખુદ આગામી છે, પરંતુ અમે તે કહે કરી શકે કંઈપણ અમે માંગો છો, પરંતુ આ નિર્દેશક બિંદુ શું કરે છે? [વિદ્યાર્થી] અન્ય નોડ >> એક્ઝેટલી., તે બીજા આવા નોડ નિર્દેશ કરે છે. હવે, આ સી એક જિજ્ઞાસા જેવું છે જણાવ્યું હતું કે સી કમ્પાઇલર ઉપરથી નીચે સુધી દ્વારા વાંચવામાં આવે છે, ડાબેથી જમણે, જેનો અર્થ છે કે જો એ આ થોડો અમે શું વિદ્યાર્થી સાથે કર્યું અલગ છે. જ્યારે અમે વિદ્યાર્થી વ્યાખ્યાયિત, અમે ખરેખર એક શબ્દ ત્યાં આવ્યો ન હતો. તે માત્ર typedef જણાવ્યું હતું. તો પછી અમે પૂર્ણાંક id, શબ્દમાળા નામ, શબ્દમાળા મકાન હતું, અને પછી સ્ટ્રક્ટ તળિયે વિદ્યાર્થી. આ ઘોષણા થોડું અલગ છે કારણ કે, ફરીથી, આ C કમ્પાઈલર થોડો મૂંગું છે. તે માત્ર એ જ ઉપરથી નીચે સુધી વાંચી રહ્યું છે, જેથી જો તે 2 જી વાક્ય અહીં સુધી પહોંચે જ્યાં આગામી જાહેર થાય છે અને તે જુએ છે, ઓહ, અહીં એક આગામી કહેવાય ચલ છે. તે સ્ટ્રક્ટ નોડ માટે નિર્દેશક છે. આ કમ્પાઈલર સમજવુ શું સ્ટ્રક્ટ નોડ છે જવાની છે? હું આ પહેલા વસ્તુને ક્યારેય સાંભળ્યું કર્યું છે, કારણ કે શબ્દ નોડ અન્યથા દેખાશે નહિં શકે નીચે સુધી, તેથી આ રીડન્ડન્સી છે. તમે સ્ટ્રક્ટ નોડ અહીં કહે છે, કે જે તમે પછી પાછળથી ટૂંકી કરી શકો છો નીચે અહીં typedef માટે આભાર, પણ આ કારણ કે અમે માળખાની અંદર માળખું પોતે સંદર્ભ કરવામાં આવે છે. કે એક ત્યાં gotcha છે. કેટલીક રસપ્રદ સમસ્યાઓ ઊભી થાય જતાં હોય છે. અમે નંબરોની યાદી મળી છે. અમે કેવી રીતે તે દાખલ કરી શકું? અમે તેને કેવી રીતે શોધી શકું? અમે કેવી રીતે તે કાઢી શકું? ખાસ કરીને હવે કે અમે આ પોઇંટરો તમામ વ્યવસ્થા હોય છે. તમે વિચાર્યું પોઇંટરો મન-બેન્ડિંગ જેવું હતા જ્યારે તમે હતા તેમાંના એક માત્ર તે પૂર્ણાંક વાંચવાનો પ્રયાસ. હવે અમે વર્તમાન યાદી વર્થ ચાલાકી છે. અમે અમારા વિરામ 5-મિનિટ શા માટે ન લો અહીં, અને પછી અમે લાવવા પડશે સ્ટેજ પર કેટલાક લોકો છે કે જે ચોક્કસ કરવું. સી વધારે મજા ત્યારે તેને અભિનય કર્યો છે છે. કોણ શાબ્દિક પ્રથમ થવા માંગો છો? ઠીક છે, પર આવે છે. તમે પ્રથમ છે. કોણ 9 થવા માંગો છો? ઠીક, 9. કેવી રીતે 9 વિશે શું? 17? થોડું અહીં ક્લિક. 22 અને કે આગળની હરોળ માં 26. અને પછી કેવી રીતે કોઈને વિશે ત્યાં ઉપર પર નિર્દેશ કરવામાં આવે છે. તમે 34 છે. ઠીક, પર 34, આવે છે. પ્રથમ ત્યાં વધારે છે. ઠીક છે, બધા તમે ગાય્સ ચાર. અને અમે જે 9 માટે કહી હતી? 9 અમારા કોણ છે? કોણ ખરેખર 9 બનવા માંગે છે? તમામ હક, પર આવો, 9 છે. અહીં અમે જાઓ. 34, અમે તમને મળવા પર ત્યાં પડશે. પ્રથમ ભાગ બનાવવા તમે પોતે જ છે કે જેમ દેખાય છે. 26, 22, 17, સારું. જો તમે બાજુએ ઉભી રહે છે, કારણ કે અમે તમને એક ક્ષણ માં malloc જઈ રહ્યાં છો કરી શકો છો. ગુડ, સારું. ઠીક છે, ઉત્તમ છે, તેથી આપણે પ્રશ્નો દંપતિ અહીં પૂછો. અને ખરેખર, તમારું નામ શું છે >> અનિતા. અનિતા, ઠીક, અહીં ઉપર પર આવે છે. અનિતા અમારી મદદ માટે પ્રકારના એક પ્રથમ એકદમ સરળ પ્રશ્ન હલ થઈ રહ્યું છે, જે તમે કેવી રીતે શોધી શકું કે ન કિંમત યાદી છે? હવે નોટિસ કે, પ્રથમ, લુકાસ દ્વારા અહીં રજૂ, થોડો અલગ છે, અને તેથી કાગળ તેમના ભાગ ઇરાદાપૂર્વક પડખોપડખ છે કારણ કે તે તદ્દન તરીકે ઊંચી છે અને નથી અનેક બિટ્સ તરીકે લે નથી, છતાં પણ ટેકનિકલ રીતે તે કાગળ સમાન કદ માત્ર ફેરવ્યું છે. પરંતુ તેમણે થોડી જુદી છે કે તેઓ એક નિર્દેશક માટે ફક્ત 32 બિટ્સ છે છે, અને આ ગાય્સ તમામ 64 બિટ્સ, જેમાંથી અડધા સંખ્યા છે જેમાંથી અડધા એક નિર્દેશક છે. પરંતુ નિર્દેશક દર્શાવાયા નથી, તેથી છે ગાય્સ તમે કંઈક awkwardly થઇ સકે તો તમારા ડાબા હાથમાં વાપરવા માટે તમે આગળ વ્યક્તિ પર નિર્દેશ કરે છે. અને તમે 34 નંબર છો. તમારું નામ શું છે? અરિ. અરિ, તેથી વાસ્તવમાં, તમારા જમણા હાથમાં કાગજ, અને ડાબા હાથની રન નોંધાયો નહીં. તમે ડાબી પર નલ પ્રતિનિધિત્વ કરે છે. હવે અમારી માનવ ચિત્ર ખૂબ સુસંગત છે. આ વાસ્તવમાં એ કેવી રીતે પોઇંટરો કામ કરે છે. અને જો તમે થોડો આ રીતે scrunch જેથી હું તમારી રીતે નથી કરી શકો છો. અહીં અનિતા, મને 22 નંબર શોધવા માટે, પરંતુ ન હોલ્ડિંગ મનુષ્યો કાગળ ટુકડાઓ એક બળજબરી ધારે, પરંતુ આ યાદી છે, અને તમે માત્ર લુકાસ સાથે શરૂ કરવા માટે છે કારણ કે તેઓ ખરેખર પ્રથમ નિર્દેશક છે. તમે ધારો જાતે નિર્દેશક હોય છે, અને તેથી તમે ખૂબ કંઈક અંતે નિર્દેશ કરવાની ક્ષમતા હોય છે. તમે ચોકકસ શું લુકાસ તરફ સંકેત છે પોઇન્ટ કરીને કેમ નથી શરૂ કરી શકું? ગુડ દો, અને મને અહીં પર આ બહાર કાયદો ઘડવો. જસ્ટ ચર્ચા ખાતર દો, મને એક ખાલી પાનું અહીં ખેંચો. તમે તમારું નામ કેવી રીતે જોડણી નથી >> અનિતા. ઠીક છે, અનિતા. ચાલો નોડ * અનિતા = LUCAS કહો. વેલ, અમે તમને LUCAS નથી કહી કરીશું. અમે તમને પ્રથમ કૉલ કરીશું. અહીં વાસ્તવિકતા સાથે સુસંગત વાસ્તવમાં આ શા માટે છે? એક, પ્રથમ પહેલાથી જ અસ્તિત્વમાં છે. પ્રથમ કદાચ કરવામાં આવી છે ક્યાંક અહીં ફાળવવામાં આવે છે. નોડ પ્રથમ *, અને તે યાદી કરવામાં આવ્યું કોઈક ફાળવવામાં આવે છે. મને ખબર નથી કે કેવી રીતે થયું. કે થયું તે પહેલા વર્ગ શરૂ કર્યું. મનુષ્યો આ યાદીની લિંક બનાવવામાં આવ્યું છે. અને હવે વાર્તા-આ તમામ Facebook પર છે દેખીતી રીતે જવું આ બિંદુએ પછીના વાર્તામાં આ બિંદુએ, અનિતા પ્રથમ સમાન હોવાનું આરંભ છે, જે અર્થ એ નથી લુકાસ અંતે અનિતા પોઇન્ટ છે. તેના બદલે, તે તેમણે શું અંતે નિર્દેશ પર નિર્દેશ કારણ કે તે જ સરનામાં કે લુકાસ 32 બિટ્સ ની અંદર છે - 1, 2, 3 - હવે પણ અનિતા 32 બિટ્સ ની અંદર - 1, 2, 3. હવે 22 શોધો. તમે આવું વિશે કેવી રીતે જવું છે? કે >>? ગમે માટે પોઇન્ટ શું છે. ગમે નિર્દેશિત કરવા માટે, તેથી આગળ વધો અને તે કાર્ય આઉટ શ્રેષ્ઠ તરીકે તમે અહીં કરી શકો છો. ગુડ, સારું, અને હવે તમે કરી રહ્યાં છો પોઇન્ટ ખાતે-શું 22 સાથે તમારા નામ શું છે? રોમન. >> રોમન તેથી, રેમોન અપ 22 હોલ્ડિંગ છે. તમે હવે ચેક કર્યું છે. નથી રેમોન 22 ==, અને તેથી જો, ઉદાહરણ તરીકે, અમે સાચું પાછા આવી શકો છો. મને જ્યારે દો આ ગાય્સ અહીં કંઈક awkwardly-ઊભા દો મને કંઈક bool જેવા ઝડપથી કરવા લાગે છે. હું આગળ વધો અને કહે જાઉં છું ગાંઠ (* યાદી, પૂર્ણાંક એન). હું અધિકાર પાછા તમે ગાય્સ સાથે હશો. હું માત્ર અમુક કોડ લખી હોય છે. અને હવે હું આગળ જાઓ અને આ, નોડ * અનિતા = યાદી કરવા જાઉં છું. અને હું આગળ વધો અને કહે જાઉં છું જ્યારે (અનિતા = NULL!). અહીં રૂપક થોડો ખેંચાય રહ્યો છે, પરંતુ જ્યારે (અનિતા = NULL!), હું શું કરવા માંગો છો? હું સંદર્ભ કેટલાક માર્ગ જરૂર આ પૂર્ણાંક છે કે જે અનિતા તરફ સંકેત છે. ભૂતકાળમાં, જ્યારે અમે માળખાં હતી, જે એક ગાંઠ છે અમે કોઈ નોટેશનમાં ઉપયોગ થાય છે, અને અમે કંઈક જેમ કહેવું કરશે anita.n, પરંતુ સમસ્યા એ છે કે અહીં અનિતા એક સ્ટ્રક્ટ દીઠ સે નથી. તે શું છે? તે એક નિર્દેશક, તેથી ખરેખર, જો અમે આ કોઈ ઉપયોગ કરવા માંગો છો નોટેશનમાં- અને આ માટે ઇરાદાપૂર્વક થોડું જોવા રહ્યું છે છુપાયેલું- અમે ગમે તે અનિતા ડાબી બાજુ પર જાઓ કંઈક આવું હોય તરફ સંકેત છે અને પછી n એ કહેવાય ક્ષેત્ર છે. અનિતા એક નિર્દેશક છે, પરંતુ * અનિતા શું છે? તમે શું જ્યારે તમે અનિતા શું નિર્દેશ કરતી હોય છે જાઓ શોધી શકું? એક સ્ટ્રક્ટ, નોડ, અને નોડ રિકોલ, એક n એ કહેવાય ક્ષેત્ર છે કારણ કે તે યાદ છે,, આ 2 ક્ષેત્રો, આગામી અને n એ, કે અમે એક ક્ષણ પહેલા અહીં જોવા મળી હતી. ખરેખર કોડ આ નકલ, અમે આ કરવા માટે અને કહેવું શકે જો ((* અનિતા). n == એન), તો n એ તે હું શોધી રહ્યો છું. નોંધ કરો કે આ કાર્ય સંખ્યા હું વિશે કાળજી માં પસાર થયો હતો. પછી હું આગળ વધીશું અને તે કરી શકે છે વળતર કંઈક સાચું. બાકી, જો કે આ કેસ નથી, હું શું કરવા માંગો છો? હું કોડ અનિતા શું યાદી મારફતે વૉકિંગ દ્વારા જેથી તર્ક હતી કેવી રીતે અનુવાદિત છે? હું શું અહીં શું કરવું જોઈએ માટે અનિતા ડાબી તે પગલું લેતા, ડાબી કે પગલું અનુકરણ? [અશ્રાવ્ય વિદ્યાર્થી પ્રતિભાવ] >> કે શું છે? [અશ્રાવ્ય વિદ્યાર્થી જવાબ] ગુડ, ખરાબ નથી વિચાર છે, પરંતુ ભૂતકાળમાં, જ્યારે અમે આ કર્યું છે, તો અમે કર્યું છે અનિતા + + કારણ કે અનિતા માટે 1 નંબર ઉમેરો કરશે, જે ખાસ કરીને આગામી વ્યક્તિ અંતે રોમન જેવા થશે નિર્દેશ, અથવા તેમને આગામી વ્યક્તિ, અથવા તેને માટે નીચે લીટી વ્યક્તિ આગામી. પરંતુ તે ઘણી સારી અહીં નથી કારણ કે આ વસ્તુ શું મેમરી જેમ લાગતું નથી? નહીં કે. અમે તે નિષ્ક્રિય છે. તે મેમરી આ જેવી લાગે છે, અને છતાં પણ હું 1 અને 2 અને 3 બંધ એક બીજા દોરવામાં કરી લીધી છે, જો આપણે ખરેખર અનુકરણ તમે ગાય્સ આ કરી શકો છો, જ્યારે હજુ પણ એ જ લોકો તરફ સંકેત, તમે કેટલાક રેન્ડમ પગલું બેક, તમે એક રેન્ડમ પગલું કેટલાક આગળ લઈ શકે છે? આ વાસણ હજી પણ સંલગ્ન યાદી છે, પરંતુ આ ગાય્સ મેમરી ગમે ત્યાં હોઈ શકે, જેથી અનિતા + + શા માટે કામ ન રહ્યું છે? શું સ્થાન અનિતા અંતે છે + +? કોણ જાણે છે. તેને કેટલીક અન્ય કિંમત છે કે જે હમણાં જ તેથી interposed શકાય થાય છે તક દ્વારા આ ગાંઠો તમામ વચ્ચે કારણ કે અમે એક એરે નથી વાપરી રહ્યા છો. અમે આ ગાંઠો દરેક વ્યક્તિગત રીતે ફાળવવામાં આવે છે. ઠીક છે, જો તમે ગાય્સ તમે જાતે સાફ બેક અપ કરી શકો છો. મને પ્રસ્તાવ કે અનિતા + +, અમે તેના બદલે શું અનિતા બદલે નોંધાયો- સાથે સાથે, શા માટે આપણે ગમે અનિતા નિર્દેશ કરતી હોય છે ન જાય તો શું કરવું અને પછી આગામી. અન્ય શબ્દોમાં, આપણે રોમન છે, જે 22 નંબર હોલ્ડિંગ છે માટે જાઓ, અને પછી આગામી છે. જોકે તરીકે અનિતા તેના ડાબા હાથ નિર્દેશક નકલ કરવામાં આવશે. પરંતુ તે દૂર રોમન કરતાં નથી કારણ કે અમે 22 મળી જશે. પણ જે વિચાર છે. હવે, આ વાસણ ઇશ્વર ભીષણ છે. પ્રામાણિકપણે, કોઈ એક ક્યારેય આ વાક્યરચના યાદ રાખવી, અને તેથી thankfully, તે ખરેખર એક થોડો ઇરાદાપૂર્વકની ઓહ, તમે ખરેખર હું શું લખ્યું નહોતું. આ વધુ આકર્ષક હોઈ તમે થઇ સકે તો કરશે. વોઇલા Query! પડદા પાછળ, હું સમસ્યા આ રીતે હલ કરવામાં આવી હતી. અનિતા, ડાબી કે પગલાં, પ્રથમ, અમે સરનામા માટે જાઓ નથી કે અનિતા તરફ સંકેત છે અને જ્યાં તે માત્ર નથી n એ, જે અમે ફક્ત સરખામણી ખાતર ચકાસાયેલ મળશે, આ કિસ્સામાં, - પરંતુ તમે પણ આગામી કરશે શોધવા માતાનો રોમન ડાબા હાથની યાદીમાં બીજા ગાંઠ તરફ ઇશારો. પરંતુ આ વાસણ ઇશ્વર ભીષણ માટે જે હું અગાઉ ઉલ્લેખ છે, પરંતુ તે વળે બહાર સી દે અમને આ સરળ બનાવે છે. તેના બદલે લેખન (અનિતા *), અમે તેના બદલે માત્ર અનિતા-> n એ લખી શકો છો, અને તે ચોક્કસ જ વસ્તુ વિધેયાત્મક નથી, પણ તે ખૂબ વધુ છે, અને તે ઘણો વધુ ચિત્ર સાથે સુસંગત છે કે અમે ચિત્રકામ થઈ છે આ બધા સમય તીરો મદદથી. છેલ્લે, અમે શું આ કાર્યક્રમ ઓવરને અંતે જરૂર છે? ત્યાં બાકી કોડ એક વાક્ય છે. શું વળતર? ખોટું કારણ કે, જો અમે સમગ્ર મારફતે વિચાર જ્યારે લૂપ અને અનિતા છે, વાસ્તવમાં, નલ, તેનો અર્થ એ કે તે યાદીમાં ઓવરને બધી રીતે થયું જ્યાં તેમણે પોઇન્ટ હતો-શું તમારું નામ છે ફરી? અરિ. >> હિસ્સો એરી ડાબા હાથમાં છે, કે જે નલ છે. અનિતા હવે નલ, અને હું ખ્યાલ તમે હમણાં અહીં સ્થાયી કરી રહ્યાં છો કેદખાનું માં awkwardly કારણ કે હું બોલ એકપાત્રી નાટક પર અહીં જાઉં છું, પરંતુ અમે તમને માત્ર એક ક્ષણ ફરી સમાવેશ પડશે. અનિતા વાર્તામાં તે સમયે નલ હોવાથી, જ્યારે લૂપ સમાપ્ત કરે છે, અને અમે ખોટા પાછા છે કારણ કે જો તેણે એરી નલ નિર્દેશક તમામ માર્ગ મળી તો પછી ત્યાં કોઈ નંબર કે તેમણે યાદી માં કરી હતી. અમે આ અપ પણ સાફ કરી શકો છો, પરંતુ આ એક સુંદર સારા અમલીકરણ પછી છે એક છેડાથી બીજા છેડા કાર્ય છે, એક કડી થયેલ યાદી માટે કાર્ય શોધો. તે હજુ પણ રેખીય શોધ છે, પરંતુ તે + + એક નિર્દેશક તરીકે સરળ નથી અથવા + + એક હું ચલ કારણ કે હવે અમે નથી ધારી શકો છો જ્યાં આ ગાંઠો દરેક મેમરી છે. અમે શાબ્દિક બ્રેડક્રમ્બસમાં ઊંડે સુધી મૂકીને એ પગેરું અનુસરો હોય, અથવા વધારે ચોક્કસ રીતે, પોઇન્ટર, એક ગાંઠ પરથી બીજા પર મેળવો. હવે આપણે બીજું એક પ્રયાસ કરો. અનિતા, તો તમે અહીં પાછા આવીને કરવા માંગો છો? અમે આગળ કેમ ન જાય તો અને એક શ્રોતાઓ તરફથી અન્ય વ્યક્તિ ફાળવવા? Malloc-શું તમારું નામ છે >> રેબેકા. રેબેકા. રેબેકા પ્રેક્ષકો કરવામાં malloced છે, અને તે હવે 55 નંબર સ્ટોર કરે છે. અને હાથ પર ધ્યેય હવે માટે અનિતા દાખલ કરવા માટે તેની યોગ્ય જગ્યાએ સંકળાયેલા અહીં યાદી માં રેબેકા. અહીં ઉપર પર એક ક્ષણ માટે આવે છે. હું આ કંઈક કર્યું છે. હું નોડ * કર્યું છે. અને તમારું નામ શું છે ફરી? રેબેકા. >> રીબેક્કા, ઠીક છે. રેબેકા malloc (sizeof (નોડ)) મળે છે. જેમ અમે ભૂતકાળમાં વિદ્યાર્થીઓ અને whatnot જેવી વસ્તુઓ ફાળવવામાં આવ્યા છે, અમે નોડ માપ જરૂર છે, તેથી હવે રેબેકા છે શું નિર્દેશ કરતી? રેબેકા તેના ની અંદર બે ક્ષેત્રો, એક જે 55 છે. ચાલો શું, રેબેકા-> 55 =. પરંતુ પછી રેબેકા-> આગામી અધિકાર હવે શકાય માંગો જોઈએ, તેમના હાથ કોણ જાણે પ્રકારની છે? કેટલાક કચરો કિંમત તરફ સંકેત છે, તેથી સારા પગલા શા માટે નથી અમે ઓછામાં ઓછા આવું કે જેથી ડાબા હાથમાં તેમના બાજુ પર હવે છે. હવે અનિતા, તે અહીં લે છે. તમારી પાસે રેબેકા ફાળવવામાં આવ્યો હોય. આગળ વધો અને શોધવા જ્યાં અમે રેબેકા મૂકવા જોઇએ. ગુડ, ખૂબ જ સારો. ઠીક છે, સારુ, અને હવે અમે તમને દિશામાં એક બીટ આપવા માટે જરૂર હોય, જેથી તમે એરી પહોંચી ગયા છો. તેના ડાબા હાથ નલ છે, પરંતુ રેબેકા સ્પષ્ટ અધિકાર સંબંધિત છે, તેથી અમે આ યાદીની લિંક બદલવા કેવી રીતે હોય ક્રમમાં યોગ્ય જગ્યાએ માં રેબેકા દાખલ કરવા માટે? જો તમે શાબ્દિક જરૂરી આસપાસ લોકોના ડાબા હાથ ફરી શકે છે, અમે સમસ્યા કે માર્ગ ઠીક પડશે. ઠીક સારું, અને ત્યાં છે, રેબેકા ડાબા હાથમાં તેમના બાજુ દ્વારા હવે છે. તે ખૂબ સરળ હતો. ચાલો allocating-we're પ્રયાસ લગભગ પૂર્ણ, 20. ઠીક છે, પર આવે છે. 20 ફાળવવામાં આવ્યો છે, તેથી દો મને આગળ વધો અને ફરીથી અહીં કહેવું અમે ફક્ત નોડ * સાદ કર્યું છે. અમે malloc હોય (sizeof (નોડ)). અમે પછી જ ચોક્કસ સિન્ટેક્ષ તરીકે અમે 20 પહેલાં હતી કરવા માટે, અને હું આગામી = NULL કરવા માટે, અને પડશે હવે અનિતા પર છે તમને સંકળાયેલા યાદી માં દાખલ કરો, જો તમે તે ચોક્કસ જ ભૂમિકા ભજવી શકે છે. ચલાવો. ઠીક છે, સારુ. હવે કાળજીપૂર્વક વિચારવું તે પહેલાં તમે ડાબી હાથ આસપાસ ખસેડવા શરૂ કરો. તમે અત્યાર સુધીમાં આજે સૌથી વધુ ત્રાસદાયક ભૂમિકા મળી. હાથ જેની પ્રથમ ખસેડવામાં આવશે જોઈએ? ઠીક છે, રાહ જુઓ, હું કેટલાક ની સુનાવણી છું. જો અમુક લોકો સભ્યતા માટે પ્રતિકૂળ પરિસ્થિતિ અહીં ઉકેલવા મદદ કરવા ઈચ્છો. જેના ડાબા હાથની પ્રથમ કદાચ સુધારાશે જોઇએ? યાહ. [વિદ્યાર્થી] સાદ માતાનો. ઠીક છે, સાદ માતાનો, શા માટે છે, જોકે? [અશ્રાવ્ય વિદ્યાર્થી જવાબ] ગુડ, કારણ કે જો અમે ખસેડવા-શું તમારું નામ છે >> માર્શલ?. માર્શલ, જો આપણે તેમના હાથ નીચે ખસેડો પ્રથમ null, હવે અમે શાબ્દિક આ યાદીમાં ચાર લોકો અનાથ કારણ કે તેમણે માત્ર રોમન અને ડાબી દરેકને નિર્દેશ કરતી બાબત હતી, જેથી નિર્દેશક પ્રથમ અપડેટ ખરાબ હતી. ચાલો કે પૂર્વવત્ કરો. ગુડ, અને હવે આગળ વધો અને યોગ્ય ડાબી રોમન નિર્દેશ કરતી બાજુ ખસેડો. આ થોડો અનાવશ્યક લાગે છે. હવે બે રોમન નિર્દેશ કરતી લોકો છે, પરંતુ તે દંડ છે કારણ કે હવે બીજું અમે કેવી રીતે યાદી અપડેટ કરી શકું? બીજી બાજુ શું ખસેડવા છે? ઉત્તમ, હવે અમે કોઈ મેમરી ગુમાવી? ના, તેથી સારા, ચાલો જોવા જો અમે આ વધુ એક વખત નથી તોડી શકે છે. એક છેલ્લા સમય Mallocing, 5 સંખ્યા. પાછા બધા રીતે, નીચે પર આવે છે. તે ખૂબ જ આકર્ષક છે. [વધાવી] તમારું નામ શું છે >> રોન. રોન, ઠીક, તમે 5 નંબર તરીકે malloced છે. અમે હમણાં જ કોડ ચલાવવામાં કર્યું છે કે લગભગ આ સમાન છે માત્ર એક અલગ નામ સાથે. ઉત્તમ. હવે, અનિતા, સારા નસીબ યાદી માં 5 સંખ્યા હવે દાખલ. ગુડ, અને? ઉત્તમ છે, જેથી આ ખરેખર ત્રણ કુલ કેસો ત્રીજા છે. અમે પ્રથમ ઓવરને અંતે કોઈને હતી, રેબેકા. અમે પછી મધ્યમ કોઇને હતી. હવે અમે શરૂઆતમાં, અને આ ઉદાહરણ કોઇને હોય છે, અમે હવે પ્રથમ વખત લુકાસ અપડેટ હતી કારણ કે યાદીમાં પ્રથમ તત્વ માટે હવે એક નવી ગાંઠ પર નિર્દેશ છે, જે છેવટે, નોડ 9 નંબર તરફ સંકેત કરે છે. આ એક ખૂબ ત્રાસદાયક નિદર્શન હતી મને ખાતરી છે કે છું, તેથી આ ગાય્સ માટે વધાવી મોટી રાઉન્ડ જો તમે કરી શકે. સરસ રીતે કરી શકાય છે. કે બધા છે. તમે થોડો મેમરી કાગળ તમારી ટુકડાઓ રાખવા શકે છે. તે તારણ આપે છે કે કોડ માં આવું તદ્દન તરીકે જ આસપાસ હાથ થતાં સરળ નથી અને વિવિધ બાબતો પર પોઇન્ટર નિર્દેશ કરતી હશે. ખ્યાલ પણ છે કે જ્યારે તે કંઈક અમલમાં સમય આવે એક કડી થયેલ યાદી છે અથવા તેને એક ચલ જો તમે ખરેખર પર ધ્યાન કેન્દ્રિત આ મૂળભૂત ફંડામેન્ટલ્સ, તો તેના કદ સમસ્યાઓ હું બહાર આકૃતિ હોય છે, આ બાજુ અથવા આ હાથ છે ખ્યાલ છે કે, શું અન્યથા એકદમ જટિલ પ્રોગ્રામ છે હકીકતમાં કરી શકો છો, એકદમ સરળ આ જેવી રચનાત્મક ઘટાડી શકાય છે. ચાલો, એક વધુ વ્યવહારદક્ષ દિશામાં વસ્તુઓ હજુ પણ લે છે. હવે અમે યાદીની લિંક કલ્પના હોય છે. અમે પણ પાછળ સૂચન ત્યાં એક સમયમાં બમણું કડી થયેલ યાદી માટે હોય છે, આભાર જે લગભગ એ જ લાગે છે, પરંતુ હવે અમે સ્ટ્રક્ટ ની અંદર બે પોઇન્ટર છે તેના બદલે એક છે, અને અમે કદાચ તે પોઇંટરો આગલી કહી શકે છે અથવા ડાબી કે જમણી, પરંતુ અમે હકીકતમાં નથી, તેમાંથી બે જરૂર છે. આ કોડ થોડું એક સંકળાયેલી વધુ હશે. અનિતા માટે સ્ટેજ પર વધુ કાર્ય અહીં હતા. પરંતુ અમે ચોક્કસપણે માળખું તે પ્રકારના અમલ કરી શકે છે. સમય ચાલી દ્રષ્ટિએ, જોકે, શું ચાલી રહેલ સમય હશે એક કડી થયેલ યાદીમાં સંખ્યા n હવે શોધવાની અનિતા માટે? N ના હજુ પણ મોટી ઓ, જેથી તે કોઈ રેખીય શોધ કરતાં વધુ સારી છે. અમે દ્વિસંગી શોધ નથી, છતાં, ફરી શકો છો. શા માટે બને કે હતો? તમે આસપાસ ન બાંધી શકે છે. તેમ છતાં અમે ચોક્કસપણે સ્ટેજ પર તમામ મનુષ્યો જુઓ, અને અનિતા તે eyeballed હોઈ શકે છે અને કહ્યું હતું કે, "અહીં યાદી મધ્યમાં છે," તેમણે તે ખબર નથી જો તેણી કમ્પ્યુટર પ્રોગ્રામ કરવામાં આવતું હતું કારણ કે માત્ર વસ્તુ તેમણે પર દૃશ્ય શરૂઆતમાં લેતું માટે લુકાસ, જેમણે પ્રથમ નિર્દેશક હતા. તે આવશ્યકપણે તે લિંક્સને અનુસરો હોવી જોઈએ, તેના માર્ગ ગણાય છે ત્યાં સુધી તે આશરે મધ્યમ જોવા મળે છે, અને પણ, તો પછી તે જાણવા માટે જ્યારે તેણી મધ્યમ પહોંચી છે નથી ચાલી રહ્યું છે જ્યાં સુધી તે ઓવરને બધી રીતે જાય છે માટે બહાર આકૃતિ કેટલી ત્યાં છે, પછી backtracks કે, અને ખૂબ મુશ્કેલ હોઈ જ્યાં સુધી તમે હતું અમુક પ્રકારની એક સમયમાં બમણું કડી થયેલ યાદી. કેટલીક સમસ્યાઓ ઉકેલવાની આજે, પરંતુ અન્ય પરિચય કરાવ્યો. વિવિધ માહિતી માળખું એકસાથે વિશે શું? આ માથેર હાઉસ ટ્રેમાં એક ફોટોગ્રાફ છે, અને આ કિસ્સામાં, અમે એ માહિતી બંધારણ અમે પણ પ્રકારની કરી છે પહેલેથી વિશે વાત છે. અમે મેમરી સંદર્ભમાં સ્ટેક વિશે વાત કરી, અને તે પ્રકારના ઇરાદાપૂર્વક નામ આપવામાં આવ્યું છે કારણ કે મેમરીનો દ્રષ્ટિએ સ્ટેક અસરકારક રીતે એ માહિતી બંધારણ છે કે જે વધુ અને વધુ સાથે ટોચ પર સ્તરવાળી સામગ્રી છે. પરંતુ સ્ટેક વિશે રસપ્રદ બાબત એ છે, વાસ્તવમાં આ કેસ છે, તે છે કે તે માહિતી માળખું એક ખાસ પ્રકારની છે. તે માહિતી માળખું છે જેમાં પ્રથમ તત્વ છેલ્લા તત્વ છે આઉટ. જો તમે પ્રથમ સ્ટેક મુકવામાં આવે ટ્રે છે, તમે કમનસીબે છેલ્લા બોલ સ્ટેક લઈ શકાય ટ્રે પ્રયત્ન જઈ રહ્યાં છો, અને તે એક સારી બાબત હોય તે જરૂરી છે. તેનાથી વિપરીત, તમે તેના વિશે બીજી રીતે આસપાસ લાગે શકે છે, છેલ્લા પ્રથમ આઉટ છે. હવે, કોઈ દૃશ્યો માટે વાંધો જ્યાં સ્ટેક કર્યા આવતી નથી માહિતી બંધારણ છે કે જે તમને જ્યાં મિલકત છે માં, પ્રથમ બહાર છેલ્લા ના, ખરેખર છે અનિવાર્ય? કે સારી વસ્તુ છે? કે ખરાબ વસ્તુ છે? તે ચોક્કસપણે એક ખરાબ વાત છે જો ટ્રે તમામ સમાન ન હતી અને તેઓ બધા ખાસ અલગ રંગો અથવા whatnot હતા, અને રંગ તમે કરવા માંગો છો તળિયે તમામ માર્ગ છે. અલબત્ત, તમે તે મહાન પ્રયાસ વગર મેળવી શકો છો. તમે ટોચ પરથી શરૂ કરો અને તમારી રીતે કામ નીચે હોય છે. તેવી જ રીતે, જો તમે આ ચાહક છોકરાઓ હતા જે બધા માટે એક આઇફોન અને લીટીઓ વિચાર કરવાનો પ્રયાસ રાત રાહ જુએ છે આ જેવી જગ્યાએ? સરસ ન હોઈ તે છો જો એપલ સ્ટોર સ્ટેક માહિતી માળખું હતા? યે? નાયનું? તે છેલ્લા શક્ય ઘડીએ માત્ર જે લોકો બતાવે માટે સારું છે અને પછી બંધ કતાર આમળી છે. અને હકીકતમાં, હકીકત એ છે કે હું વલણ હતી કતાર કહેવા માટે ખરેખર આપણે શું માહિતી માળખું આ પ્રકારની કૉલ કરશે સાથે સુસંગત છે, વાસ્તવમાં જ્યાં હુકમ દ્રવ્યની એક, અને તમે પ્રથમ એક પ્રથમ એક પ્રયત્ન કરવા માટે કરવા માંગો છો માત્ર જો માનવ ઔચિત્યની ખાતર. અમે સામાન્ય રીતે કતાર માહિતી બંધારણ છે કે કહી શકશો. તે તારણ સાથે લિંક યાદીઓ ઉપરાંત, અમે આ જ મૂળભૂત વિચારો મદદથી શરૂ કરી શકો છો અને સમસ્યાઓના નિરાકરણ નવા અને અલગ પ્રકારના સર્જન કરવાનું શરૂ કરો. હમણાં પૂરતું, સ્ટેક કિસ્સામાં, અમે સ્ટેક પ્રતિનિધિત્વ કરી શકે છે આ જેવી માહિતી બંધારણ વાપરી રહ્યા હોય, હું પ્રસ્તાવ થશે. આ કિસ્સામાં, હું સ્ટ્રક્ટ જાહેર કર્યું છે, અને હું આ માળખાની અંદર જણાવ્યું હતું કર્યા છે નંબરો ઝાકઝમાળ છે અને પછી એક ચલ કહેવાય માપ છે, અને હું આ વસ્તુ સ્ટેક કૉલ જાઉં છું. હવે, શા માટે આ ખરેખર કામ કરે છે? સ્ટેક કિસ્સામાં, હું એક એરે તરીકે સ્ક્રીન પર આ અસરકારક રીતે ડ્રો કરી શકી. અહીં મારા સ્ટેક છે. તે મારા નંબરો છે. અને અમે તેમને આ ડ્રો, આ પડશે, આ, આ, આ. અને પછી હું કેટલાક અન્ય માહિતી સભ્ય અહીં હોય છે, જેમાં કદ કહે છે, તેથી આ માપ છે, અને આ નંબરો છે, અને સામૂહિક, આખી અહીં આઇપેડ એક સ્ટેક માળખું રજૂ કરે છે. હવે, મૂળભૂત રીતે, કદ કદાચ માટે 0 થી આરંભ થવો મળ્યું છે, અને શું સંખ્યાની એરે ની અંદર શરૂઆતમાં છે જ્યારે હું પ્રથમ ઝાકઝમાળ ફાળવવા? કચરો. કોણ જાણે? અને તે ખરેખર તો કોઈ વાંધો નથી. તે વાંધો જો આ 1, 2, 3, 4, 5 નથી કરતું નથી, સંપૂર્ણપણે રેન્ડમ ખરાબ મારા માળખું માં સ્ટોર નસીબ દ્વારા કારણ કે લાંબા જેથી મને ખબર છે કે સ્ટેક કદ 0 છે, તો પછી હું પ્રોગ્રામ જાણો છો, એરે માં તત્વો કોઈપણ અંતે લાગતું નથી. તે તો કોઈ વાંધો નથી કે શું ત્યાં છે. તેમને ન જુઓ, તરીકે 0 એક માપ કારણે હશે. પરંતુ હવે કદાચ હું આગળ જાઓ અને સ્ટેક માં કંઈક દાખલ કરો. હું 5 નંબર દાખલ કરવા માંગો છો, તેથી હું 5 નંબર અહીં મૂકો, અને પછી હું શું કરી શકું નીચે અહીં મૂકો? હવે હું ખરેખર નીચે કદ માટે કરશે 1 મૂકી, અને હવે સ્ટેક કદ 1 નું છે. જો હું આગળ જાઓ અને નંબર દાખલ કરો દો, કહો કે, 7 આગામી? આ પછી 2 સુધારાયેલ નહીં, અને તે પછી અમે 9 કરીશ, અને પછી આ માટે 3 સુધારાશે નહીં. પરંતુ આ સ્ટેક રસપ્રદ હવે લક્ષણ એ છે કે હું જે તત્વ દૂર જો હું પૉપ માંગો છો માનવામાં છું સ્ટેક બંધ કંઈક છે, તેથી વાત કરવા માટે? 9 પ્રથમ જાઓ વસ્તુ હોઈ શકે છે. ચિત્ર જો હું સ્ટેક બોલ તત્વ પૉપ માંગો છો કેવી રીતે બદલવો જોઈએ, ખૂબ માથેર એક ટ્રે માંગો છો? યાહ >> માટે 2 [વિદ્યાર્થી] સેટ માપ.. બરાબર, બધા હું કદ માટે 2 સુયોજિત છે, અને હું શું એરે સાથે તમે શું કરશો? હું કશું કરવાનું નથી. હું, માત્ર ગુદા હોઇ શકે છે, એક ત્યાં 0 અથવા -1 અથવા સૂચક કંઈક મૂકી કે આ એક વંચાય કિંમત નથી, પણ તે તો કોઈ વાંધો નથી કારણ કે હું એરે પોતે કેટલા છે બહાર રેકોર્ડ કરી શકો છો જેથી મને ખબર છે ફક્ત આ એરે પ્રથમ બે તત્વો જુઓ. હવે, જો હું જાઓ અને આ એરે માટે 8 નંબર ઉમેરો, કેવી રીતે ચિત્ર આગામી ફેરફાર થાય છે? આ 8 બને છે, અને આ 3 બને છે. હું થોડા ખૂણાઓ અહીં કાપી રહ્યો છું. હવે અમે 5, 7, 8, છે અને અમે 3 ના કદ માટે પાછા આવ્યા. આ એક ખૂબ સુંદર અમલ સરળ છે, પરંતુ જ્યારે અમે આ ડિઝાઇન નિર્ણય દિલગીરી જવું છે? વસ્તુઓ માટે ખૂબ, ખૂબ ખોટું જાઓ જ્યારે શરૂ કરી શકું? યાહ. [અશ્રાવ્ય વિદ્યાર્થી જવાબ] જ્યારે તમે પાછા જાઓ અને પ્રથમ તત્વ તમે સાઇન મૂકી મેળવવા માંગો છો તે અહીં વળે છે તેમ છતાં સ્ટેક હૂડ નીચે ઝાકઝમાળ છે, આ માહિતી બંધારણોની અમે વિશે વાત કરવાનું શરૂ કરી દીધું પણ સામાન્ય છે તરીકે પણ ઓળખાય છે અમૂર્ત માહિતી માળખાં જેમાં તેઓ કેવી રીતે અમલમાં કરી રહ્યા છીએ આ બિંદુ ઉપરાંત સંપૂર્ણપણે છે. સ્ટેક જેવા માહિતી બંધારણ માટે આધાર ઉમેરવા માટે માનવામાં આવે છે દબાણ છે, જે સ્ટેક પર એક ટ્રે કોઈ રન નોંધાયો નહીં જેવી કામગીરી અને પોપ, કે જે સ્ટેક માંથી તત્વ દૂર કરે છે, અને તે છે. જો તમે કોઈના કોડ કે જે પહેલાથી જ અમલમાં ડાઉનલોડ હતા આ વસ્તુ સ્ટેક કહેવાય છે, તે વ્યક્તિ હોય તેવા પરચૂરણ હશે તમે માત્ર બે વિધેયો દબાણ, અને પોપ, જેનો એકમાત્ર હેતુ જીવન માં કે બરાબર કરી હશે. તમે અથવા તેને અથવા તેણીને જે તે કાર્યક્રમની અમલ સમગ્રપણે નક્કી કેવી રીતે અમલીકરણ કરવા એક કરવામાં આવ્યો હતો દબાણ અને હૂડ નીચે ધાણી સેમેન્ટિક્સ અથવા દબાણ અને ધાણી ની કાર્યત્મકતા. અને હું કંઈક shortsighted નિર્ણય અહીં આવેલ છે આ સરળ માહિતી માળખું શા માટે મારા સ્ટેક અમલીકરણ દ્વારા? જ્યારે આ માહિતી માળખું વિરામ કરે છે? કયા બિંદુ પર મેં એક ભૂલ પરત જ્યારે વપરાશકર્તા દબાણ કહે છે, હમણાં પૂરતું છે? [વિદ્યાર્થી] જો ત્યાં વધુ જગ્યા છે. બરાબર, જો ત્યાં વધુ જગ્યા છે, જો હું ક્ષમતા વટાવી દીધી છે, જે તમામ કેપ્સ છે કારણ કે તે સૂચવે છે કે વૈશ્વિક સતત કેટલાક પ્રકારની છે. વેલ, તો પછી હું ફક્ત હોય જાઉં છું કહી, "માફ કરશો, હું બીજા કિંમત નથી દબાણ કરી શકો છો સ્ટેક પર ખૂબ, "માથેર માં ગમે છે. અમુક બિંદુએ, તેઓ માટે થોડો કેબિનેટ ટોચ ભાગ હિટ રહ્યા છીએ. કોઈ વધુ અથવા સ્ટેક જગ્યા ક્ષમતા છે, જે બિંદુએ ત્યાં ભૂલ અમુક પ્રકારની છે. તેઓ તત્વ બીજે ક્યાંક મૂકી હોય, તો ટ્રે બીજે ક્યાંક, અથવા ક્યાંય અંતે તમામ. હવે, કતાર સાથે, અમે તેને અલગ થોડો અમલ કરી શકે છે. એક કતાર કે હૂડ નીચે, તે અમલમાં શકાય થોડું અલગ છે એક એરે તરીકે, પરંતુ શા માટે, આ કિસ્સામાં, હું પ્રસ્તાવ છું પણ એક વડા યાદી વડા રજૂ તત્વ છે, યાદી આગળના, એપલ સ્ટોરમાં લીટી માં પ્રથમ વ્યક્તિ કદ ઉપરાંત? હું માહિતી વધારાનો ભાગ કેમ નથી અહીં જરૂર છે? નંબરો શું છે પાછા વિચારો જો હું દોરવામાં કર્યું છે કે તે નીચે પ્રમાણે છે. ધારો કે આ હવે સ્ટેક બદલે કતાર છે, એપલ ભંડાર કતાર જેવી છે-માત્ર તફાવત વાજબી છે. યાદી શરૂઆતમાં આ વાક્ય પ્રથમ વ્યક્તિ, આ કિસ્સામાં 5 નંબર, તે અથવા તેણી દુકાન માં દો સૌ પહેલા રહ્યું છે. ચાલો કે નથી. ધારો કે આ ક્ષણે મારા કતાર રાજ્યના સમય છે અને હવે એપલ સ્ટોર ખોલે છે અને પ્રથમ વ્યક્તિ, 5 નંબર, સ્ટોર કરવા તરફ દોર્યું છે. હું ચિત્ર કેવી રીતે હમણાં બદલો કે હું તેઓ પ્રથમ વ્યક્તિ DE-કતારબદ્ધ રેખાના આ બોલ પર? કે શું >>? [વિદ્યાર્થી] એ કતાર બદલો. માથા બદલાય છે, તેથી 5 અદૃશ્ય થઈ જાય છે. વાસ્તવમાં, તે છતાં કેવી રીતે શ્રેષ્ઠ છે આ કરવા માટે? વાસ્તવમાં, તે છતાં તરીકે આ વ્યક્તિ અદૃશ્ય થઈ જાય છે. 7 નંબર શું ખરેખર સ્ટોર કરતા છો? તેઓ એક મોટું પગલું આગળ લેશે. પરંતુ અમે શું કદર આવ્યા છે જ્યારે તે એરે માટે આવે છે અને આસપાસ વસ્તુઓ ખસેડી રહ્યા? કે જે તમારી સમય કચરો પ્રકારની અધિકાર છે? તમે આવું ગુદા પ્રયત્ન શા માટે હોય એ પ્રથમ વ્યક્તિ હોય ભૌતિક મેમરીનો ભાગ શરૂઆતમાં લીટી શરૂઆતમાં? કે સંપૂર્ણપણે બિનજરૂરી છે. શા માટે? હું શું માત્ર બદલે યાદ શકે >>? [અશ્રાવ્ય વિદ્યાર્થી જવાબ] બરાબર, હું હમણાં જ આ વધારાની માહિતી સભ્ય વડા સાથે યાદ કરી શકે છે કે જે હવે આ યાદીમાં વડા હવે 0, જે તેને એક ક્ષણ પહેલા હતું. હવે તે ખરેખર નંબર 1 છે. આ રીતે, હું થોડો ઓપ્ટિમાઇઝેશન મેળવો. જસ્ટ કારણ કે હું કરેલા વાક્ય શરૂઆતમાં એપલ સ્ટોરમાં વાક્યમાંથી કોઈને DE-કતારબદ્ધ નથી તેનો અર્થ નથી દરેકને પાળી, સ્મૃતિ કે જે સુરેખ કામગીરી છે. હું બદલે સતત સમય માત્ર સમય ગાળી શકે છે અને પછી વધુ ઝડપી પ્રતિભાવ હાંસલ કરે છે. પરંતુ ભાવ હું ભરવા છું એ છે જે વધારાની કામગીરી કે મેળવવા માટે કર્યા નથી અને દરેકને પાળી? યાહ. >> [અશ્રાવ્ય વિદ્યાર્થી જવાબ] વધુ લોકો ઉમેરી શકો છો, સાથે સાથે, કે જે સમસ્યા ઓર્થોગોનલ છે હકીકત એ છે કે અમે લોકો આસપાસ નથી સ્થળાંતર કરી રહ્યાં છે. તે હજુ પણ ઝાકઝમાળ છે, તેથી કે નહીં અમે દરેકને પાળી નથી અથવા- ઓહ, હું જુઓ તમે શું અર્થ, ઠીક છે. ખરેખર, હું તમને શું કહી રહ્યાં છે કે તે લગભગ છતાં તરીકે સાથે સંમત છો આપણે હવે જઈ રહ્યાં છો ક્યારેય આ એરે શરૂઆત હવે ઉપયોગ કારણ કે જો હું 5 દૂર કરવા માટે, તે પછી હું 7 દૂર કરો. પરંતુ હું માત્ર જમણી લોકો મૂકો. તે જેમ હું જગ્યા બગાડ છું એવું લાગે છે, અને છેવટે મારી કતાર બધા અંતે કશું માં વિઘટિત રહે, તેથી અમે ફક્ત લોકો wraparound હોય શકે છે, અને અમે આ ઍરેની પરિપત્ર માળખું કેટલાક પ્રકારના ખરેખર લાગે શકે છે, પરંતુ અમે સી શું ઓપરેટર વાપરવા માટે wraparound કે પ્રકારની છે? [અશ્રાવ્ય વિદ્યાર્થી પ્રતિભાવ] >> આ મોડ્યૂલો ઓપરેટર. તે થોડો હેરાન થઈ મારફતે લાગે છે કે કેવી રીતે તમે wraparound કરવું હો, પરંતુ અમે તે કરી શક્યું ન હતું અને અમે શું કરીએ લીટી આગળના પ્રયત્ન ઉપયોગ લોકો મૂકવા શરૂ કરી શકે છે, પરંતુ અમે ફક્ત આ વડા ચલ લીટી ના વાસ્તવિક વડા જે ખરેખર છે યાદ કરે છે. તો શું, તેના બદલે જોકે આખરે અમારા ધ્યેય,,, સુધી નંબરો જોવા હતી, કારણ કે અમે અનિતા સાથે સ્ટેજ પર અહીં કર્યું, પરંતુ અમે ખરેખર આ બધા વિશ્વનું શ્રેષ્ઠ કરવા માંગો છો? અમે વધુ અભિજાત્યપણુ કરતાં એરે માટે પરવાનગી આપે છે કરવા માંગો છો કારણ કે અમે માટે ગતિશીલ માહિતી માળખું વધવા ક્ષમતા કરવા માંગો છો. પરંતુ અમે કંઈક આશરો કે અમે ધ્યાન દોર્યું હોય નથી માંગતા પ્રથમ વ્યાખ્યાન એક શ્રેષ્ઠ અલ્ગોરિધમનો ન હતી, રેખીય શોધ કે. તે તારણ છે કે જે તમને હકીકતમાં હાંસલ કરી શકો છો, અથવા ઓછામાં ઓછું સતત સમય માટે બંધ છે, જેમાં અનિતા જેમ, કોઈને જો તેણી માહિતી માળખું રૂપરેખાંકિત કરવા નથી સંકળાયેલી યાદી, એક સ્ટેક ન હોઈ પ્રયત્ન નથી, એક કતાર, હકીકતમાં કરી શકતા, એ માહિતી બંધારણ છે કે જે તેને વસ્તુઓ જોવા માટે પરવાનગી આપે છે સાથે આવે છે, પણ શબ્દો, નંબરો માત્ર નથી, શું આપણે સતત સમય કહી શકશો. અને હકીકતમાં, આગળ જોઈ રહ્યા છીએ, આ એક વર્ગ માં psets લગભગ હંમેશા એક જોડણી તપાસનાર એક અમલીકરણ જેમાં, અમે તમને ફરીથી આપી કેટલાક 150,000 ઇંગલિશ શબ્દો અને ધ્યેય છે મેમરીમાં લોડ તે અને ઝડપથી કરવા માટે ફોર્મ પ્રશ્નો જવાબ કરવાનો પ્રયત્ન આ શબ્દ જોડણી સાચી? અને તે ખરેખર જો તમે બધા 150,000 શબ્દો દ્વારા ભારપૂર્વક કહેવું છે કે જવાબ હતો suck કરશે. પરંતુ, વાસ્તવમાં, અમે જોશો કે અમે તેને ખૂબ, ખૂબ ઝડપી સમય માં કરી શકો છો. અને તે અમલમાં હેશ ટેબલ કહેવાય કંઈક સમાવેશ ચાલી રહ્યું છે, અને છતાં પણ પ્રથમ નજરમાં આ હેશ ટેબલ કહેવાય વસ્તુ રહ્યું છે અમને પ્રાપ્ત આ સુપર ઝડપી પ્રતિભાવ સમય, તે તારણ છે કે વાસ્તવમાં એક સમસ્યા છે. જ્યારે તે આ ફરીથી કહેવાય વસ્તુ અમલમાં સમય આવે છે, હું તેને ફરીથી કરી રહ્યો છું. હું માત્ર અહીં એક છું. જ્યારે તે આવે છે અને આ વસ્તુ અમલમાં સમય હેશ ટેબલ કહે છે, અમે નિર્ણય લેવા માટે હોય રહ્યા છીએ. મોટા કેવી રીતે આ વસ્તુ વાસ્તવમાં જોઈએ? અને જ્યારે અમે આ હેશ કોષ્ટકમાં દાખલ નંબરો શરૂ કરવા માટે, અમે તેમને એવી રીતે સ્ટોર કેવી રીતે કરવાના છો કે અમે તેમને પાછા વિચાર બહાર શકે તેટલી ઝડપથી અમે તેમને મળી? પરંતુ અમે તે પહેલાં લાંબા જોશો કે આ પ્રશ્ન જ્યારે દરેક જન્મદિવસ વર્ગ છે તદ્દન પ્રસ્તુત થશે. તે તારણ આપે છે કે આ ખંડમાં, આપણે થોડાક સેંકડો લોકો મળી છે, આ મતભેદ કે જેથી બે ના હોય એ જ જન્મદિવસ કદાચ ખૂબ ઊંચી છે. જો કે આ રૂમમાં અમને માત્ર 40 હતા? બે જ જન્મદિવસ કર્યા લોકોની મતભેદ શું છે? [વિદ્યાર્થીઓ] 50% બોલ. અરે વાહ, 50%. હકીકતમાં, હું પણ ચાર્ટ લાવ્યા. તે અને વળે છે અને આ ખરેખર માત્ર એક ઝલક છે પૂર્વદર્શન- જો ત્યાં ફક્ત આ ઓરડામાં અમને 58, અમને 2 સંભાવના છે એ જ જન્મદિવસ કર્યા ભારે ઊંચું હોય છે, લગભગ 100%, અને તે માટે બુધવારના રોજ અમારા માટે એક નુકસાન સમગ્ર જથ્થો કારણ બનશે. સાથે કહ્યું હતું કે, ચાલો અહીં મોકૂફ રાખવું. અમે તમને બુધવારે જોશો. [વધાવી] [CS50.TV]