[Powered by Google Translate] [4 અઠવાડિયું ચાલુ રાખ્યું,]
[ડેવિડ જે Malan - હાર્વર્ડ યુનિવર્સિટી]
[આ CS50 છે. - CS50.TV]
>> આ CS50 છે, અને આ 4 અઠવાડિયાના અંત છે.
કેટલાક સારા સમાચાર છે અને કેટલાક ખરાબ સમાચાર તેથી.
સોમવાર પર કોઈ વ્યાખ્યાન આગામી સપ્તાહ, કોઈ સમસ્યા સુયોજિત કરો. [વિદ્યાર્થીઓ આનંદદાયક]
તમે કરવા માગો જ્યાં આ રહ્યું છે જઈ રહ્યાં છો.
પરંતુ અમે આ છે આગલા બુધવારે બદલે નથી,
અને ત્યાં પાઠ્યક્રમ 1 શુક્રવાર વ્યાખ્યાન દીઠ પણ આગામી શુક્રવાર કે જેથી અમે ટ્રેક પર રહી શકો છો.
પરંતુ બધું સામાન્ય તરીકે ફિલ્માંકન થશે, તેથી ચિંતા ન કરો.
>> અને સંબંધમાં 0 ક્વિઝ અમે શું સપ્તાહની અંત કરીશ
એ કોર્સ હોમપેજ cs50.net સમજૂતી પર પોસ્ટ
અપેક્ષાઓ સૉર્ટ કરો શું તમે જ્યારે તે પ્રથમ ક્વિઝ આવે હોવી જોઇએ.
સામાન્ય રીતે, તે ઘણીબધી પસંદગી, સાચું-ખોટા, ટૂંકા જવાબ, ટૂંકી કોડિંગ સમસ્યાઓ હશે.
તમે સમકક્ષ અમલ અપેક્ષા નથી જઈ રહ્યાં છો
એક સમસ્યા છે કે તમે એક pset પર જોવા કરશે, જેના માટે તમે કમ્પ્યુટર છે
ડીબગર અને એક જેવા છે, પરંતુ ત્યાં નાના કોડિંગ સમસ્યાઓ હશે.
>> અને ખરેખર, શ્રેષ્ઠ CS50 શું અંગેની ક્વિઝ એક અર્થમાં વિચાર માર્ગદર્શિકા જેવા છે
છે cs50.net પર જવા માટે, કડી ક્વેસ્ચન જાઓ,
અને તમે ભૂતકાળમાં ઘણા વર્ષો ક્વેસ્ચન મૂલ્યનું જોઈ શકો છો.
જસ્ટ ખ્યાલ છે કે અભ્યાસક્રમ હંમેશા વર્ષોમાં જ નથી કરવામાં આવ્યો છે.
ક્યારેક અમે કેટલીકવાર સબ્ટ્રેક્ટ, ઉમેરો,
તેથી જો તમે એક જેઓ જૂની અંગેની ક્વિઝ પર અમુક વિષય જુઓ
કે તમે કોઈ વિચાર તે શું વાત છે, તો એ ક્યાં છે કે અમે તેને આવરી લીધા ન હતા
અથવા તે અમે તેને આવરી લીધા ન હતા.
પરંતુ સમીક્ષાઓ સ્વરૂપ, આ રવિવાર, સોમવાર, મંગળવાર અને
તેમજ અભ્યાસક્રમ વ્યાપી રવિવાર રાત્રે સમીક્ષા સત્ર તરીકે -
સમય અને સ્થાન માટે આ કોર્સ હોમપેજ પર જાહેરાત કરી -
તમે બધા માટે એક એ કોર્સ શિક્ષણ ફેલો સાથે સમીક્ષા કરવાની તક મળે છે
આ વર્ષ માટે બન્ને વિભાગમાં અને એક સંપૂર્ણ વર્ગ તરીકે, સામગ્રી,
અને તે સામાન્ય તરીકે ફિલ્માંકન કરવામાં આવશે છે.
>> અધિકાર છે. જેથી વધુ હેરાનગતિ વિના, પાસ પર એક ટિપ્પણી / નિષ્ફળ અને ઉમેરો / છોડો.
તમે મારી નોંધ કરી છે છેલ્લા રાત્રે જોઈ શકે છે, અને આ ખરેખર માત્ર કેટલીક વધારાની આશ્ચાસન છે
કે જો તમે ખાસ કરીને ઓછી આરામદાયક અથવા વચ્ચે ક્યાંક તે વચ્ચે છે
અને તમે તમારા માથા પર ફક્ત થોડો અનુભવ કરી રહ્યાં છો,
સમજો કે ખરેખર છે એકદમ સામાન્ય, અને ત્યાં તેની જગ્યાએ પૂરતી આધાર માળખું છે,
એક જે ઓફિસ કલાકો મારું ઇમેઇલ છેલ્લા રાત્રે દીઠ બધી વધુ સુધારવા પર ઉદ્દેશ હતા,
અને ખૂબ પ્રતીતિ થઈ કે પાસ જેવા વિકલ્પ / આના જેવો વર્ગ માટે નિષ્ફળ
ખરેખર આ જેવા કોર્સ ધાર બોલ લઇ તંત્ર તરીકે રાખવાનો છે,
જેથી ફરીથી જો તમે તે 10, 15, 20 કલાક ગાળ્યા કરી રહ્યાં છો
માત્ર કેટલાક pset વિચાર કામ કરવાનો અને તમે જાણો છો કે તમે જે રીતે 90-95% ત્યાં હોવ
પરંતુ તમે કેટલાક ધુત્કારી કાઢવું ​​ભૂલ શોધી, એક પાસ / માં કરી શકો છો મોડેલ કે પ્રકારની છે ઠીક નિષ્ફળ જાય છે.
>> આ વિચાર છે કે જે તે પદ્ધતિ સાથે તમે પછી તમારી અન્ય psets પર ધ્યાન કેન્દ્રિત જઈ શકે છે
અથવા ઊંઘ અથવા જે તે એ છે કે તમે પર ધ્યાન કેન્દ્રિત કરવા માંગો છો.
જેથી ખ્યાલ છે કે તમે આ આગામી મંગળવાર સુધી હોય - ટેકનિકલી 5 સોમવાર,
પરંતુ તે એક રજા છે, તેથી આ આગામી મંગળવાર - માટે પાસ સ્વિચ / ક્રમિક અથવા ઊલટું માટે નિષ્ફળ જાય છે.
અને જો તમે કરાડ પર ખરેખર છો છે અને એકસાથે ડ્રોપ વિચારી,
મને વ્યાખ્યાન બાદ પકડી અથવા મને નોંધ ડ્રોપ કરો.
અમે ઓછામાં ઓછા ચેટ માટે પ્રેમ પહેલાં તમે રામરામ બિડ છો.
અધિકાર છે. તેથી અમે છેલ્લા સમય બોલ તાલીમ વ્હીલ્સ લેતી શરૂ કર્યું.
ખાસ કરીને, અમે શબ્દમાળા પર ધ્યાન કેન્દ્રિત કર્યું.
શબ્દમાળા જે કશુંક CS50 પુસ્તકાલય જાહેર કરવામાં આવ્યું છે તે છે,
ખાસ કરીને તે cs50.h તરીકે ઓળખાતી ફાઈલ માં જે અમે આ અઠવાડિયે અને આગામી જોવા શરૂ કરી શકશો.
પરંતુ શબ્દમાળા ખરેખર કંઇક એક સરળીકરણ છે
કે એક વધુ arcanely ઘરનાં પરચૂરણ કામો * તરીકે વર્ણવવામાં થોડું છે.
ચાર અમે સાથે પરિચિત છો. તે માત્ર એક જ અક્ષર છે.
પરંતુ સોમવાર તરીકે * શું સૂચિત? >> [વિદ્યાર્થી] એક નિર્દેશક.
એક નિર્દેશક. અને નિર્દેશક શું છે? >> [વિદ્યાર્થી] એક સરનામું.
>> તે સરનામું, મેમરીમાં સ્થાન જેવું છે.
એક સરનામું અથવા સ્થાન અથવા મેમરી શું છે?
ફરીથી, અમારા બધા એક જહાજની નાની હોડી અથવા RAM ના 2 ગીગાબાઇટ્સ સાથે લેપટોપ આ દિવસોમાં મોટા ભાગે હોય છે,
અને તેનો અર્થ એ કે તમે એક અબજ અથવા 2 અબજ મેમરી વર્થ બાઇટ્સ હોય છે.
અને તે ખરેખર તે શું શારીરિક જેવો દેખાય છે તો કોઈ વાંધો નથી,
પરંતુ વિશ્વાસ લઇ કે તમે બધી વ્યક્તિગત બાઇટ્સ કે તમારા પોતાના લેપટોપ છે સંખ્યા કરી શકો છો -
આ 0 બાઇટ છે, આ 1 બાઇટ છે, આ બાઇટ છે અબજ 2 -
અને તે બરાબર એક કોમ્પ્યુટર શું કરે છે.
જ્યારે તમે એક પાત્ર માટે જગ્યા ફાળવો, ઉદાહરણ તરીકે,
તે દેખીતી રીતે કરવા માટે તમારા કમ્પ્યુટરની મેમરી ક્યાંક રહેતા હોય છે,
અને કદાચ તે બાઇટ 12345 નંબર પર છે,
અને જે ક્યાંક તમારા કમ્પ્યુટરની મેમરી માં અહીં છે.
અને તે પાત્રની પછી સરનામા 12345 છે.
>> હવે, 0 મારફતે હવે આમ અત્યાર સુધી સપ્તાહમાં, અમે ખરેખર નથી સંભાળ છે
મેમરી વસ્તુઓ કારણ કે અમે સામાન્ય રીતે પ્રતીકો વાપરો કે જ્યાં સંગ્રહાય છે,
ચલો, અને એરે ખરેખર અમારી માહિતી પર વિચાર.
પરંતુ સોમવાર અને તમામ વધુ આજે તરીકે, તમે હવે હોય રહ્યા છીએ
લેખન કાર્યક્રમો સાથે તમામ વધુ અર્થસભર ક્ષમતાઓ
ખરેખર એક કમ્પ્યુટર મેમરી ચાલાકી જોકે તમે જોઈ ફિટ,
બંને સારા હેતુઓ અને ખરાબ માટે
ભૂલો આ સામગ્રી શીખવાની આ બિંદુ પર ખૂબ સામાન્ય પરિણામ છે.
પરંતુ તે શું ખરેખર તેને એક કોલસો બનાવો * પ્રયત્ન અર્થ આ છે?
ચાલો આગળ પાછળ જવા માટે - અને અમે પાછા Binky આવવા તરીકે આજે વચન પડશે.
ચાલો એક સરળ ઉદાહરણ અહીં જાઓ.
મને compare.c તરીકે આ ફાઈલ સંગ્રહો, અને દો મને માત્ર કેટલાક નમૂના કોડ અહીં વિચાર
જેથી stdio.h સમાવેશ દો, મને પણ મારી જાતે આપી સમાવેશ થાય છે cs50.h. હું ત્યાં ઝૂમ પડશે.
દો મને મુખ્ય પૂર્ણાંક, મુખ્ય (રદબાતલ) લખવાનું શરૂ કરો, અને હવે હું આ કંઈક કરવા માંગો છો:
printf ("મને શબ્દમાળા આપો:") અને તે પછી હું ઉપયોગ કરશે શબ્દમાળા ઓ GetString નહીં
વપરાશકર્તા માંથી શબ્દમાળા મેળવવા માટે, તે પછી હું એક બીજા માટે વપરાશકર્તા પૂછવા જાઉં છું.
("મને અન્ય શબ્દમાળા આપો:") અને હું તેમને કે વિચાર GetString દ્વારા પૂછવા જાઉં છું.
હું તે કહી કારણ કે ટી ​​આવે પછી ઓ અને ઓ શબ્દમાળા માટે એક સરસ નામ છે જો તે સારુ સામાન્ય કરીશું.
તેથી GetString, અને હવે હું માત્ર એક સેનીટી ચેક કરવા માંગો છો અને હું કહેવા જાઉં છું
જો (ઓ ટી ==) પછી હું માત્ર વપરાશકર્તા printf જણાવવું ("! તમે એક જ વસ્તુ \ n લખ્યો") જાઉં છું;
બીજું હું બહાર જેમ ("તમે લખેલા કંઈક અલગ \! n") કંઇક છાપવા જાઉં છું
અથવા ગમે તે સજા થશે. જેથી કંઈક.
પછી હંમેશની જેમ, હું 0 જે ફક્ત સૂચવે કશું ખરાબ થયું કે પાછા પડશે,
અને હું આગળ વધો અને સંકલન અને આ પ્રોગ્રામ રન જાઉં છું.
>> પરંતુ સોમવારે અમે આ કાર્યક્રમ ચાલી હતી,
અને ખરેખર જણાવ્યું હતું કે હેલો હેલો નથી અને ગુડબાય ગુડબાય નથી.
આ વર્તણૂક આપણે જોયું થોડું આ જેવી વધારે હતી.
મને મારી સ્રોત ડિરેક્ટરીમાં જાઓ, અહીં ઝૂમ, અને ચાલો તુલના કરો.
ઠીક કમ્પાઇલ કરેલ છે. મને સ્કોર સરખામણી કરી. મને શબ્દમાળા આપો: હેલો.
મને અન્ય શબ્દમાળા આપો: હેલો.
તમે કંઇક અલગ લખ્યો!
વેલ દો, મને 50 50, જેવી સરળ કંઈક પ્રયાસ કરો. તમે કંઇક અલગ લખ્યો!
હાય, હાય. તેથી સ્પષ્ટ રીતે, કંઈક અહીં રહ્યું છે.
પરંતુ શા માટે માટે સમજૂતી હતી?
દેખીતી રીતે, 12 લીટી સંપૂર્ણપણે નિષ્ક્રિય છે.
મૂળભૂત અહીં સમસ્યા શું છે? યાહ. >> [વિદ્યાર્થી] તે સરનામાં સરખામણી છે.
અરે વાહ, બરાબર. તે વાસ્તવમાં સરનામાંઓ તુલના છે
જેમાં હેલો હેલો અને સંગ્રહિત થાય છે.
તે અક્ષરો હેલ્લો ન સરખામણી છે અને ફરી ફરી,
કારણ કે ખરેખર શું થયું છે, આ બધા સમય અમે GetString નો ઉપયોગ કરી રહ્યો -
આ વર્ગમાં વપરાતું કાળું પાટિયું ફરી અમારી કોમ્પ્યુટર મેમરી છે,
અને ચાલો કહે હું ચલ ઓ જાહેર કર્યા પછી GetString કૉલ કરો.
મારી યાદદાસ્ત શું લાગતું નથી?
ચાલો આપખુદ કહે છે કે ઓ આ જેવો દેખાય છે. તે એક ચોરસ છે.
અને ખૂબ ખૂબ કોઈપણ સમયે હું સ્ક્રીન પર મેમરી એક ભાગ ખેંચવામાં કર્યા છે
જો તે 32 બીટ છે હું આ જેવા ચોરસ કરવામાં ચિત્રકામ કરેલા ઉપકરણ કારણ કે ખરેખર,
એક નિર્દેશક, એક સરનામું, 32 બિટ્સ છે. તે પૂર્ણાંક તરીકે જ છે.
તે કમ્પ્યુટર સિસ્ટમ પર આધારિત હોઈ શકે છે.
તમે જે લોકો ડાઘ એ હકીકત છે કે જે તમારા Mac અથવા પીસી 64 બિટ્સ સાથે પરિચિત હોય છે,
કે જે વાસ્તવમાં સૂચવે છે કે જે તમારા કમ્પ્યુટરને 64-bit પોઇંટરો ઉપયોગ કરે છે,
64-bit સરનામાંઓ, અને તેનું upsides વચ્ચે તમારા કમ્પ્યુટર્સ છે
yesteryear કરતાં ખૂબ વધુ RAM હોય શકે છે.
લાંબા વાર્તા ટૂંકા, એ દિવસે પાછા જ્યારે કમ્પ્યુટર્સ માત્ર 32 બિટ્સ ઉપયોગ
માટે સરનામાં પ્રતિનિધિત્વ કરે છે, બાઇટ્સ મોટામાં નંબર તમે પ્રતિનિધિત્વ કરી શકે છે
તે કિસ્સામાં હતું શું જો તમે 32 બિટ્સ છે?
4 તેથી અબજ, જમણે, કારણ કે 2 32 બિલિયન 4 છે.
આ નંબર કોર્સ કરવામાં રિકરિંગ છે.
>> તેથી જો તમે માત્ર 32 બિટ્સ હોય, સૌથી વધુ સંખ્યામાં તમે ગણતરી કરી શકે છે 4 આશરે અબજ.
પરંતુ તે થોડા વર્ષો પહેલા સુધી કોમ્પ્યુટર્સ એક મૂળભૂત મર્યાદા હતી
જો તમે માત્ર 4 બિલિયન તરીકે ઉચ્ચ ગણતરી કરી શકે છે કારણ કે,
જો તમે RAM ની 8 ગીગાબાઇટ્સ અથવા તો RAM ના 5 ગીગાબાઇટ્સ ખરીદી વાંધો નથી;
તમે જે ઉચ્ચ ગણતરી છે, તેથી તેને નકામી થઇ હતી.
તમે ફક્ત તમારા કમ્પ્યુટરની મેમરી પ્રથમ 3 અથવા 4 ગીગાબાઇટ્સ ઍક્સેસ કરી શકે છે.
આ એક મુદ્દો ઓછી હવે, અને તમે MacBook પ્રો અને Dells ખરીદી શકો છો
RAM ની 8 ગીગાબાઇટ્સ અથવા વધુ પણ આ દિવસોમાં સાથે.
પરંતુ જો હું આ કાર્યક્રમમાં તદ્દન ખાલી નિર્દેશક ફાળવો, એક નિર્દેશક ઓ કહેવાય છે,
આ જેવા સ્ક્રીન પર જોવા કારણ કે ખરેખર અમે પાછા છાલ આ સ્તર કરવાની જરૂર પડી શકે છે.
હું કહેતા શબ્દમાળા રાખવા, પરંતુ સોમવાર તરીકે, શબ્દમાળા ખરેખર ઘરનાં પરચૂરણ કામો * છે,
કેટલાક પાત્રની સરનામું.
તેથી આપણે કે તાલીમ વ્હીલ બોલ લેવા છતાં પણ આપણે હવે માટે GetString ઉપયોગ ચાલુ રાખવા પડશે.
તેથી હું ઓ જાહેર કર્યું છે, અને આ મેમરી એક ભાગ, 32 બિટ્સ છે.
શું મૂળભૂત દ્વારા મેમરી અહીં છે? >> [અશ્રાવ્ય વિદ્યાર્થી જવાબ]
કે શું છે? >> [વિદ્યાર્થી] ગાર્બેજ. >> ગાર્બેજ. બરાબર.
જો તમે પ્રોગ્રામર એક ચલ એક મૂલ્ય નથી મૂકી નથી, કોણ જાણે તે શું છે?
ક્યારેક તમે નસીબદાર વિચાર અને તેને 0 છે, કે જે સરસ, સ્વચ્છ મૂળભૂત કિંમત પ્રકારની છે,
પરંતુ અમે જોયું સોમવાર, ક્યારેક તે સંપૂર્ણપણે નકામુ છે,
કેટલાક ખરેખર મોટી સકારાત્મક કે નકારાત્મક સંખ્યા છે કે જ્યાં તરફથી આવ્યા હતા?
યાહ. >> [વિદ્યાર્થી] પહેલાં આ કાર્ય કરે છે. >> યાહ.
>> ઘણીવાર કાર્ય કે જે પહેલાં કારણ કે યાદ કહેવાય મળ્યો,
જેમ તમે મેમરી કાર્યો કૉલ, તેઓ નીચે થી વધુ અને વધુ જગ્યા લેવા અપ
અને તરીકે કાર્ય વળતર જલદી છે, કે જે મેમરી ફરીથી નહીં
આગામી વ્યક્તિ કે કહેવાય નહીં દ્વારા, જે તમારી મેમરી સમાન સ્લાઇસ વાપરી રહ્યા છે.
અને જો તમે ડાબી ત્યાં કચરો, અગાઉના કિંમતો કરેલા,
અમે કેટલીક કિંમત કર્યા ત્યારે ખરેખર આપણે કંઈ પણ ત્યાં મૂકી છે કારણ ઓ ભૂલથી શકે છે.
તેથી આ બિંદુ પર અમારી રેમ આ જેવો દેખાય છે.
હવે 7 લીટીના બાજુ જમણી બાજુ આપણે GetString કૉલ કરી રહ્યાં છો,
જે અમે અઠવાડિયા માટે થઈ હવે કરવાનું છે, પરંતુ ખરેખર શું કરવાનું GetString છે?
આ CS50 સ્ટાફ દ્વારા લખવામાં GetString થોડો બુદ્ધિશાળી છે
કે જલદી વપરાશકર્તા શરૂ થાય લખીને કીઓ અને હિટ દાખલ કરો,
GetString બહાર આધાર કેટલા કીસ્ટ્રોક વપરાશકર્તા હિટ હતી,
કેટલા અક્ષરો હું માટે રેમ ફાળવણી કરવાની જરૂર નથી.
અને જ્યાં કે રેમ આવે છે, જેઓ જાણે છે?
તે તમારા કમ્પ્યુટર 2 ગીગાબાઇટ્સ અથવા મેમરી whatnot ક્યાંક છે.
દો પરંતુ ધારો કે કમ્પ્યૂટર હેલ્લો શબ્દ માટે જગ્યા અહીં જોવા મળે છે.
શબ્દ હું લખ્યો H-ઇ એલ એલ-O હતી.
અને જો આપણે અક્ષરો ક્રમ તરીકે આ ડ્રો, અમે તેને આ જેવા દોરે.
પણ હું 1 વધારાના વસ્તુ કરવાની જરૂર છે. શું સી કોઈપણ શબ્દમાળા ઓવરને અંતે અનુલક્ષે છે?
આ નલ પાત્ર, જે અમે 0 \ તરીકે લખી.
તે ટેકનિકલી નંબર 0 છે, પરંતુ બેકસ્લેશ તમામ સ્પષ્ટ કરે છે
કે આ અર્થ 0 નંબર, પૂર્ણાંક 0 છે;
તે, ઉદાહરણ તરીકે, 0 ક્વોટ-અવતરણ ચિહ્નો પૂરાં કરવાં કે તમે કીબોર્ડ લખો શકે છે માટે નથી.
તેથી આ હેલ્લો છે.
>> અને આપણે જે સોમવારે કહ્યું નહોતું કે GetString જેમ કાર્ય
છે ખરેખર આ બધા અઠવાડિયા પરત?
તે સે દીઠ શબ્દમાળા પાછા ન કારણ કે તે ખરેખર નથી જેનો અર્થ નથી છે છે
કારણ કે શબ્દમાળાઓ અસ્તિત્વમાં નથી. તેઓ CS50 પુસ્તકાલય એક ફેબ્રિકેશન જેવું છો.
શું ખરેખર એક સ્ટ્રિંગ છે, વધુ તકનિકી? >> [વિદ્યાર્થી] તે પ્રથમ અક્ષર છે.
બરાબર. તે તદ્દન સરળ પ્રથમ અક્ષર ની સરનામા છે કે જે વપરાશકર્તા સાઇન લખ્યો
તેથી જો મારા શબ્દ હેલો તે બાઇટ નંબર 123 પર અને પછી બાઇટ 124 નંબર પર થાય,
125, 126, અને તેથી આગળ, જો હું 0 થી હમણાં પર મારી બાઇટ્સ નંબર,
ખરેખર GetString પરત છે શું શાબ્દિક સંખ્યા 123 છે.
તેથી નહીં s માં મૂકી શું નંબર 123, નથી અક્ષર એચ શબ્દ છે હેલો,
તદ્દન ખાલી સરનામા કે હું હેલો પ્રથમ અક્ષર શોધી શકો છો.
પરંતુ તે પર્યાપ્ત નથી લાગતું નથી. હું તમને એક શબ્દમાળા માટે પૂછ્યું છે, પાત્ર નથી.
તેથી અમે અથવા કોમ્પ્યુટર કેવી રીતે જાણી શકું ELLO પ્રકારની એચ સાથે આવે છે કે?
કરારની સૉર્ટ અમારી પાસે શું છે? યાહ.
[વિદ્યાર્થી] તે પોતે કહેવાની કેટલીક વધુ અક્ષરો શોધવા માટે રાખે છે. ચોક્કસ. >>
>> આ સંમેલનમાં માનવ કમ્પ્યુટર જેમાં જ્યારે તમે શબ્દમાળાઓ સાથે વ્યવહાર કરવામાં આવે છે છે,
અન્યથા ઘરનાં પરચૂરણ કામો તારા તરીકે હવે ઓળખાય છે, તમે ખાલી બહાર આકૃતિ હોય છે
જ્યાં જીવન માં દરેક શબ્દમાળા ઓવરને ખરેખર માત્ર લૂપ માટે એક સાથે ઉપર વારો છે,
જ્યારે લૂપ, ગમે છે, કે જેથી જ્યારે તમે શબ્દમાળા ઓવરને શોધવા
હવે તમે તે અટકળ બાંધવી શકે છે, ઓહ, સમગ્ર શબ્દ હેલો હતી.
પહેલાં પ્રોગ્રામિંગ અનુભવ સાથે તમે તે જાવા ખબર પડી શકે છે
તમે હમણાં જ ફોન કરો. લંબાઈ શકે છે અને અન્ય ભાષાઓમાં તમે લંબાઈ અથવા સમાન કૉલ કરી શકો છો.
કે કારણ કે ભાષાઓ ઘણો છે, ખાસ કરીને વસ્તુઓ ભાષાઓ પદાર્થ આધારિત કહે છે,
કંઈક લંબાઈ પોતે માહિતી ના ભાગ ની સમાઇ અંદર પ્રકારની છે,
ખૂબ અમે સમાઇ ID અને નામો અને સોમવારે એક વિદ્યાર્થી ની અંદર ગૃહો ગમે છે.
પરંતુ સી ઘણા નીચા સ્તરે છે. ત્યાં કોઈ વસ્તુઓ અથવા વર્ગો છે, જો તમે તે શરતો સાંભળ્યું કર્યું છે તે પહેલાં.
તમારી પાસે ખરેખર મેમરી સરનામાંઓ છે.
તેથી આ રસપ્રદ માહિતી માળખાં પ્રતિનિધિત્વ રીતે જૂના જમાનાનું જેવું છે.
તમે પ્રથમ અક્ષર ની સરનામા જેવી શરૂઆતની કિંમત હોય છે
અને પછી માત્ર કેટલાક મનસ્વી સંમેલન કે દરેકને અનુસરો સંમત થાય છે.
આમ કેવી રીતે શબ્દમાળા લંબાઈ અમલમાં મૂકાયેલ છે, અમે દરખાસ્ત મુકી ન હતી?
Strlen, strlen, કે જે તમને કેટલાક હવે થોડા વખત ઉપયોગ કર્યો છે. તે ખૂબ સરળ અધિકાર છે?
તે કોડ 2 રેખાઓ જેવું છે.
તે ખરેખર ખૂબ અમુક પ્રકારની એક માટે લૂપ છે વધારાની સ્થાનિક ચલ સાથે કદાચ.
પરંતુ strlen માત્ર એક નિર્દેશક લો અને પછી શરૂ 0 \ શોધી છે.
>> અને જલદી તેને શોધે છે, તે પગલાંઓ કે જેઓ શબ્દમાળા લેવામાં આવ્યું છે તે કુલ સંખ્યા પાછા આવી શકો છો.
તેથી અમે આ અટકળ બાંધવી શું આગામી પર કોઈ રન નોંધાયો નહીં કરી શકે છે.
પછી ધારો હું ટી જાહેર હું 10 લીટી માં કર્યું છે.
આ અમુક કચરો કિંમત છે. કોણ પ્રથમ જાણે?
પરંતુ 10 વાક્ય બાજુ જમણી બાજુ પર હું ફરીથી GetString કૉલ છું.
કોણ જાણે જ્યાં આ થાય?
ચાલો આપખુદ કહે છે કે ઓપરેટિંગ સિસ્ટમ પર અહીં માર્ગ માટે જગ્યા મળી નથી.
હું સાંયોગિક H-ઇ એલ એલ ઓ લખો ફરીથી થાય છે,
અને તેથી અમે ચિત્ર આ પ્રકારના જ ડ્રો કરી શકો છો.
પરંતુ હકીકત એ છે કે હું સ્થપાયો આ ચિત્ર કરેલા ઇરાદાપૂર્વકની છે
કારણ કે આ એક કરતાં અલગ હેલ્લો છે.
અહીં આ 456 સ્થાન હોઇ શકે છે, આ 457 છે, અને તેથી આગળ.
તેથી શું જ્યાં પ્રશ્ન ચિહ્ન વાર હતી મૂકવા નહીં?
આ 456 કેસ છે.
અમે આ નંબર ચૂંટવું કરી રહ્યાં છો આપખુદ આજે પછી કારણ કે ખરેખર
અમે કાંઇ ના સરનામા શું છે તે અંગે ખૂબ જ કાળજી નથી જઈ રહ્યાં છો.
બધા અમે વિશે કાળજી છે કે અમે હેલો જેવા માહિતી અમુક ભાગ ના સરનામા આકૃતિ કરી શકો છો.
>> તેથી ખરેખર મોટા ભાગના લોકો શું કમ્પ્યૂટર સાયન્સ કરવા જ્યારે મેમરી સરનામાંઓ વિશે વાત
અને પોઇંટરો વિશે ખાસ વાત,
કોણ રાખે છે જ્યાં આ સામગ્રી ખરેખર છે, - બદલે બહાર figuring 123 સંતાપ
અમે જરા પણ ખબર છે કે તે અમુક સંખ્યાત્મક સરનામાં પર છે -
અમે વિશ્વ સરળ અને માત્ર કહે છે કે ઓ કે અક્ષર પોઇન્ટ છે
અને ટી કે અક્ષર પોઇન્ટ છે.
અને હકીકત એ છે કે તે એક તીર છે તદ્દન ઇરાદાપૂર્વક છે
કારણ કે શાબ્દિક હવે ઓ એચ અને ટી તરફ સંકેત છે અન્ય એચ તરફ સંકેત છે
કારણ કે આ દિવસે ઓવરને અંતે, તે વાંધો સરનામું શું છે નથી કરતું નથી,
પરંતુ તે બાબત કે અમે કોડ કેટલાક ભાગ સાથે તે સરનામા વ્યક્ત કરવાની ક્ષમતા હોય છે.
અમે ખરેખર આ સરનામાં ચાલાકીથી છે હજુ સુધી
તેથી અમે જોશો જ્યાં અમે વચ્ચે નાખવું અને સૉર્ટ ઓફ પોઇન્ટર સાથે વસ્તુઓ કરી શકો છો,
પરંતુ હવે લીટી માટે 12 શાબ્દિક શું કિંમતો અમે સરખામણી કરી રહ્યા હોય
અનુસાર 12 લીટી માં આ વાર્તા માટે?
અમે કહી રહ્યાં 123 456 માટે સમાન સમાન છે? અને તે ચોક્કસપણે કેસ નથી.
અને પણ ખ્યાલ પ્રમાણે, આ નિર્દેશક ચોક્કસપણે આ જ નથી
કારણ કે તમે બે વાર GetString કહેવાય છે, અને GetString માટે હોંશિયાર સુપર નથી પ્રયાસ કરતું નથી,
તે ખ્યાલ નથી પ્રયાસ કરતું નથી, ઓહ, તમે હેલો 5 મિનિટ પહેલા લખ્યો;
દો મને તમે જ નિર્દેશક આપો હું તમને પહેલાં આપ્યું,
તે માત્ર મેમરી એક નવી ભાગ દરેક વખતે તમે તેને કહી ફાળવે છે.
>> કેવી રીતે અમે આ સમસ્યા ઠીક કરું?
ઊંચા સ્તર જો હું હેલો હેલો અને શબ્દમાળાઓ તુલના કરવા માંગો છો -
હું પોઇંટરો વિશે કાળજી નથી - કેવી રીતે હું પ્રશ્નનો જવાબ જઈ નથી,
તેણે વપરાશકર્તા એ જ વસ્તુ લખ્યું છે? શું જરૂરી અહીં છે? યાહ.
[વિદ્યાર્થી] કાર્ય વાપરો. >> હું બોક્સ એક કાર્ય બહાર વાપરી શકો છો.
હું strcmp, ઓ ટી-r-c-m-p કહેવાય વિધેય વાપરી શકે છે,
ફક્ત કહેતા શબ્દમાળા સરખાવવા ઓફ સંક્ષિપ્ત આવૃત્તિ.
અને જો આપણે જાય, દાખલા તરીકે, 2 તુલના, જે આજે handouts વચ્ચે હોય છે,
હું કે બરાબર નથી.
હું નીચે પર 26 જેથી અથવા બાકીનું બધું રેખા 1 એ જ રાખવામાં આવે છે,
અને હવે નોટિસ આ ભાગ માત્ર થોડો ફેરફાર આવ્યો છે.
ચાલો એક ક્ષણ માટે 28 લીટી અવગણો અને આ એક માત્ર ભાર મૂકે છે.
અમે શું સોમવારે કહ્યું નહોતું કે str સરખાવો કરે છે?
આ કિસ્સામાં 2 પોઇન્ટર, ઓ અને ટી લેવાની પ્રક્રિયા સંભાળે છે,
પ્રકારના વર્ચ્યુઅલ તે 2 અક્ષરો પર તેની આંગળી મૂકી,
અને તે કરવું જ પડશે કે શું એક વખતે કે લૂપ માટે લૂપ એક કંઈક છે,
અને તે કહે છે કે આ છે એ જ? જો આમ હોય, તો તે આંગળીઓ અથવા આગળ પોઇંટરો ખસે છે.
આ છે એક જ, આ જ, આ જ,
આ જ રીતે, આ જ? Ooh અને, હું બંને ઓ અને ટી અંતે શબ્દમાળા ઓવરને અંતે છું.
હું કોઇ પણ વિરોધાભાસ મળ્યા નથી. હા, આ શબ્દમાળાઓ જ છે.
અને શું str વળતર તુલના નથી જો 2 શબ્દમાળાઓ સમાન હોય છે દેખીતી રીતે? શૂન્ય.
0 તેથી આ કિસ્સામાં સારી છે કારણ કે જો તે -1 અથવા +1 આપે,
કે અર્થ એ થાય કે ઓ માત્ર ટી મૂળાક્ષરોની પહેલાં અથવા ટી પછી આવો બને છે.
અને શા માટે છે કે જે ઉપયોગી હોઈ કાર્ય છે કે જે તમને કહે છે કે શબ્દમાળા પહેલા આવે પડશે
કે પછી એક શબ્દકોશ?
[વિદ્યાર્થી] શોધી રહ્યું છે. >> શોધી અને સૉર્ટ.
>> તેથી તમે બાઈનરી શોધ અથવા બબલ સૉર્ટ કરવા જેવી વસ્તુઓ અથવા સૉર્ટ મર્જ કરી શકો છો
જ્યાં તમે વસ્તુઓ સરખાવવા છે.
આમ અત્યાર સુધીમાં અમે કેટલાક ખૂણા કાપવામાં પ્રકારની કરેલા અને માત્ર સૉર્ટ વિશે વાત કરી
નંબરો સંદર્ભમાં કારણ કે તે સરસ અને સરળ છે તે વિશે વાત,
પરંતુ તમે ચોક્કસપણે શબ્દમાળાઓ સફરજન, અને કેળાના તુલના કરી શકો છો,
જો સફરજન માટે કેળાના પહેલા આવે છે, તેવી જ રીતે ઓળખવામાં આવે છે કારણ કે,
તમે આસપાસ શબ્દમાળાઓ ખસેડી શકો છો રોબ જેમ જ મેમરીમાં કર્યું વિડિઓ માં મર્જ સૉર્ટ સાથે
અને અમે પસંદગી સૉર્ટ કરો, નિવેશ સૉર્ટ કરો, અને પરપોટો સૉર્ટ સાથે સ્ટેજ પર અહીં કર્યું હતું.
તેથી બીજું જ્યાં અમે આ સમય લાગી શકે છે? ચાલો આ પ્રયાસ કરો.
ચાલો જેવું એક ક્ષણ માટે તે પાઠ ભૂલી જાઓ અને હવે પ્રયાસ અને નીચેના કરવું 1.c નકલ કરો.
21 લીટી માં હું પ્રિન્ટ કંઈક કહી રહ્યો છું,
પછી હું વપરાશકર્તા તરફથી એક શબ્દમાળા મેળવવામાં છું,
પછી હું આ ચકાસણી છું.
અમે ખરેખર આ આદત માં મેળવેલ છે હજુ સુધી, પરંતુ આપણે હવે આ નથી.
ની ખરેખર દો પાછળ આ સ્તર છાલ. આ ખરેખર કામની પાળી * છે. આ વ્યક્તિ ખરેખર ઘરનાં પરચૂરણ કામો * છે.
તેથી તે શું ઓ == NULL જો ચકાસણી કરી અર્થ છે?
તે તારણ છે કે જ્યારે તમે GetString જેમ કાર્ય કૉલ
અથવા વધુ સામાન્ય રીતે ફક્ત કમ્પ્યુટર તમને અમુક મેમરી આપવા માટે,
કંઈક ખોટું થાય તો કરી શકે છે.
તમે ઉન્મત્ત પ્રયત્ન અને મેમરીની ટેરાબાઈટ માટે કોમ્પ્યુટર પૂછી શકે છે
મેમરી બાઇટ્સ કે જે ફક્ત કોમ્પ્યુટર અસ્તિત્વમાં નથી ટ્રિલિયન માટે પુછે છે,
પરંતુ GetString અને અન્ય કાર્યો તમે yelling કેટલાક માર્ગ જરૂર
જો તમે ખૂબ માટે પૂછ્યું છે.
અને જે રીતે GetString કરે છે જો તમે વધુ મેમરી માટે પૂછ્યું છે
કરતાં કમ્પ્યુટર માં ઉપલબ્ધ છે, જો તે સુપર, સુપર ઓછી સંભાવના છે
કારણ કે અમને કંઈ એક ટ્રિલિયન અક્ષરો લખો અને પછી Enter હિટ જતાં હોય છે,
પરંતુ ઓછી સંભાવના છે, છતાં તેને હોઈ શકે છે, હું હજુ પણ તે માટે ફક્ત કેસ તપાસ કરવા માંગો છો,
અને ખાસ કિંમત GetString, જવાબ, અને અન્ય કાર્યો વળતર કે
જો કંઈક ખોટું ગયું તમામ કેપ્સ માં NULL છે.
>> અને શું NULL છે? NULL જ એક નિર્દેશક પ્રતિનિધિત્વ થાય છે. તે મેમરી સરનામા 0 છે.
વિશ્વ કે આપખુદ નિર્ણય લીધો, જો આ મારા કમ્પ્યુટર મેમરી છે -? તમે શું જાણો છો -
અમે ફક્ત દરેક કમ્પ્યુટર મેમરી 1 બાઇટ ચોરી જઈ રહ્યાં છો, અને આ 0 સ્થાન છે.
અમે તેને NULL એક ઉપનામ આપવા જઈ રહ્યાં છો, અને અમે વચન જઈ રહ્યાં છો
કે અમે ખરેખર વાસ્તવિક માહિતી ત્યાં ક્યારેય મુકીશું
કારણ કે અમે માત્ર આપખુદ એક ખાસ મૂલ્ય 0, ઉર્ફ NULL જરૂર છે,
તેથી અમે વપરાશકર્તાઓ કિકિયારી જો કંઈક ખોટું કરી શકો છો.
અન્યથા તમને ખબર નથી શકે 0 અર્થ કંઈક અહીં મૂકો
અથવા તેને એવો નથી કંઈક ખોટું થયું?
અમે બધા સંમત છે કે NULL અર્થ કંઇ પરત કરવામાં આવી હતી,
કોઈ વાસ્તવિક સરનામા પરત ફર્યા હતા.
હવે, અહીં હું ફક્ત મારા હું માનવ સંમેલન અપનાવવા છું મુખ્ય માંથી 1 પાછા
જો કંઈક ખોટું.
કે કારણ મુખ્ય વળતર સંમેલનમાં 0 જો સારા પરત છે,
1 અથવા અમુક જો ખરાબ અન્ય મૂલ્ય.
પરંતુ GetString અને કોઈપણ કાર્ય કે મેમરી NULL વળતર માં સોદા જો કંઈક ખરાબ જાય છે.
>> ઠીક છે. તેથી દુર્ભાગ્યે, 27 લીટી, એ છતાં સુપર સરળ, સંપૂર્ણ શબ્દમાળા નકલ નિષ્ફળ જાય છે.
શા માટે? અમે જોઈ શકો છો આ અનુસરે છે.
હું 27 લીટી દાવો કરી રહ્યો છું ને એક નકલ કરી અને તે કહે છે.
તેથી હું 2 આ સમય શબ્દમાળાઓ માટે વપરાશકર્તા નથી જણાવી રહ્યો છું; હું ફક્ત ઓ માં કિંમત કહી રહ્યો છું
ટી માં પણ મૂકવામાં આવવો જોઈએ.
તેથી હવે માત્ર નિદર્શન માટે તૂટેલા આ કેવી રીતે થાય છે, રેખા, 29 આગળ હું શું કરી રહ્યો છું?
પ્રથમ હું જો ટી લંબાઈ 0 કરતાં મોટો છે ચકાસણી છું.
કેટલાક ત્યાં શબ્દમાળા છે. વપરાશકર્તા સાઇન કંઈક લખ્યો
32 કરવાનું લાઇન, દેખીતી રીતે શું છે?
[અશ્રાવ્ય વિદ્યાર્થી પ્રતિભાવ] >> અધિકાર. તમે પ્રકારની તે હું શું કહ્યું કે તે કરવાનું છે માંથી અટકળ બાંધવી કરી શકો છો.
પરંતુ ટેકનિકલ રીતે, આ શું કરે છે? ટી [0] શું પ્રતિનિધિત્વ?
[વિદ્યાર્થી] આ zeroth પાત્ર. >> [Malan] આ zeroth પાત્ર.
અથવા, માનવ જેવી વધુ ટી પ્રથમ અક્ષર, ગમે તે, એચ કદાચ આ કિસ્સામાં.
અને toupper કરે તે શું કહે છે. તે ના zeroth અક્ષર અક્ષરે અને તેને બદલે છે.
તેથી આ અર્થ એ થાય ટી ના zeroth અક્ષર લઇ કરવા માટે, તેને મોટા,
અને તે જ સ્થાન પર પાછા મૂકો.
તેથી જો હું લોઅરકેસ માં હેલો લખો, આ મૂડી એચ માટે લોઅરકેસ ક બદલવો જોઈએ
પરંતુ સમસ્યા એ છે કે લીટીઓ માં 35 અને 36 હું શું વિશે છું અમને ઓ અને t માટે છાપે છે.
અને તમારા જાડો શું છે?
હું શું ખરેખર છું એ જોવા માટે તો હું બધા લોઅરકેસ માં હેલો માં લખ્યો ચાલે?
શું મુદ્રિત કરો ચાલી રહ્યું છે? >> [અશ્રાવ્ય વિદ્યાર્થી પ્રતિભાવ] >> કે શું છે?
[વિદ્યાર્થી] મોટા એચ અને બાકીના નાના. >> આ મોટા એચ અને બાકીના નાના જેના માટે, અથવા ઓ ટી?
બંને [વિદ્યાર્થી]. >> બંને. બરાબર. તેથી આપણે શું થઈ રહ્યું છે તે અહીં.
>> મને આગળ વધો અને આ કમ્પાઇલ. આ copy1 છે, તેથી copy1 બનાવે છે. અધિકાર છે.
સાઇન ઝૂમ દો મને આગળ વધો અને copy1 ચલાવવા માટે, દાખલ કરો, કંઈક કહો: હેલ્લો લોઅરકેસ છે.
તે નકલ મૂડીગત, પરંતુ તે દેખીતી રીતે મૂળ તેમજ મૂડીગત,
કારણ કે શું હવે આ વાર્તામાં શું થાય છે?
27 લીટી માં હું વાસ્તવમાં શબ્દમાળા નકલ છો તેમ લાગતું નથી,
પરંતુ છતાં પણ તમે તર્ક આશા હતી હોઈ શકે છે કે આ કેસ માટે,
જો તમે આ ચિત્ર વિશે વિચારો, શું ખરેખર હું કર્યું છે?
ચિત્ર અડધા જ છે.
તેથી આપણે સમય પાછા રોલ છે કે જેથી ટી હજુ સુધી વાર્તામાં અસ્તિત્વમાં નથી.
એસ વાર્તા માં હાજર હોય, પરંતુ આપણે હેલ્લો આ સમય લોઅરકેસ.
તેથી દો મને ઠીક હું શું ખરેખર સાઇન લખ્યો
આ અહીં કિસ્સામાં અમે-h ઈ-l-l-o હોય છે.
અમે તેના અક્ષરો અનુક્રમ તરીકે દોરવા પડશે, મારા વિભાજક રેખાઓ અહીં મૂકો અને મારી \ 0.
તેથી આ છે જ્યાં અમે 24-ઇશ મારફતે તરીકે રેખા 1 જલદી છે આપી, અથવા લાગી છે, ચલાવવામાં.
આ મારો મેમરી ચિત્ર છે.
હું જ્યારે 27 વાક્ય વિચાર, શું થાય છે?
પહેલાંની જેમ, હું એક નિર્દેશક, કે જે હું આ ચોરસ તરીકે ડ્રો કરીશું.
તે કહેવાય છે. અને મૂળભૂત દ્વારા તેની કિંમત શું છે? કોણ જાણે? કેટલાક કચરો મૂલ્ય.
>> તેથી હું તારીજ કરીશું કે દૂર પ્રશ્ન ચિહ્ન તરીકે.
અને જલદી 27 લીટીના બાજુ જમણી બાજુ ચલાવે છે, હું શું કરું છું ટી ની અંદર મૂકવા?
આ જ વસ્તુ છે કે s માં છે.
તેથી જો આપણે એક ક્ષણ માટે તીર આ બેધ્યાનપણું દૂર કરો અને અમે કહીએ છીએ,
ઓહ, આ મેમરી લોડ 123 સરનામું છે, જ્યારે તમે કહી ટી ઓ, અર્ધવિરામ નહીં,
તમે શાબ્દિક 123 રહ્યાં છો અહીં મૂકી.
હવે જો આપણે પ્રકારની ચિત્રો સાથે અમારી વિશ્વ ફરીથી સરળ,
તમે ખરેખર કર્યું છે શું ફક્ત તમારા વિશ્વમાં બીજા તીર ઉમેરી
કે ટી ​​એ જ ચોક્કસ શબ્દમાળાને પોઇન્ટ છે.
તેથી જ્યારે 31 લીટી અને 32 માં હું ખરેખર [0] ટી બદલવા વિશે જાય છે,
ટી શું છે [0] દેખીતી રીતે હવે પર્યાય? ઓ [0]
જેથી તે ચાલી રહ્યું છે તે તમામ.
અને પણ આ પ્રકારની છતાં લાગે છે થોડું નીચું સ્તર અને arcane
અને આ પ્રકારની કદાચ તર્ક આ માત્ર કામ કર્યું છે કરીશું જેવા લાગે છે -
હું વસ્તુઓ નકલો પહેલા કર્યા અને તે માત્ર કામ કર્યું -
જો તમે ખરેખર એક શબ્દમાળા ખરેખર શું છે તે વિશે વિચારો, તે ચાર રચે છે * છે.
વેલ, તે શું છે? કેટલાક પાત્રની સરનામા છે.
પછી કદાચ તે વધુ અર્થપૂર્ણ બને કે જ્યારે તમે કંઈક પ્રયાસ કરો
સુપર મોટે ભાગે આ જેવા સરળ, બધા તમે નકલ કરી રહ્યા છીએ મેમરી સરનામું છે.
તમે ખરેખર શબ્દમાળા પોતે સાથે કંઈ નથી કરી રહ્યા.
તેથી જો તમે કોઈ વિચાર છે કે તમે કેવી રીતે કોડ આ સમસ્યા હલ થશે,
ઉચ્ચ સ્તર, સરળ, અમે શું કરવું જોઇએ કરવા માટે s ની ખરી નકલ ટા બનાવવા દેખીતી રીતે?
યાહ. >> [વિદ્યાર્થી] તે એક નવું સ્થાન આપો? ચોક્કસ. >>
>> અમે ટી એક નવા સ્થાન આપવા જરૂર છે.
અમે કોઈક વિશ્વ કે જેમાં અમે મેમરી એક નવી ભાગ વિચાર બનાવવાની જરૂર છે,
જે સ્પષ્ટતા ખાતર માત્ર હું આ એક નીચે જમણી ડ્રો, પરંતુ પડશે તે ત્યાં હોવી જરૂરી નથી.
પરંતુ તે સમાન કદ પ્રયત્ન કરવાની જરૂર છે, જેથી હું જ જગ્યાએ આ લંબરૂપ રેખાઓ દોરવા પડશે.
તે દંડ છે જો આ તમામ કચરો શરૂઆતમાં છે. કોણ જાણે શું ત્યાં હતો?
પરંતુ પગલું 1 માટે મને ખૂબ મેમરી આપી હોય રહ્યું છે હું જરૂર
હેલો એક નકલ ફિટ, પછી બહાર આકૃતિ કેવી રીતે ક નકલ કરવા માટે અહીં, અહીં ઇ,
અહીં અને તેથી આગળ l.
પરંતુ આ પહેલેથી જ થોડો સ્પષ્ટ લાગે છે પણ જો વિગતો હજી પણ કેટલીક છે અમૂર્ત કરીશું.
આ આ શબ્દમાળા નકલ કરો, તે લૂપ અથવા જ્યારે લૂપ માટે માત્ર એક છે
અથવા કંઈક કે જેની સાથે તમે બધી વધુ પરિચિત બનવા દીધું છે.
તેથી આપણે આ પ્રયાસ કરો. મને copy2.c માં જાઓ.
Copy2.c અમે 27 લાઇન સિવાય લગભગ આ જ કાર્યક્રમ છે.
તે થોડો જટિલ લાગે છે, પરંતુ જો આપણે તેને તોડી નીચે ભાગ દ્વારા ટુકડો,
બાજુ ડાબી બાજુની જ છે.
ચાર * ટી મેમરી આ વસ્તુ બનાવે છે, પ્રશ્ન ચિહ્ન સાથે જોકે
કારણ કે અમે કોઈ વિચાર છે શું મૂળભૂત રીતે ત્યાં છે.
બાજુ જમણી બાજુ આપણે હવે એક નવી કાર્ય malloc, રજૂઆત કરી રહ્યાં છો,
માટે મેમરીને ફાળવવા, મને મેમરી આપવા માટે,
અને તે દેખીતી રીતે કેટલા દલીલો કેટલા કૌંસ અંદર વસ્તુઓ? લે છે
હું 1 અને 2 ના murmurings સાંભળ્યું છે, પરંતુ તે ફક્ત 1 છે.
ત્યાં કોઈ અલ્પવિરામ, જેનો અર્થ છે કે ત્યાં માત્ર કૌંસ અંદર 1 વાત છે છે.
તેમ છતાં ત્યાં અન્ય કૌંસ છે દો, મને પ્રકાશિત
શું બાહ્યતમ કૌંસ ની અંદર છે, અને તે આ અભિવ્યક્તિ છે:
(Strlen (ઓ) + 1) * sizeof (કોલસો).
તેથી જો આપણે ખરેખર આ મારફતે લાગે, આ કહેતા છે મને ઓ લંબાઈ આપે છે.
હું શા માટે છું, છતાંય, લંબાઈ પર 1 ઉમેરીને? >> [અશ્રાવ્ય વિદ્યાર્થી જવાબ]
બરાબર. અમે આ વ્યક્તિ માટે પૂંછડી પર જગ્યા, છઠ્ઠું અક્ષર કે કોઈ ઇંગલિશ અર્થ હોય છે જરૂર
પરંતુ ખાસ કાર્યક્રમ વિષયક અર્થ નથી.
>> તેથી અમે તે માટે એક + 1 જરૂર છે કારણ કે strlen વળતર લંબાઈ માનવ અપેક્ષા,
હેલ્લો અથવા 5, તો તે તમને વધારાની નલ અક્ષર નથી આપતું નથી.
તેથી હું જાતે 1 + સાથે આ ઉમેરો.
અને પછી આ * કદ (કોલસો), અમે આ પહેલાં જોઈ હોય તો.
આ ટેકનિકલી કાર્ય નથી.
તે એક ખાસ કીવર્ડ કે જે હમણાં જ તમને જણાવે છે કે માપ શું કમ્પ્યૂટર પર અમુક માહિતી પ્રકાર છે છે
વાસ્તવમાં કારણ કે, અમને કેટલાક 32-bit કમ્પ્યુટર્સ હોય છે.
હું ઘરે એક સુંદર જૂના કમ્પ્યુટર ધરાવે છે, અને તે માત્ર 32 બિટ્સ વાપરે પોઇંટરો પ્રતિનિધિત્વ કરે છે.
અને તેથી જો હું માહિતી પ્રકાર કદ હતી, તે 32 બિટ્સ હોઈ શકે છે.
પરંતુ જો હું મારી નવી ફેન્સી કોમ્પ્યુટર ઉપયોગ કરું છું, હું પાછા 64 બિટ્સની કિંમત વિચાર કરી શકે છે
એક સરનામું કંઈક છે.
તેથી આ કિસ્સામાં, માત્ર સુપર સુરક્ષિત કરવા માટે, અમે હાર્ડ કોડ કંઈક નથી જઈ રહ્યાં છો -
સાથે સાથે, શું આપણે શું અત્યાર સુધી કહ્યું હતું કે કર્યું છે અનુસાર ઘરનાં પરચૂરણ કામો નું માપ છે?
અમે ખૂબ ખૂબ મૌખિક જણાવ્યું છે કે તે 1 બાઇટ છે, અને એ કે બોર્ડ સમગ્ર ઘટનાએ સાચું છે.
પરંતુ ફરીથી, ધારણાઓ માટે ખરાબ હોય છે.
તેઓ બગડેલ સોફ્ટવેર દોરી જો લોકો રીતે તમે નથી ઇરાદો નહોતો તમારા સોફ્ટવેર વાપરો.
તેથી લેટ્સ અમૂર્ત હિસ્સો આ દૂર અને માત્ર વધારે સામાન્ય કહેવું
હું મેમરી આ અનેક ટુકડા જરૂર
અને મેમરી દરેક ભાગ, એક અક્ષર માપ સમકક્ષ હોવા જોઈએ,
જે 1 આ કેસ માટે સમાન હકીકત છે, પરંતુ તેને લખવાનું વધુ સામાન્ય રીત છે.
તેથી જો શબ્દ હેલ્લો છે, કેટલા બાઇટ્સ malloc દેખીતી રીતે નથી હેલ્લો માટે ફાળવવા?
છ [વિદ્યાર્થી]. છ. >> બરાબર ઘણા અમે સ્ક્રીન પર પ્રશ્ન ગુણ હોય છે.
અને પછી લેવાનો હવે GetString તમારા સમજ પર આધારિત અનુમાન
malloc શું કદાચ આપે? >> [વિદ્યાર્થી] એક સરનામું.
શું એક સરનામું? મેમરી પ્રથમ ભાગ છે.
>> અમે કોઇ વિચાર શું છે ત્યાં હોય છે કારણ કે અમુક અન્ય કાર્ય
કરવામાં આ મેમરી હોઈ શકે છે અગાઉ મદદથી.
પરંતુ malloc, GetString જેમ, મેમરી પ્રથમ બાઇટ ની સરનામા આપે છે
કે તે કોરે તમારા માટે સેટ છે.
જોકે, તે કરતું નથી આ શું ખાલી એક બેકસ્લેશ નલ પાત્ર સાથે ભરો છે
કારણ કે તે વળે બહાર તમે malloc વાપરવા માટે કંઈપણ ફાળવી શકો છો: ints, શબ્દમાળાઓ એરે,
ફ્લોટ્સ, વિદ્યાર્થી માળખાં.
તમે malloc સંપૂર્ણપણે સામાન્ય ઉપયોગ કરી શકો છો.
તે કાળજી નથી અથવા તે જાણવા માટે તમે શું મેમરી માટે allocating કરી રહ્યાં નથી.
તેથી તે malloc માટે ધૃષ્ટ હોઈ \ 0 મૂકવામાં આવશે
મેમરી દરેક ભાગ ઓવરને અંતે તે તમને આપી દીધો છે
કારણ કે આ \ 0 વસ્તુ માત્ર શબ્દમાળાઓ માટે એક પરંપરા છે.
તે ints માટે વપરાયેલ નથી છે, જે તેને ફ્લોટ્સ માટે વપરાયેલ નથી છે, તે વિદ્યાર્થીઓ માટે વપરાયેલ નથી છે.
અને તેથી malloc સાથે gotcha છે કે બોજ પર તમે સંપૂર્ણપણે પ્રોગ્રામર છે
યાદ કેટલા બાઇટ્સ તમે ફાળવવામાં અને લૂપ માટે નથી ક્યારેય ઉપયોગ
અથવા જ્યારે લૂપ અને મેમરીનો ભાગ તમે આપવામાં આવી છે તેના સીમા ભૂતકાળ જાઓ.
બીજી રીતે મૂકો, જલદી તમે મેમરીને ફાળવવા,
તમે ઓપરેટિંગ સિસ્ટમ કહી શકાતું નથી, ઓહ, જે રીતે દ્વારા, મેમરી એક ભાગ મોટી આ કેવી રીતે થયું?
તે તમે સંપૂર્ણ કરવા માટે યાદ રાખો કે જો તમે કિંમત જરૂર છે.
>> તેથી આપણે કેવી રીતે હું આ મેમરીનો ઉપયોગ પ્રક્રિયા કરો.
28 લીટી અને 29 માં હું આ શા માટે કરી રહ્યો છું?
જસ્ટ કુલ સેનીટી ચેક.
જસ્ટ કિસ્સામાં કંઈક ખોટું થયું હતું, હું મેમરી કેટલાક ઉન્મત્ત રકમ માટે પૂછો
અથવા હું ઘણા વસ્તુઓ કમ્પ્યુટર પર ચાલી રહ્યું છે કે માત્ર પૂરતી મેમરી નથી,
આવું જ કંઇક, હું ઓછામાં ઓછા કરવા માટે નલ ચકાસવા માટે કરવા માંગો છો.
વાસ્તવમાં, મોટા ભાગના કમ્પ્યૂટરો તમે ભ્રમ આપશે કે દરેક કાર્યક્રમ
તમારી RAM ના સમગ્ર ઉપયોગ કરી શકો છો,
પણ તેથી, કેટલાક ઉન્મત્ત લાંબા કદાચ શબ્દમાળા માં વપરાશકર્તા પ્રકારો જો કે, તેઓ એક ખરાબ વ્યક્તિ છો
અને તેઓ વાસ્તવમાં તેને તમારા કાર્યક્રમ અથવા ચૂંથવું ભાંગી પ્રયાસ કરી રહ્યા છો,
તમે ઓછામાં ઓછું malloc પરત કિંમત તપાસ કરવા માંગો છો અને શું તે નલ સમકક્ષ હોય છે.
અને જો તે, ચાલો ફક્ત હમણાં બહાર નીકળવા કારણ કે મને ખબર નથી કે તે શું છે તે કિસ્સામાં શું કરવું.
હું શબ્દમાળા કેવી રીતે નકલ કરશો? ત્યાં થોડા આવું રીતે છે.
ત્યાં છે str સી કાર્યો નકલ કરો, પરંતુ તે સુપર સરળ અમારા માટે આ રસ્તો જૂના જમાનાનું શું કરવું.
>> પ્રથમ દો મને બહાર આકૃતિ ઓ લંબાઈ શું છે.
હું લૂપ આ જોખમમાં મૂકી શકે છે પરંતુ તેના બદલે હું હમણાં જ તે મૂકવામાં બહાર સ્પષ્ટતા માટે અહીં.
તેથી n એ હવે મૂળ શબ્દમાળા લંબાઈ, જે દેખીતી રીતે છે 5 સંગ્રહ કરે છે.
પછી મારા માટે લુપમાં હું 0 થી વારો છું n સુધી,
અને હું દરેક ઇટરેશન પર મૂકી રહ્યો છું ઓ [i] ટી ની અંદર [i].
તેથી કે હું શું મારા 2 પહેલાં શબ્દમાળાઓ નિર્દેશ કરતી આંગળીઓ સાથે ગર્ભિત.
તરીકે લૂપ માટે આ જેવા iterates, હું અહીં માં ક નકલ કરી જાઉં છું,
અહીં, અહીં પ્રવેશ l માં ઈ કારણ કે આ ઓ છે, આ ટી છે.
અને પછી છેલ્લે, 35 લીટી માં હું આ શા માટે કરી રહ્યો છું?
હું ખાતરી કરવા માટે કે હું શબ્દમાળા ટી અંત છું કરવાની જરૂર છે.
અને હું આ રીતે કર્યું માટે સુપર સ્પષ્ટ છે.
પરંતુ પ્રસ્તાવ, કોઈ જો તમે કરી શકે, આમ એક અલગ રીત.
હું ખરેખર 35 લીટી કરવાની જરૂર નથી. ત્યાં બીજી આવું રીત છે.
યાહ. >> [અશ્રાવ્ય વિદ્યાર્થી પ્રતિભાવ] >> કહો તે મોટેથી.
[વિદ્યાર્થી] ઓછી કરતાં અથવા સમાન. ચોક્કસ. >>
અમે હમણાં જ કરતાં ઓછા અથવા n એ, કે જે સામાન્ય રીતે ખરાબ રહી છે સમકક્ષ કહી શકે છે
લગભગ હંમેશા જ્યારે અમે આ વસ્તુ અમે ગણતરી કરી રહ્યા છીએ એક સમાન સુધી જાઓ કારણ કે
અમે પગલાં 1 ખૂબ દૂર જાય છે.
પરંતુ યાદ રાખો, કેટલા બાઇટ્સ અમે ફાળવી હતી?
અમે strlen s ની ફાળવણી, 6 ની કુલ 5 તેથી + 1.
તેથી આ કિસ્સામાં અમે આ કંઈક કરી શકે
જેથી અમે પણ માત્ર હેલ્લો એ \ 0 ખૂબ ઓવરને અંતે નકલ કરી રહ્યા છો.
વૈકલ્પિક રીતે, અમે str નકલ કહેવાય વિધેય વાપરી, strcpy શકે છે,
પરંતુ લગભગ તરીકે ખૂબ મજા નહિં હોય.
પરંતુ તે બધા તેને હૂડ નીચે કરે છે.
પછી છેલ્લે, અમે પહેલાની જેમ જ વસ્તુ નથી.
હું ટી ઉઠાવે છે અને પછી હું દાવો છે કે મૂળ આ અને નકલ કે જેમ દેખાય જેવો દેખાય છે.
તેથી આપણે આ પ્રયાસ કરો. મને અહીં જાઓ. Copy2 બનાવો. અમે ઝૂમ અને copy2 સ્કોર પડશે.
હું લોઅરકેસ માં હેલો લખો માંગવાનો, અને ખરેખર હું મૂળ તરીકે હેલ્લો લોઅરકેસ વિચાર
પરંતુ નકલ માટે હેલો મૂડી.
પરંતુ હું હજી સુધી પૂર્ણ છું. હું 1 છેલ્લા વસ્તુ અહીં કરવાની જરૂર છે.
46 અને 47 સ્પષ્ટ મેમરી મુક્ત છે, પરંતુ ખરેખર શું અર્થ છે?
હું શું, કરી રહ્યો છું તેમ તમે વિચારો દ્વારા, 46 લીટી અને 47 લાઇન ફોન?
અસર શું છે કે નથી? યાહ.
[અશ્રાવ્ય વિદ્યાર્થી પ્રતિભાવ] ચોક્કસ. >>
>> તમે માત્ર ઓપરેટિંગ સિસ્ટમ કહેવાની છે હેય, આ મેમરી માટે આભાર.
તમે હવે તેને બીજા કોઈને માટે વાપરી શકો છો.
અને અહીં કચરો કિંમતો સંપૂર્ણ ઉદાહરણ છે.
હું ફક્ત આ મેમરી ઉપયોગ કર્યો છે ડાઉન 2 સ્થળોએ શબ્દ લખી હેલ્લો,
અહીં, અહીં, અહીં અહીં, અને.
તેથી આ 0-h ઈ-l-l-o-\ છે.
પરંતુ પછી હું 46 લીટી અને 47 લાઇન કહી, અને તમને ખબર શું ચિત્ર દ્રષ્ટિએ ત્યાં શું થાય છે?
ખરેખર રાહ, આ ચિત્ર જૂના એક છે.
એકવાર અમે નકલ કરવા માટે, આ વ્યક્તિ ખરેખર અહીં પોઇન્ટ છે,
તેથી આપણે જે નંબરો દૂર કરો અને માત્ર અમૂર્ત દૂર અમારા તીરો તરીકે ફરીથી.
શું આ ચિત્ર બને છે જ્યારે હું મફત કૉલ?
[અશ્રાવ્ય વિદ્યાર્થી પ્રતિભાવ] પણ નથી. >>
જો હું અને ઓ ટી પર મફત ફોન કરો - એક યુક્તિ પ્રશ્ન પ્રકારની - આ ચિત્ર બધું બદલી શકતું નથી
ઓ ફોન અને ફોન કારણ કે ટી ​​માત્ર ઓપરેટિંગ સિસ્ટમ કહે છે,
હેય, તો તમે આ મેમરી ફરીથી ઉપયોગ કરી શકે છે, પરંતુ તે આ null માટે બદલી શકતું નથી
અથવા અમુક વિશિષ્ટ અક્ષર, તો તે આ બદલી શકતું નથી,
તે ક અથવા ઈ અથવા અથવા અન્ય કંઈપણ ક્યાં તો સ્થાને l અથવા ઓ l ફેરફાર થતો નથી.
ચિત્ર દ્રષ્ટિએ, જલદી તમે મફત, કંઇ ફેરફાર કરો.
અને તેમાં કચરો કિંમતો મૂળ આવેલું છે કારણ કે જો હું પાછળથી આ કાર્યક્રમ માં
GetString અથવા malloc અથવા કંઈક વધુ મેમરી માટે ઓપરેટિંગ સિસ્ટમ પૂછો કે
અને ઓપરેટિંગ સિસ્ટમ કહે છે, ખાતરી કરો કે, હું મેમરી 12 બાઇટ્સ માત્ર મુક્ત હોય,
આ વાપરવા માટે, તમે શું સોંપવામાં આવશે જવું છે?
તમે મેમરી એક ભાગ છે કે અમે સામાન્ય રીતે દોરે કરશે સોંપી શકાય જઈ રહ્યાં છો
પ્રશ્ન ચિહ્ન સાથે છે, પરંતુ તે પ્રશ્ન ચિહ્ન શું છે?
તેઓ-h ઈ-l-l-o,-h ઈ-l-l-o પ્રયત્ન થાય છે.
આ અમારી નવી કચરો કિંમતો જલદી તમે કે મેમરી મુક્ત છે.
>> ત્યાં એક વાસ્તવિક વિશ્વમાં સૂચિતાર્થ અહીં પણ છે.
આ રેમ સાથે શું થાય છે, પરંતુ તમારા કમ્પ્યુટર્સ
વાસ્તવમાં ડિસ્ક સાથે જ વાત કરે છે.
અમે આ અંગે ખાસ કરીને ભવિષ્યના સમસ્યા સમૂહ છે કે જે વિદેશી પર ધ્યાન કેન્દ્રિત કરે છે સાથે વાત કરશે.
પરંતુ શું ખરેખર થાય છે જો તમે તમારા ડેસ્કટોપ પર કેટલાક સંવેદનશીલ નાણાકીય ફાઈલ છે
અથવા અમુક ઉપરછલ્લા JPEG તમે અને તે તમારી ટ્રૅશમાં માં ખેંચો
શું થાય છે જ્યારે તમે તે ટ્રૅશ કે રીસાઇકલ બિન માં ખેંચો?
તમે જાણતા હતા કે હું શેના વિશે વાત કરી હતી. [અટ્ટહાસ્ય]
શું થાય છે જ્યારે તમે તમારા રીસાઇકલ બિન અથવા કચરો કરી શકો છો કે જે પ્રવેશ પુરાવા ખેંચી કર્યું છે?
[અશ્રાવ્ય વિદ્યાર્થી જવાબ]
વેલ, તેથી સાવચેત. શું થાય છે જ્યારે તમે આ કરી?
ટૂંકા જવાબ કશું છે અધિકાર?
સ્કેચી અથવા સંવેદનશીલ ફાઈલ હજુ હમણાં જ છે ત્યાં ક્યાંક બેસીને તમારી હાર્ડ ડ્રાઈવ પર.
અમને મોટા ભાગના ઓછામાં ઓછા કઠિન કે તમે તમારા કચરો ખાલી કરવાની જરૂર શીખી છે
અથવા તમારા રીસાઇકલ બિન ખરેખર ફાઈલો કાઢી છે.
અને ખરેખર, જ્યારે તમે યોગ્ય ક્લિક કરો અથવા તમારું ટ્રૅશ પર ક્લિક કરી શકો છો નિયંત્રિત
અથવા ફાઈલ, કચરાપેટી અથવા જે પસંદ કરો
અને તમે ખરેખર ખાલી ટ્રૅશમાં કરી શકો છો અથવા રીસાઇકલ બિન, શું ખરેખર આ ચિત્ર પછી શું થાય છે?
વધુ કંઈ નથી. તેથી કશું ખરેખર ડિસ્ક પર થાય છે.
>> અને જો આપણે માત્ર કામચલાઉ વિષયાંતર કરવું અને લખી - I'll ફક્ત આ પાછળ વાપરે છે.
તેથી હવે વાર્તા રેમ, કે જે જ્યાં કાર્યક્રમો અસ્તિત્વ ધરાવે ફેરફાર છે
જ્યારે તમે તેમને ચલાવી રહ્યા છો ડિસ્ક, જે છે, જ્યાં તેઓ લાંબા ગાળાના સંગ્રહાય છે
પણ જ્યારે શક્તિ બહાર હવે માટે, આ બોલ - અને આપણે ભવિષ્યમાં ફરી આ આવવું પડશે -
ચાલો ફક્ત ડોળ કરવો કે આ તમારા કમ્પ્યુટરની હાર્ડ ડ્રાઈવ અંદર પ્રતિનિધિત્વ
કારણ કે આ દિવસે પાછા તેઓ પરિપત્ર ડિસ્ક પ્રયત્ન ફ્લોપી ડિસ્ક જેવી જ ઉપયોગ થાય છે.
તેથી જો તમે અમુક સંવેદનશીલ એક્સેલ ફાઈલ હોય છે, તે મેમરી આ ભાગ લઇ શકે છે
તમારા કમ્પ્યુટર ડિસ્ક પર, અને હું માત્ર એક જ મનસ્વી 1 સે અને 0s ચિત્રકામ છું.
જ્યારે તમે તમારી ટ્રૅશમાં કે ફાઇલ ખેંચો અથવા બિન રિસાયકલ કરી શકો છો,
શાબ્દિક કંઇ બને છે કારણ કે એપલ અને માઈક્રોસોફ્ટ માત્ર નિર્ણય કર્યો છે
ટ્રૅશમાંથી કરી શકો છો અને રીસાઇકલ બિન ખરેખર માત્ર એક કામચલાઉ પ્લેસહોલ્ડર છે.
કદાચ છેવટે એ OS તમારા માટે તે ખાલી કરશે, પરંતુ સામાન્ય રીતે, તે કંઇ કરતું નથી,
ઓછામાં ઓછું ત્યાં સુધી તમે ખરેખર જગ્યા પર છો.
>> જોકે, જ્યારે તમે ખાલી કચરો અથવા ખાલી રીસાઇકલ બિન જાઓ
એ જ રીતે, કશું આ ચિત્ર માટે થાય છે.
બધા આવું થાય તમારા કમ્પ્યુટર પર અન્ય જગ્યાઓને છે, ત્યાં ટેબલ કેટલાક પ્રકાર છે.
તે થોડો ખાણિયાઓને છેતરે છે શીટ કે કહે છે કે, ચાલો, કહો resume.doc જેવા પ્રકારની છે,
તેથી માઈક્રોસોફ્ટ વર્ડ તમારી હાર્ડ ડિસ્ક પર 123 સ્થાન પર લાઇવ ઉપયોગ ફાઈલ તમારા છોડો,
માં નથી અને મેમરી નથી RAM, પરંતુ તમારી હાર્ડ ડિસ્ક પર,
અને તમારા 456 અંતે ઉપરછલ્લા JPEG જીવન છે, અને તમારા એક્સેલ ફાઈલ 789 પર અથવા ત્યાં રહે છે.
જ્યારે તમે વાસ્તવમાં કચરો અથવા રીસાઇકલ બિન ખાલી દ્વારા ફાઈલો કાઢી નાંખો,
આ ચિત્ર ફેરફાર થતો નથી. આ 0s અને તમારી હાર્ડ ડ્રાઈવ પર 1 સે ગમે ત્યાં થતી નથી.
પરંતુ આ ટેબલ, પ્રકારની આ થોડું ડેટાબેઝ, ફેરફાર કરે છે.
જ્યારે તમે તમારા રેઝ્યૂમે કાઢી, એ છતાં પણ આ ફાઈલને અમુક અર્થમાં કાઢી નાખવામાં આવે છે,
પરંતુ તમામ કોમ્પ્યુટર જ્યાં કે વસ્તુ તમારી હાર્ડ ડ્રાઈવ પર જીવે છે ભૂલી ગયા નથી.
આ 0s અને 1 સે કે જે તમારી ફરીથી શરૂ કરો અથવા આ અન્ય કોઈપણ ફાઈલો કંપોઝ હજુ અકબંધ.
>> તેથી જો તમે આ આકસ્મિક હતી, ત્યાં હજી પણ સંભાવના બિન શૂન્ય છે
જો કે તમે તમારી માહિતી પુનઃપ્રાપ્ત નોર્ટન ઉપયોગિતાઓને અથવા અમુક વ્યવસાયિક સોફ્ટવેર વાપરી રહ્યા હોય
જીવન માં જેના હેતુ માટે 0s અને 1 સે કે પ્રકારના અનાથ કરવામાં આવી શોધે છે,
અહીં ભૂલી ગયા પરંતુ અહીં છોડી, કે જેથી તમે તમારી માહિતી પાછા મેળવી શકો છો.
અથવા પોલીસ અથવા એફબીઆઇ સાથે ફોરેન્સિક તપાસકર્તાઓને ખરેખર હાર્ડ ડ્રાઈવ લેશે
અને ખરેખર 0s અને 1 સે કે JPEGs જેવા દેખાવ, એક્સેલ ફાઇલો જેવા દેખાવ પેટર્ન જોવા માટે,
અને તેમને કે માર્ગ તો પણ કોમ્પ્યુટર તેમને ભૂલી ગઇ છે ત્યાં પુનઃપ્રાપ્ત.
જેથી માત્ર ખરેખર રસ્તો માહિતી કાઢી, કારણ કે અમે ભવિષ્યમાં ચર્ચા કરીશું,
માટે સખત મહેનત અથવા ફાઈલ અથવા હાર્ડ ડિસ્ક નાશ છે -
તમે ખરેખર 0s અને 1 સે છૂટકારો ન મળી શકે
કારણ કે અન્યથા તમે gigabyte હાર્ડ ડ્રાઈવ સાથે શરૂ છો
અને તમે મેગાબાઇટ હાર્ડ ડ્રાઈવ સાથે અંત જો તમે સતત કાઢવા માટે કરવામાં આવી હતી હો,
શાબ્દિક 0s, અને 1 સે.
તેથી જો તમે ખરેખર તમારા ટ્રેક આવરી ઇચ્છતા થશે
અને મૂળભૂત સમસ્યા એ છે કે હજુ 0s અને ડિસ્ક પર 1 સે?
હું gesticulating કે તમે ભૌતિક ઉપકરણ તૂટી શકે કોઈને જુઓ. કે કામ કરશે.
[અટ્ટહાસ્ય] પરંતુ જો કે એક ખર્ચાળ ઉકેલ પ્રકારની છે, શું વધુ વાજબી હશે?
યાહ. >> [વિદ્યાર્થી] તેઓને ઉપરલખો. >> તેમને શું ઉપરલખો? >> [વિદ્યાર્થી] અન્ય માહિતી.
અન્ય માહિતી. તમે હમણાં જ 0s અથવા 1 સે અથવા બધા 0s, બધા 1 સે સાથે તમારી ડિસ્ક પર ફરીથી લખી શકો છો.
>> અને તે ખરેખર છે સોફ્ટવેર કેટલાક શું કરે છે.
તમે સોફ્ટવેર ખરીદી અથવા પણ કરી શકો છો મફત સોફ્ટવેર મેળવવા,
અને પણ મેક ઓએસ માટે આ દિવસ બાંધવામાં, ઓછી Windows માં, જેથી
માટે સુરક્ષિત રીતે ભૂંસી ક્ષમતા છે.
ખરેખર, જો તમે આજે બધા રન ઘરમાં માંગો છો જો તમે મેક હોય છે અને આ કરવા માટે,
જો તમને મળેલું તમારા ટ્રૅશમાં કેટલાક સામગ્રી, તો તમે સુરક્ષિત કચરાપેટી કરી શકો છો કરી શકો છો,
જે બરાબર છે કે કરે છે.
માત્ર ભૂંસી અંહિની ફાઈલો બદલે, તે 0s અને 1 સે અહીં ભૂંસી નથી,
તેના બદલે, તે માત્ર તેમને તમામ બદલે, ઉદાહરણ માટે 0s અને ડોટ, કોઈ, કોઈ છે.
તેથી તમારી ભાવિ psets ઓફ ખરેખર ઈરાદાપૂર્વક માહિતી પુનઃપ્રાપ્ત થશે -
ફોટોગ્રાફ્સ છે કે અમે લોકો, સ્થાનો, કેમ્પસ પર અને વસ્તુઓ ભર્યું છે
જેના માટે અમે ડિજીટલ કેમેરા મેમરી કાર્ડ એક ફોરેન્સિક ઇમેજ બનાવવા પડશે,
જે ચોક્કસ જ વિચાર છે - અને તમે ખરેખર શોધવા પડકાર શકાય પડશે
આ દાખલાની તમારી હાર્ડ ડ્રાઈવ પર JPEGs પ્રતિનિધિત્વ કરે છે,
કે ભૂતપૂર્વ વિદ્યાર્થી ઇમેઇલ જેમના જેમ જ હું થોડા અઠવાડિયા પહેલા વાંચી હતી
તેમની બહેન ફોટોગ્રાફ્સ પુનઃપ્રાપ્ત.
અમે વિરામ 5-મિનિટ શા માટે ન લો અહીં, અને અમે મેમરી પર વધુ સાથે નવી ટુકડી બનાવવી પડશે.
અહીં જ્યાં વસ્તુઓ થોડો મન-બેન્ડિંગ વિચાર છે, પરંતુ આ એક ખૂબ શક્તિશાળી પગલું છે
આ તમામ વધુ સમજવા તરફ.
અહીં pointers.c કહેવાય કાર્યક્રમ છે.
તે આજે નમૂનો કોડ વચ્ચે છે.
નોંધ કરો કે પ્રથમ થોડા રેખાઓ, 19 22 દ્વારા તમામ અમે કરી રહ્યા છીએ GetString કંઈક છે
અને એક સરનામું પરત, તે s માં સંગ્રહિત.
3 પણ pset માટે અત્યારથી જો તમે કરવા માંગો છો પરંતુ 4 pset અને
તમે તમારી જાતને બોલ આ તાલીમ વ્હીલ્સ લેવા જ્યાં શરૂ કરી શકો છો,
ત્યાં કોઈ ડોળ કરવો કે શબ્દમાળાઓ હવે અસ્તિત્વમાં કારણ છે.
તે ચોક્કસપણે છે માત્ર કોલસો બનાવો * કહેતા શરૂ કરવું ઠીક છે.
>> એક અલગ તરીકે, ઓનલાઇન સંદર્ભો અને પુસ્તકો તમે ઘણી વખત સ્ટાર ચલ માટે આગામી જોઈ શકો છો.
તમે પણ તે બંને બાજુઓ આસપાસ જગ્યાઓ જોઇ શકશે.
તે બધા વિધેયાત્મક રીતે યોગ્ય છે.
હવે માટે, જોકે, અમે આ અભિગમ પર પ્રમાણિત સુપર સ્પષ્ટ બનાવવા પડશે
કે ઘરનાં પરચૂરણ કામો * અક્ષર નિર્દેશક કહેતા જેવું છે.
કે માહિતી પ્રકાર છે.
અને પછી ચલની નામ ઓ આ કિસ્સામાં છે.
તેથી અમે શબ્દમાળા મેળવેલ કરી છે અને અમે તેને ઓ કહેવાય કર્યું છે.
અને પછી નીચે અહીં નોંધ્યું છે કે હું ખરેખર છેતરપિંડી કરવામાં થોડો કરી રહ્યો છું.
આ નિર્દેશક અંકગણિત, જે સુપર સરળ જેવું છે કહેવામાં આવે છે.
તે માત્ર અર્થ એ થાય ઉમેરો અને પોઇંટરો નંબરો સબ્ટ્રેક્ટ.
પરંતુ આ ખરેખર કામ કરે છે.
આ કાર્યક્રમ દેખીતી રીતે જ s શબ્દમાળા અંતિમ પરિણામ કે આવા લાઇન દીઠ 1 અક્ષર છાપે છે -
તેથી અમે જ્યાં આ રહ્યું છે બગાડી, પોઇંટરો કરી શકે છે, પોઇંટરો ચલાવો, દો મને સાઇન ઝૂમ
હવે મને હેલો અને પ્રકાર દાખલ કંઈક લખો દો
અને તે લીટી દીઠ 1 અક્ષર છાપે છે.
ઉપર પહેલા બીજા સુધી, અમે ચોરસ કૌંસ નોટેશનમાં સાથે આ કરી શકે છે.
અમે લૂપ માટે હોય છે અને અમે s ની printf કરવા માગો છો [i] અને અમે તે ફરીથી અને ફરીથી અને ફરીથી કરવા માંગો છો
દરેક લીટીના અંતે બેકસ્લેશ n સાથે.
પરંતુ આ કાર્યક્રમ અલગ છે. આ કાર્યક્રમ વાપરી છે, શાબ્દિક અર્થ, અંકગણિત.
તેથી શું અહીં ચાલી રહ્યું છે?
સૌ પ્રથમ, પહેલાં આ લૂપ પણ ચલાવે છે, જે, માત્ર સ્પષ્ટ છે, ઓ ખરેખર છે?
એસ છે? >> [વિદ્યાર્થી] એક સરનામું. >> એક સરનામું.
>> અને તેનો સરનામા હેલ્લો કિસ્સામાં, છે, કે શબ્દ પ્રથમ અક્ષર છે, કે જે ક છે.
તેથી ઓ આ ચોક્કસ ઉદાહરણ છે, ક ની સરનામું.
તેથી તે શું ઓ કરવું એનો અર્થ એ નથી હું +?
વેલ, હું આ 0 અંતે લૂપ માટે શરૂ થાય છે. અમે તે ઘણી વખત કર્યું છે.
હું શબ્દમાળા લંબાઈ સુધી જાય છે, દેખીતી રીતે જઈ રહ્યું છે.
તેથી આ લૂપ પ્રથમ પુનરાવૃત્તિ પર, હું ચોક્કસપણે 0 છે.
તેથી આ સમીકરણ કહી રહ્યાં છે ઓ આઇ + + - બદલે, ઓ +0- કે દેખીતી રીતે છે ફક્ત ઓ.
તેથી * શું અહીં છે ઓ?
હવે અમે એક થોડા અલગ રીતે તારો ઉપયોગ કરી રહ્યાં છો.
મને આગળ વધો અને ટી છૂટકારો મેળવવા કારણ કે અમે ટી અને ઓ નકલો વિશે વાત કરી લીધું.
હવે અમે માત્ર એક ઓ સંડોવતા કથા કહેશે કરવા માંગો છો.
અને તેથી આ ક્ષણે, પ્રકાર શબ્દમાળા કર્યા બાદ, અમારા વિશ્વ લાગે તદ્દન જેમ તે પહેલા કર્યું
ફક્ત ઓ ક ની સરનામા સ્ટોર અને વધુ સામાન્ય શબ્દમાળા નિર્દેશ કરતી હેલ્લો સાથે.
જો હું હવે * જેવી લીટી કરવું (ઓ + + આઇ) ની આ આઉટ કરવાનો પ્રયાસ કરો દો.
તેથી * (ઓ આઇ +). મને આ સરળ છે કારણ કે આ 0 છે, તેથી આ * (+0 ઓ) છે.
વેલ, એક મિનિટ રાહ જુઓ. વધુ સરળ બનાવે છે. આ * (ઓ) છે.
ઠીક છે, હવે કૌંસ મૂર્ખ પ્રકારની છે, તેથી હવે માત્ર કરવા * ઓ દો.
તેથી આ લૂપ છે, કે જે વાક્ય કે પ્રકાશિત છે, 26 ના પ્રથમ પુનરાવૃત્તિ માં,
ખૂબ ખૂબ આ છાપવા માટે સમકક્ષ હોય છે.
* ઓ ની માહિતી પ્રકાર શું છે?
આ સંદર્ભમાં, કારણ કે, તારા માટે જ s પોતે આગામી બને છે,
પરંતુ વધુ ખાસ રીતે, કારણ કે અમે લાંબા સમય સુધી ઓ જાહેર કરવામાં આવે છે,
અમે ચલ કંઈ પણ બનાવી રહ્યાં છો, ત્યાં 26 લીટી માં ઘરનાં પરચૂરણ કામો * કોઇ ઉલ્લેખ છે,
ત્યાં મુખ્ય શબ્દ શબ્દમાળા કોઈ ઉલ્લેખ છે, અમે માત્ર એક ઓ કહેવાય ચલ વાપરી રહ્યા હોય,
તે તારણ હવે તારો થોડા અલગ છે, અને દેખીતી રીતે એ તો સ્પષ્ટ છે કે, જેનો અર્થ ચિંતામાં મૂકી દે.
* અહીં ઓ અર્થ છે ઓ માં સરનામા અને પ્રિન્ટ પર જાઓ ગમે ત્યાં હોય છે.
* ઓ, તેથી ઓ અહીં છે - આનાથી સૉર્ટ વસ્તુઓ અને સીડી જેવા, તીર અનુસરો - અહીં.
તેથી આ * ઓ છે.
>> તેથી 26 લીટી કે લૂપ પ્રથમ પુનરાવૃત્તિ શું મુદ્રિત નહીં?
હું% C, કે જે અક્ષર માટે પ્લેસહોલ્ડર છે છાપો,
પછી નવી લાઇન માટે \ n. * (ઓ આઇ +) છે જ્યાં i 0 માત્ર છે અને આ.
તેથી શું કામની પાળી હું% C માટે નથી માં મૂકી? એચ
તમે કદાચ જ્યાં આ રહ્યું છે જોઈ શકે છે - આ લૂપની આગળના ઇટરેશન -
આગામી પુનરાવૃત્તિ હું 1 ચોક્કસપણે છે, જેથી આ અર્થ +1 ને,
અને પછી હવે હું કૌંસ કરવાની જરૂર નથી કારણ કે હવે તારો કહેવું જોઇએ છે
મેમરી સરનામા +1 s પર જાઓ.
ઓ શું છે? ચાલો સમય પાછા રોલ અને કહેવું આ તીર હવે ખરેખર અમને કોઇ તરફેણ કરી છે.
વધુ ખાસ દો કહે છે કે આ સંખ્યા 123 સ્ટોર કરે છે
કારણ કે આ શબ્દમાળાને શરૂઆત હેલ્લો, આ 123 સરનામા છે, આ 124 છે, અને તેથી આગળ.
તેથી બીજા પુનરાવૃત્તિ જ્યારે હું +1 ને કહી રહ્યો છું પર, કે +1 ને 123 કહેતા જેવું છે,
અન્યથા 124 તરીકે ઓળખાય છે, જેથી શું કામની પાળી બીજા પુનરાવૃત્તિ પર મુદ્રિત નહીં?
મેમરી 124 સરનામાં પર ઇ.
પછી ફરીથી + 125, 126, 127, અને આ લૂપ thankfully સ્ટોપ્સ પહેલાં આપણે અહીં
કારણ કે હું strlen ઉપયોગ કરું છું, તે સુનિશ્ચિત કરવા માટે હું ખૂબ ઊંચા ગણતરી કરવામાં આવી નથી કરો.
જેથી પણ તે છે.
ફરીથી, આ છે જેમ છતાં અમે એક સપ્તાહ અગાઉ કર્યું હતું.
મને તે વાક્ય પર નીચે લખી હોવા છતાં પણ અમે બન્ને કરવા નહિં માંગો.
આ સમાન હવે આ.
>> તેથી ભલે ઓ એક સ્ટ્રિંગ છે, કારણ કે અમે અઠવાડિયા માટે કર્યું છે કે તે ફોન, ઓ ખરેખર એક કોલસો બનાવો * છે.
તેથી જો આપણે સુપર ગુદા પ્રયત્ન કરવા માંગો છો, તે ખરેખર યોગ્ય કરવા માટે ચોક્કસ અક્ષર લખવા
આ ઇથ આ આંકડાકીય સરનામાં અને આ તારો ઓપરેટર મદદથી સ્થાન પર,
પરંતુ પ્રમાણિકપણે, આ માત્ર ખૂબ જ સ્વચ્છ છે. તેથી આ ખરાબ નથી.
કોઈ કારણ 27 વાક્ય અહીં કરવાથી રોકવા માટે, પરંતુ 26 વિધેયાત્મક છે જ,
અને તે વિધેયાત્મક રીતે બરાબર કારણો છે કે અમે આમ દૂર કરવામાં ચર્ચા કર્યા છે માટે તે જ છે.
અને છેલ્લે, 29 માત્ર સારી પ્રથા છે.
S ની મફત કૉલ અર્થ એ છે કે હવે તમે પાછા મેમરી કે GetString તમે આપેલો આપીને કરી રહ્યાં છો
કારણ કે ફરીથી, સોમવાર તરીકે હું તમારો ઉલ્લેખ કર્યો છે, અઠવાડિયા માટે GetString
તમારી કોડ એક ભૂલ રજૂઆત કરવામાં આવી છે.
અઠવાડિયા માટે તમારો કોડ મેમરી લીક્સ ધરાવે છે
તમે કરી છે જેમાં કરવામાં મેમરી માટે GetString પૂછવા પરંતુ તમે તેને ક્યારેય કર્યો છે પાછા આપ્યા.
અને તે ઇરાદાપૂર્વક અમને દ્વારા કરવામાં આવી હતી pedagogically પસંદ
કારણ કે તે ફક્ત ખૂબ પર શરૂઆતમાં વિશે વિચારો.
પરંતુ હવે અમે વધુ સમપ્રમાણતા જરૂર છે.
જો તમે મેમરી માટે કમ્પ્યૂટર પૂછો, જેમ GetString કેસ છે,
તરીકે કેસ દેખીતી રીતે છે malloc માટે,
તમે હવે pset 4 આગળ પણ મફત આવા મેમરી કરવું જ જોઈએ.
આ પૂર્ણાંક n એ કહેતા અલગ છે નોટિસ.
તમે આ મુક્ત કરવાની જરૂર નથી કારણ કે તમે GetString નથી કહી નહોતી નથી
અને તમે malloc નથી કહી ન હતી.
>> અને જો તમે GetInt તરીકે ઓળખાતા અમે આખરે જોશો,
GetInt તમારા માટે મેમરી નથી ફાળવી કારણ કે તમે ખરેખર આસપાસ પૂર્ણાંકો પસાર કરી શકે નથી
અને ફ્લોટ્સ અને અક્ષરો માત્ર રસ્તો અમે અઠવાડિયા સુધી આમ કર્યું છે.
સ્ટ્રીંગ્સ, જોકે, ખાસ છે કારણ કે ખરેખર તેઓ ઘણા અક્ષરો એકબીજા સાથે જોડાણ છો.
જેથી તેઓ માત્ર અક્ષરો અને ફ્લોટ્સ અને ints અલગ છો અને ગમે છે.
પરંતુ અમે પાછા તે પહેલાં લાંબા થવું પડશે.
પોઇન્ટર આ શરૂઆત પર કોઈપણ પછી પ્રશ્ન છે? યાહ.
[અશ્રાવ્ય વિદ્યાર્થી પ્રશ્ન]
આહ, ખૂબ જ સારો પ્રશ્ન.
એક અમુક વસ્તુઓ સી ખરેખર તમારા માટે કરે છે, જે અનુકૂળ છે,
છે તે તમારા માટે બહાર આધાર કદ શું માહિતી પ્રકાર છે
અને પછી તમે ગુણાકાર તે પ્રકારના કરે છે.
આ અક્ષરો કિસ્સામાં અપ્રસ્તુત છે કારણ કે લગભગ હંમેશા ઘરનાં પરચૂરણ કામો 1 બાઇટ છે,
તેથી આ કાર્ય કરે છે.
પરંતુ ચર્ચા ભલા માટે, જો તમે વાસ્તવમાં પૂર્ણાંકો છાપવા હતા
અને તમે અમુક કિંમત ઓ કે પૂર્ણાંક નિર્દેશ કરતી હતી છાપવાનો પ્રયાસ કરતી હતી,
તમે જેમ જ 4 +, નથી જરૂર * હું હમણાં જ કારણ કે પૂર્ણાંક 4 બાઇટ્સ આવે છે.
પોઇન્ટર અંકગણિત અર્થ એ થાય કે સી અને કમ્પાઇલર તમે બધા ગણિત નથી.
બધા તમે કાળજી પાસે માનવ અર્થમાં જેવું માં ગણતરી છે. યાહ.
[વિદ્યાર્થી] જો તમે અંદર લૂપ માટે શબ્દમાળા જાહેર, તો તમે તેને પાછળથી મુક્ત છે?
પ્રશ્ન સારું.
>> જો તમે એક લૂપ માટે શબ્દમાળા અંદર જાહેર તમે પછીથી તેને મુક્ત કરવાની જરૂર છે?
તમે માત્ર મુક્ત મેમરી માટે જરૂર છે કે જે તમને GetString સાથે અથવા malloc સાથે ફાળવો.
તેથી જો તમે હમણાં જ કહેવું કંઈક ગમે - દો મને સર્પાકાર કૌંસ હવે મૂકવા કે જેથી તમામ કોડ સંબંધિત હોય છે.
જો તમે buggily જોકે, આ કંઈક હતી, ચાર * ટી ઓ =,
તમે મફત ટન કરવાની જરૂર નથી કારણ કે ટી ​​malloc અથવા GetString કોઇ ઉલ્લેખ સમાવેશ કરવામાં આવ્યો ન નથી.
તેનાથી વિપરીત જો તમે આ કર્યું, GetString, પછી હા, તમે મફત ટી માટે જરૂર છે.
અને હકીકતમાં, તમારા જ છે કે શું આ તક લૂપ અંદર હવે અવકાશ જ મુદ્દા માટે છે
કે અમે ભૂતકાળમાં ચર્ચા કરી છે.
અન્યથા તમે મેમરી allocating શકાય છો, મેમરી allocating, મેમરી allocating,
અને કાર્યક્રમ ઓવરને અંતે કારણ કે તમે તે લૂપની બહાર છો,
ટી અસ્તિત્વમાં નથી, પરંતુ તમે જે ઓપરેટિંગ સિસ્ટમ કહેવામાં ક્યારેય
કે જે તમને મેમરી હવે જરૂર ન હતી.
અને લાંબા પહેલાં, 4 pset અથવા 5 માટે અમે તમને એક Valgrind કહેવાય કાર્યક્રમ સજ્જ પડશે,
જે સ્પિરિટમાં GDB જેવું જ છે કે જેમાં તે કંઈક અંશે એક arcane ઈન્ટરફેસના મળ્યું છે,
પરંતુ જીવનમાં તેની હેતુ માટે તમને મદદ કરે છે.
અને Valgrind એ કાર્યક્રમ છે કે જે ભવિષ્યમાં તમારા કાર્યક્રમો શોધ છે
મેમરી લીક્સ શોધી, શું GetString અથવા malloc છે,
જેને આપણે બધા વધારે ઉપયોગ અમે CS50 લાઇબ્રેરી તરીકે ખૂબ ઉપયોગ કરવાનું બંધ શરૂ કરી શકશો.
અમે છેલ્લે હવે શબ્દભંડોળ સૉર્ટ કરો અને સિદ્ધાંત માનસિક મોડેલની સૉર્ટ હોય
જેની સાથે આ તૂટેલા કાર્યક્રમ ઉકેલવા માટે.
>> તેથી આ તૂટેલા કાર્યક્રમ માં, સ્વેપ સ્વેપ ની અંદર કામ કરે છે,
પરંતુ તે મુખ્ય માં ખરેખર ક્યારેય કામ કર્યું કારણ કે એક્સ અને વાય રિકોલ મુખ્ય પસાર કર્યો હતો,
અને તે કિંમતો દ્વારા પસાર કરવામાં આવ્યા હતા, જેથી વાત કરવા માટે.
તેમને નકલો માટે સ્વેપ આપવામાં આવી હતી.
સ્વેપ ના અંત સુધીમાં, a અને b ખરેખર લે કરવામાં આવી હતી,
પરંતુ અલબત્ત એક્સ અને વાય, કારણ કે અમે સોમવારે ચર્ચા ન હતી.
તેથી હું લીલા અહીં પ્રસ્તાવ કે આ ખરેખર ઉકેલ છે અહીં.
અને ખરેખર દો, મને મારા તારા ખસેડવા માત્ર સુસંગત હોઈ
છતાં પણ, ફરીથી, વિધેયાત્મક રીતે આ તો કોઈ વાંધો નથી.
ભવિષ્યમાં સપ્તાહમાં અમે જ્યારે શા માટે અને તેને બાબત સમજાવવા પડશે.
તેથી લીલા હવે ઉકેલ છે.
પ્રમાણિકપણે, તે સંપૂર્ણ ઘણો messier લાગે છે કારણ કે હું આ તારાઓ બધા હોય છે.
દો મને એક વસ્તુ નિર્દેશ કરે છે.
ટોચની અહીં વાક્ય જ્યાં તે કહે છે પૂર્ણાંક * એક અને પૂર્ણાંક * બોલ્ડ
મૂળભૂત છે તે જ વસ્તુ કરવાનું કારણ તે હંમેશા હોય છે.
તે 2 દલીલો અથવા પરિમાણો જાહેર છે સ્વેપ
જેમાં પ્રથમ પૂર્ણાંક નિર્દેશક છે કહેવાય છે,
જે બીજા પૂર્ણાંક બો કહેવાય નિર્દેશક છે.
આ જ વસ્તુ છે કે આ સમયે નવું હકીકત એ છે કે ત્યાં એક તારો ત્યાં છે.
>> કે શું અર્થ છે? એ પૂર્ણાંક નથી, બો પૂર્ણાંક નથી.
એ પૂર્ણાંક સરનામું છે અને બોલ્ડ અલગ પૂર્ણાંક સરનામું છે.
નીચે અહીં, આ છે જ્યાં હું કબૂલ સી ગૂંચવણમાં નોંધાયો નહીં.
હવે અમે એક તારો ઉપયોગ કરી રહ્યાં છો, પરંતુ તે આ સંદર્ભમાં અલગ અલગ અર્થ ધરાવે છે.
કારણ કે અમે પોઇંટરો નથી જાહેર અમે અહીં છે રહ્યાં છો,
અહીં અમે વસ્તુઓ dereferencing છે.
ટેકનિકલી તેથી, સ્વેપ ની અંદર પ્રથમ, બીજો અને ત્રીજા વાક્ય આ સંદર્ભમાં તારો
છે ડિરેફરન્સ ઓપરેટર છે, કે જે હમણાં જ અર્થ થાય ત્યાં જાઓ.
તેથી જ મારું આંગળી h, તીર અનુસર્યું હોય,
* એક અર્થ એ થાય કે સરનામા પર જાઓ અને મને પૂર્ણાંક છે કે જે ત્યાં શોધો.
* બો અર્થ સરનામા પર જાઓ અને મને પસાર શું ત્યાં છે.
તેથી આપણે સોમવાર હવે ચોકઠાંઓ સ્ટેક ઉપયોગ કરવાથી ચિત્ર redraw,
જે નીચે એક મુખ્ય પ્રયત્ન રહ્યું છે,
જે ઉપર એક સ્વેપ હોવી રહ્યું છે,
જેથી અમારી વિશ્વ સોમવાર જેમ જ દેખાય છે, આ જેમ.
અહીં મેમરી એક ભાગ છે કે જે મુખ્ય વાપરવા માટે જવાનું છે.
>> સોમવારથી જણાવ્યું હતું કે કાર્યક્રમ માત્ર 2 ચલો હતી,
એક X અને એક Y કહેવાય કહેવાય છે, અને હું નંબરો 1 અને 2 મૂકી હતી ત્યાં.
હવે જ્યારે હું જેમ સ્વેપ કહી હું સોમવારે આપી હતી,
અગાઉ જ્યારે હું આ કાર્યક્રમની આવૃત્તિ લાલ ઉપયોગ થાય છે, જે આ જેવી લાગે છે,
હું 2 પરિમાણો, એક બોલ્ડ અને મળ્યું, અને આપણે શું અહીં અને અહીં લખી હતી?
ફક્ત 1 અને 2, શાબ્દિક એક્સ અને વાય નકલો.
આજે અમે તે બદલો.
આજે ints માં પસાર બદલે a અને b અમે 2 સરનામાં પાસ જઈ રહ્યાં છો.
તે સરનામાઓ પર ints નિર્દેશિત કરવા માટે થાય છે, પરંતુ તે સરનામાઓનું તેમને પોતાની ints છે.
તેઓ સરનામાઓ છે. તે એક પોસ્ટલ સરનામા જેવી જગ્યાએ છે.
તેથી હવે અમે ફક્ત મારી જાતને સ્ક્રીન પર થોડો વધુ વિગત આપી કરવાની જરૂર છે.
આ મારા કમ્પ્યુટર મેમરી છે, કારણ કે તે આખો દિવસ રહી છે.
હવે અમે કેટલાક મનસ્વી નંબર યોજના કરવાની જરૂર છે.
તેથી આપણે માત્ર કહેવું, તક દ્વારા જ કે આ મેમરી 123 સરનામું, 124 છે.
ચાલો માત્ર કહે છે આ 125 છે, આ 126 છે, અને તેથી આગળ, પરંતુ તે તદ્દન મનસ્વી છે.
અમે હમણાં જ મારા મેમરી કેટલાક નંબરવાળી યોજના કરવાની જરૂર છે.
તેથી હવે જ્યારે હું ખરેખર એક્સ અને વાય પાસ, હું એક્સ અને વાય પાસ ન જાઉં છું;
હું પોસ્ટલ સરનામું એક્સ અને વાય જેથી વાત કરવા માટે, પસાર જાઉં છું
તેથી નહીં અહીં અને અહીં સંગ્રહિત શું 1 અને 2 છે,
પરંતુ જો તમે મારી નાની ટેક્સ્ટ જોઈ શકો છો, જે અહીં અને અહીં પસાર નહીં?
[અશ્રાવ્ય વિદ્યાર્થી પ્રતિભાવ] ચોક્કસ. >> 123 અહીં મૂકો નહીં અને 124 અહીં મૂકો નહીં.
>> હવે, કારણ કે હું આ ખૂબ જ પ્રથમ વાક્ય અહીં રીતે ટોચ પર તારો ઉપયોગ થાય છે,
મારા કાર્યક્રમ માત્ર 123 કે 124 અને જાણે છે, છતાં પણ તેઓ દેખીતી રીતે કરશો પૂર્ણાંકો
કે જે કોઈપણ માનવ નોટિસ શકે છે, તેઓ સરનામાં, આંકડાકીય સરનામાં તરીકે અર્થઘટન કરી કરીશું.
તેઓ અને તેમની જાતને ints ન હોય તો, તેઓ સરનામાં કરશો,
અને તે છે કારણ કે હું નિશ્ચિતપણે તારાઓ છે ત્યાં મૂકો.
તેથી હવે મારી વાસ્તવિક કોડ શું અહીં થાય છે પ્રથમ, બીજો અને ત્રીજી લાઇન છો?
ચાલો ચિત્ર બાકીના દોરે છે.
Tmp તે સોમવારે હતો જેમ જ છે. Tmp વિશે ખાસ કંઈ નથી.
તે માત્ર એક સ્થાનિક 32 બિટ્સ ચલ છે, અને અંદર હું દેખીતી રીતે * ની કિંમત સ્ટોર છું.
હવે, જો હું હમણાં જ કહ્યું tmp = એક, હું શું અહીં મૂકો છો? >> [વિદ્યાર્થી] 123.
123. પરંતુ તે નથી હું શું કરી રહ્યો છું.
હું કહી રહ્યો છું tmp = * એ. નક્ષત્ર અર્થ ત્યાં જાઓ.
અહીં એક છે, 123. હું કેવી રીતે ત્યાં જાઓ છો? ડોળ કરવો જેવા ત્યાં એક તીર છે.
વેલ, તેમાં છે, 1. તેથી tmp શું સંગ્રહિત નહીં દેખીતી રીતે? જસ્ટ 1.
તેથી અન્ય શબ્દોમાં, tmp * એક * એક માધ્યમ છે તે સરનામું છે કે જે વર્તમાનમાં છે જાઓ,
જે દેખીતી રીતે છે 123.
>> ઠીક છે, અહીં આપણે 123 સ્થાન પર છે, હું નંબર 1 જુઓ,
તેથી હું નંબર 1 ત્યાં મૂકી જાઉં છું.
હવે હું શું પંક્તિ 2 શું નથી, * એક = * બો?
આ એક થોડો વધુ સામેલ છે હવે કારણ કે શું છે? તે 123 છે.
તેથી * એક જ્યાં છે? અધિકાર જ્યાં હું પહેલાં હતી. તેથી ત્યાં જાઓ. ઠીક છે.
હવે, છેલ્લે, અને પછી છેવટે આ અર્થમાં બનાવવા શરૂ કરવા માટે, લઇશ,
* બો અર્થ એ થાય કે શું બોલ્ડ છે? 124. તેથી હું ત્યાં જવા માટે જરૂર છે, જે 2 છે.
તેથી હું શું જ્યાં મૂકી શકું?
2 અહીં જાય છે કારણ કે * બો * એક જાય. તેથી હું આ કરી શકશો.
અને તમે પહેલાથી જ જોવા, કદાચ કરી શકો છો, કે જે આપણે ખૂબ નજીક છો
આ મૂર્ખ, સરળ સમસ્યા પ્રથમ વખત યોગ્ય રીતે ઉકેલ માટે
કારણ કે હવે અમે હજી પણ એક્સ શું હતું એ સ્મરણ છે,
અમે 2 નકલો હોય છે, દેખીતી રીતે એ તો સ્પષ્ટ છે કે વાય છે,
પરંતુ 3 લીટી હવે * બો કહે છે.
તેથી અહીં બો છે. * બો અર્થ ત્યાં જાઓ. તેથી જ્યાં સ્થાન છે 124?
તે દેખીતી રીતે અહીં છે. તેથી હું શું અહીં મૂકો છો? દેખીતી રીતે tmp.
તેથી હવે હું આ કરું છું. તેથી હું અહીં 1 અને 2 અહીં છે.
અને હવે શું આ બધા, 123, 124, અને 1 એ શું?
જલદી સ્વેપ વળતર, આ મેમરી સારું તરીકે ગુમાવી છે
જલદી સ્વેપ વળતર, ઓપરેટિંગ સિસ્ટમ તરીકે કારણ કે
ભવિષ્યમાં કે મેમરી ફરીથી ઉપયોગ મફત છે.
માત્ર આ સ્ટેક કહેવાતા નીચે ખાતે મુખ્ય મેમરી આસપાસ લાકડી.
>> અને તેથી અમે આખરે હવે કામ આવૃત્તિ હોય.
મને swap.c જાય, અને નીચેના નોટિસ.
કાર્યક્રમ ટોચ પર હું મારા પ્રોટોટાઇપ પ્રયત્ન કરવા માટે બદલ્યું છે પૂર્ણાંક * એક અને પૂર્ણાંક * બો.
માત્ર એક જ વસ્તુ હું લાલ, કે જે ખરાબ હતું લીલા, જે સારા હોય છે જાઓ બદલી તેથી,
છે મને આજે આ તારા ઉમેર્યા છે.
પરંતુ તે પછી નીચે અહીં પોતે સ્વેપ હું નકલ હતી, પેસ્ટ શું સ્લાઇડ પર હતી.
અહીં તારો, હું અહીં એક તારો છે - કે જે પ્રોટોટાઇપ સાથે બંધબેસે -
અને પછી આ બધું હવે tmp સિવાય તારા હોય છે
કામચલાઉ ચલ ઉપયોગ કારણ કે, ત્યાં નવી કશું ત્યાં છે.
મેં હમણાં જ પૂર્ણાંક માટે કામચલાઉ સંગ્રહ કરવાની જરૂર છે.
તેથી અમે એક તારો ત્યાં જરૂર નથી.
અમે ફક્ત તારો જરૂર છે કે જેથી અમે મનસ્વી સરહદ આ પ્રકારની પાર કરી શકે છે
મારા કમ્પ્યુટર મેમરી આ 2 ફ્રેમ્સ વચ્ચે.
પરંતુ એક છેલ્લા વસ્તુ બદલવા માટે છે, અને તમે તેને જોવામાં હોઈ શકે છે પહેલાથી જ.
અન્ય રેખા શું ચોક્કસપણે વિવિધ હવે છે? >> [વિદ્યાર્થી] અને એક્સ.
>> અરે વાહ, 25 તેથી કોડ છેલ્લા વાક્ય હું આ માટે બદલવા માટે કામ કરવાની જરૂર છે.
એક સપ્તાહ પહેલા અને સોમવારે પણ 25 વાક્ય આ જેવો દેખાતો હતો, એક્સ અને વાય સ્વેપ
અને આ માત્ર કારણ કે જો તમે કહી ભાંગી હતી સ્વેપ પાર્ટીશન (એક્સ, વાય)
તમે એક્સ અને વાય નકલો માટે સ્વેપ આપતા નથી, તો પછી તેની વસ્તુ કરી છે,
પરંતુ તમે ખરેખર એક્સ અને વાય પોતે ક્યારેય બદલી રહ્યાં છીએ.
તેથી જો તમે કોડ માં & "અને" નું ચિહ્ન સાથે આ પાત્ર ક્યારેય જોઇ ​​છે, તે પહેલાં,
માત્ર એક અનુમાન લો. આ & "અને" નું ચિહ્ન શું નથી, દેખીતી રીતે કરે છે?
[વિદ્યાર્થી] સરનામું લે છે. >> સરનામું લે છે.
તેથી & "અને" નું ચિહ્ન કહેતા છે મને x ની સરનામું આપો.
કોણ જાણે જ્યાં તે છે? તે 123 બને છે. હું પડી નથી. જસ્ટ મને x ની સરનામું આપો.
& પિ મને વાય ના સરનામું આપો થાય છે.
અને તે બિંદુ વાર્તા સંપૂર્ણપણે ચિત્ર સાથે સુસંગત છે અમે ક્ષણ પહેલા દોર્યું હતું.
>> તેથી હું પોઇંટરો સ્વીકાર્યું, ચોક્કસપણે પડશે મારા માટે જ્યારે હું આ શીખવાની શરૂઆત કરી,
ચોક્કસપણે હતા એક અત્યંત મારા મન ફરતે વીંટળાય બાબતો.
પરંતુ ખ્યાલ છે, ખાસ કરીને અમે વસ્તુઓ આ પ્રકારનાં સાથે રમવાની રાખવા માટે,
જો તમે આ સુપર સરળ સૉર્ટ તોડી બુદ્ધિપૂર્વક સમસ્યાઓ uninteresting
માત્ર નંબરો આસપાસ ખસેડવા, પોઇન્ટર સાથે ગૂંચવણ ઘણો જ જવાબ ના
ખરેખર આ અત્યંત આધારભૂત મિકેનિક્સ માંથી તારવેલી શકાય છે.
અહીં એક સરનામું છે. તારા સાથે ત્યાં જાઓ.
અથવા ઊલટી, અહીં એક & "અને" નું ચિહ્ન છે. બહાર આકૃતિ સરનામું ખરેખર શું છે.
અધિકાર છે.
તેથી આ મેમરી બધા જ્યાં આવે છે?
અમે આ ચિત્ર વખત બે ડ્રો કર્યા છે, અને હું આશાસ્પદ રાખવા અમે પાછા તે આવવા પડશે,
પરંતુ અહીં તમારા કમ્પ્યુટરની મેમરી રજૂઆત છે
થોડો આપણા chalkboard કરતાં લેબલ થયેલ વધુ અહીં છે.
ટોચ પર લખાણ સેગમેન્ટમાં તમારા કાર્યક્રમ માટે આદર સાથે શું પ્રતિનિધિત્વ?
[અશ્રાવ્ય વિદ્યાર્થી પ્રતિભાવ] માફ કરશો >>? ફરીથી કહો.
[વિદ્યાર્થી] વાસ્તવિક કાર્યક્રમ. >> વાસ્તવિક કાર્યક્રમ.
>> આ 0s અને 1 સે કે તમે સી કોડ લખ્યા બાદ સંકલિત અને પછી ચાલી રહેલ રણકાર તેથી
અને 0s અને 1 સે અંત સુધી પેદા ત્યાં મેમરીમાં tucked રહ્યું
જ્યારે તમે ડબલ તમારા Mac અથવા PC પર ચિહ્ન પર ક્લિક કરો કારણ કે
અથવા તમારા પ્રોમ્પ્ટ પર મારિયો જેવો આદેશ ચલાવો, તમારા 0s અને 1 સે ડિસ્કમાંથી
મળે મેમરીમાં લોડ કરે છે કે જેથી તેમને કોમ્પ્યુટર કામ કરી શકે છે
અને તેમને વધુ ઝડપથી ચલાવો.
તેથી આરંભ માહિતી અને uninitialized માહિતી, અમે ખૂબ તે વિશે વાત કરશે,
પરંતુ તે માત્ર વૈશ્વિક ચલો છે.
આરંભ વૈશ્વિક ચલો કે જે તમે કિંમતો આપ્યો અર્થ થાય છે;
uninitialized વૈશ્વિક ચલો કે તમે હજુ સુધી કિંમતો નથી આપી નહોતી થાય છે.
તો પછી ત્યાં આ પર્યાવરણ ચલો કે જે હું સંપૂર્ણપણે મારા હાથ મોજું પડશે છે,
પરંતુ તેઓ ત્યાં છે અને તે તમારા વપરાશકર્તા નામ જેવું સ્ટોર્સ વસ્તુઓ
અને નીચલા સ્તર વિગતો અન્ય સૉર્ટ.
પરંતુ તમારા મેમરી લેઆઉટ ના juiciest ટુકડાઓ આ સ્ટેકની અને ઢગલો કહેવાય વસ્તુ છે.
ફરી સ્ટેક સ્પષ્ટ હોય છે,, મેમરી કે જ્યારેપણ વિધેયો કહેવામાં આવે છે ઉપયોગ થાય છે,
જ્યારે પણ ત્યાં સ્થાનિક ચલો છે
અને ત્યાં પરિમાણો જ્યારેપણ આસપાસ છે પસાર થઈ રહ્યો છે.
કે તમામ સ્ટેક બને.
આ ઢગલો અમે વિશે વાત કરી છે, પરંતુ એક અનુમાન જેઓ ઢગલો વાપરે લો.
માત્ર મેમરી અલગ ભાગ.
તે માટે અહીં ટોચ પર દોરવામાં આવે થાય છે, પરંતુ તે એક મનસ્વી સચિત્ર સંમેલન છે.
કોણ દેખીતી રીતે ઢગલો ના થઇ ગયા અઠવાડિયા માટે મેમરીનો ઉપયોગ?
તે ટેકનીકલી છે તમે પરંતુ આડકતરી. >> [વિદ્યાર્થી] GetString.
GetString અને malloc. તેથી અહીં મૂળભૂત તફાવત છે.
>> તમે ભૂતકાળમાં થોડા અઠવાડિયા માટે જાણે છે કે જો તમે મેમરી જરૂર છે, માત્ર એક ચલ જાહેર.
જો તમે મેમરી ખૂબ જરૂર છે, એક જમણા તમારા કાર્ય ની અંદર એરે જાહેર.
પરંતુ સમસ્યા અમે સામનો રાખવામાં કર્યો છે જો તમને ચલો સ્થાનિક વિધેયો ની અંદર જાહેર,
તરત કાર્ય વળતર, શું મેમરી અને તે ચલો માટે થાય છે?
તે ફક્ત સૉર્ટ હવે તમારું અધિકાર? તે માત્ર કાલ્પનિક જેવું અદૃશ્ય થઈ જાય છે.
તે હજુ પણ શારીરિક ત્યાં છે, દેખીતી રીતે, પરંતુ તે લાંબા સમય સુધી તમારા માટે ઉપયોગ કરવાનો અધિકાર છે.
આ સ્પષ્ટપણે સમસ્યારૂપ છે જો તમે જીવનમાં કાર્યો લખવા માંગો છો
કે જે વાસ્તવમાં મેમરીને ફાળવવા અને તે આપવા પાછળ નથી તે તુરંત જ.
બિંદુ માં કેસ: જીવન માં GetString હેતુ માટે અગાઉથી કોઈ વિચાર હોય છે
કેવી રીતે શબ્દમાળા હું કીબોર્ડ લખો જાઉં છું મોટી,
પરંતુ તે માટે મેમરીને ફાળવવા માટે ડેવિડ અથવા હેલ્લો પકડી કરવાનો પ્રયત્ન મળ્યું છે
અથવા તે સંપૂર્ણ નિબંધ કે વપરાશકર્તા સાઇન લખ્યો હોઈ શકે છે
તેથી GetString malloc નો ઉપયોગ કર્યો છે.
Malloc તેથી સ્ટેક નથી મદદથી હોવી જ જોઈએ;
તેના બદલે તે આ ઢગલો કહેવાય વસ્તુ મદદથી છે.
ત્યાં મેમરી વિશે વિવિધ કશું જ નથી. તે ઝડપી ધીમી નથી અથવા અથવા તે જેવો કંઈ છે.
તે એક અલગ સ્થાન ફક્ત શારીરિક છે.
>> પરંતુ નિયમ એ છે કે મેમરી કે ઢગલો પર ફાળવવામાં છે
ક્યારેય લેવામાં દૂર તમે જ્યાં સુધી તમે કૉલ - એક અનુમાન લેવા - ફ્રી.
તેનાથી વિપરીત, કોઈપણ મેમરી તમે માત્ર એક એરે જાહેર કરીને સ્ટેક પર માટે પૂછો
અથવા ચલ જાહેર જેમ અમે અઠવાડિયા સુધી આમ કર્યું છે,
તે મૂળભૂત દ્વારા સ્ટેક પર પૂર્ણ થાય છે.
અને તે સમયે મહાન 90% કામ કરે છે, તે વધુ જૂજ પ્રસંગોએ પરંતુ
જ્યાં તમે મેમરીને ફાળવવા અને તે રાખવા આસપાસ માંગો છો,
તો પછી તમારે malloc જેમ કાર્ય વાપરવાની જરૂર છે.
અથવા આપણે GetString છે, જે બદલામાં malloc ઉપયોગ કરે છે જેમ કાર્ય ઉપયોગ કર્યો છે.
ચાલો જોવા જ્યાં આ તોડી અને પછી શકે Binky ખાતે ડોકિયું લો.
અમે ભવિષ્યમાં ફરી કે આવવું પડશે.
અહીં સુપર સરળ કાર્યક્રમ છે કે પ્રથમ 2 રેખાઓ શું કરે છે?
ઇંગલિશ માં, આ કોડ પ્રથમ 2 રેખાઓ અંદર શું કરવું મુખ્ય?
[અશ્રાવ્ય વિદ્યાર્થી જવાબ]
સાવધાન રહો. તે મને એક્સ અથવા વાય ના સરનામા આપતું નથી.
[વિદ્યાર્થી] ints માટે પોઇંટરો આપે છે. >> ગુડ. મને પૂર્ણાંકો માટે 2 પોઇંટરો આપો.
અન્ય શબ્દોમાં, મને મેમરી 2 હિસ્સામાં કે હું આજે ચિત્ર રાખવા આપી,
છતાં પણ હું તેને હમણાં ચોરસ તરીકે, ફગાવી દીધી હતી.
મને મેમરી 2 હિસ્સામાં આપો, એક એક્સ કહેવાય છે, એક વાય કહેવાય -
અગાઉ હું તેમને ઓ અને ટી કહેવાય - અને મેમરી કે ભાગ પ્રકાર શું છે?
તે એક સરનામું સ્ટોર ચાલી રહ્યું છે.
તેનો પ્રકાર પૂર્ણાંક * ના છે.
>> તેથી પૂર્ણાંક ની સરનામા આખરે એક્સ રહેતા હશે,
પૂર્ણાંક ની સરનામા છેવટે વાય રહેતા હશે,
પરંતુ શરૂઆતમાં, શું એક્સ અને વાય ની અંદર શું છે? કોણ જાણે? કચરો કિંમતો.
તે પોઇન્ટર સાથે કરવાનું કંઈ નથી.
જો આપણે ત્યાં કંઈક છે, જે જાણે છે શું ખરેખર ત્યાં મૂક્યું નથી?
હવે એક્સ. અહીં શું થાય છે? આ વંચાય હવે કારણ કે એક્સ એક નિર્દેશક છે. તે પૂર્ણાંક * છે.
તેથી તેનો અર્થ એ કે હું x માં મેમરી કેટલાક ભાગ ના સરનામા મૂકી શકો છો.
Malloc શું આપે? પરફેક્ટ, તે સરનામાઓ આપે છે,
મેમરી સંપૂર્ણ ભાગ પ્રથમ બાઇટ ની સરનામું.
કેટલી બાઇટ્સ આ દેખીતી રીતે છે, હમણાં પૂરતું allocating, તો ઉપકરણ માં?
પૂર્ણાંક માપ શું છે? 4.
જો તમે 1 સપ્તાહ પાછા લાગે, તે સુપર અગત્યનું નથી કે હંમેશા યાદ રાખો કે,
પરંતુ આ કિસ્સામાં તે ઉપયોગી છે તે જાણવા માટે, 4 બાઇટ્સ.
તેથી આ ઢગલો 4 બાઇટ્સ પર allocating છે
અને મને તે પ્રથમ એક સરનામું આપખુદ પરત છે.
હવે, એક્સ શું કરે છે?
એ * x 42 = શું કરે છે?
વાર્તામાં આ બિંદુએ જો અમે એક્સ, કે જે અમુક કચરો કિંમત સાથે આ જેવી લાગે છે,
આ હવે કેટલાક કચરો કિંમત સાથે વાય, હવે 3 લીટી માં હું 4 બાઇટ્સ ફાળવવામાં કર્યું છે.
આ ચિત્ર અનિવાર્યપણે આ જેવો દેખાય છે.
અથવા વધુ ચોક્કસ રીતે, જો આ મનસ્વી 123 સરનામા છે, આ છે આપણી વાર્તા શું હવે જેવો દેખાય છે.
* X 42 = હવે શું અર્થ થાય છે? તેનો અર્થ એ કે તે સરનામું 123 પર જાઓ અને નંબર 42 ત્યાં મૂકો.
હું આ લીટીઓ દોરવા જરૂર નથી કારણ કે અમે શબ્દમાળાઓ કરી રહ્યા નથી.
>> હું ફક્ત આ જેવી જોઈએ છે તે લખાયેલું છે, અને ફક્ત પ્રદર્શન કાજે,
42 પૂર્ણાંક પ્રકારની તરીકે અપ જગ્યા ઘણો લે છે, 4 બાઇટ્સ.
જેથી શું ત્યાં થયું છે, પરંતુ ત્યાં એક સમસ્યા હવે છે.
* વાય = 13. શું અહીં થાય ચાલી રહ્યું છે?
આ સમસ્યા અમારી સરળ વિશ્વમાં * વાય માત્ર અર્થ છે વાય માં સરનામા પર જાઓ.
શું વાય છે? કેટલાક કચરો કિંમત થાય છે.
તેથી આપણે ધારે છે કે જે આ કચરો કિંમત 5551212 છે, કે ઉન્મત્ત કંઈક.
* વાય અર્થ 5551212 સંબોધવા જાઓ.
કે ઉપર અહીં ગમે છે. તે દાખલા તરીકે અસ્તિત્વમાં નથી,.
તેથી * વાય 13 અર્થ હું 13 અહીં ડ્રો કરવાનો પ્રયાસ કરી રહ્યો છું નોંધાયો નહીં. તે અસ્તિત્વમાં નથી.
હું બ્લેકબોર્ડ ના સેગમેન્ટમાં વટાવી દીધી છે. હું શું વિચાર છે?
કે ભેદી સંદેશો સેગ્મેન્ટેશન ક્ષતિમાં કારણ કે હું મેમરી મૂકવા પ્રયાસ કરી રહ્યો છું
એક સ્થાન છે જે અસ્તિત્વમાં નથી અંતે 13 જેવી મૂલ્ય.
કાર્યક્રમ બાકીના ઠીક છે, પરંતુ તે બિંદુ કરે છે તે ન થાય ત્યાં સુધી કામ કરી શકે છે.
તેથી આપણે આ વાર્તા કહી પ્રયાસ કરો.
અમે પાછા એકવાર અમે તે hex વિશે વાત કરી છે કે આવવું પડશે.
ચાલો આ પર જાઓ અને આ Binky કહેવાય વસ્તુ સાથે તારણ,
સ્મૃતિ કે જે સ્ટેનફોર્ડ ઘરે બેસીને claymation સાથે રમવાની અધ્યાપક છે,
બરાબર એ જ કાર્યક્રમ વાર્તા કહો.
તેમાં ફક્ત લગભગ 3 લાંબા મિનિટ. અહીં અમે Binky છે.
[વિડિઓ પર પુરૂષ વક્તા] હાય Binky, જાગે. તે નિર્દેશક આનંદ માટે સમય છે.
[Binky] કે શું છે? પોઇન્ટર વિશે જાણો! ઓહ, એક જાતની મીઠાઈ!
[પુરૂષ વક્તા] સારું, પ્રારંભ કરવા માટે, હું માનું અમે થોડા પોઇંટરો જરૂર જઈ રહ્યાં છો.
>> [Binky] ઠીક. આ કોડ 2 પોઇંટરો જે પૂર્ણાંકો માટે નિર્દેશ કરી શકો છો ફાળવે છે.
[પુરૂષ વક્તા] ઠીક. વેલ, હું 2 પોઇંટરો જુએ છે, પરંતુ તેઓ કંઈ પણ કરવા માટે તરફ ઇશારો છો તેમ લાગતું નથી.
[Binky] તે સાચું છે. શરૂઆતમાં, પોઇંટરો કંઈપણ નથી નિર્દેશ નથી.
આ વસ્તુઓ તેઓ નિર્દેશ pointees કહેવામાં આવે છે, અને તેમને સુયોજિત એક અલગ પગલું છે.
[પુરૂષ વક્તા] ઓહ, અધિકાર, અધિકાર. હું કે જાણતા હતા. આ pointees અલગ હોય છે.
Er છે, જેથી તમે એક pointee કેવી રીતે ફાળવી શકું?
[Binky] ઠીક. આ કોડ નવી પૂર્ણાંક pointee ફાળવે છે, અને આ ભાગ એક્સ તે નિર્દેશ કરવા માટે સુયોજિત કરે છે.
[પુરૂષ વક્તા] હાય, કે જે વધુ સારી દેખાય છે.
તેથી તેને કંઈક. >> [Binky] ઠીક.
હું નિર્દેશક એક્સ ડિરેફરન્સ તેના pointee માં 42 નંબર સ્ટોર પડશે.
આ યુક્તિ માટે હું મારા dereferencing જાદુઈ લાકડી જરૂર પડશે.
[પુરૂષ વક્તા] તમારા dereferencing જાદુઈ લાકડી? કે મહાન છે.
[Binky] આ છે કોડ શું જુએ છે. હું હમણાં જ નંબર સેટ કરશો અને ... [અવાજ ધાણી]
[પુરૂષ વક્તા] હેય, જુઓ, તેમાં કોઈ રન નોંધાયો નહીં.
તેથી એક્સ પર ડિરેફરન્સ કરવાથી તીર તેના pointee ઍક્સેસ કરવા માટે નીચે,
આ કિસ્સામાં તેમાં 42 સંગ્રહવા માટે.
અરે, તેનો ઉપયોગ કરવા માટે અન્ય નિર્દેશક, વાય દ્વારા 13 નંબર સ્ટોર કરવાનો પ્રયાસ કરો.
[Binky] ઠીક. હું માત્ર અહીં જઈશ વાય અને વિચાર એ 13 નંબર સુયોજિત
અને પછી dereferencing અને માત્ર એ જાદુઈ લાકડી લે છે ... [Buzzing અવાજ] થોભો!
[પુરૂષ વક્તા] ઓહ હેય, તે કામ ન શક્યા ન હતા.
>> કહો, Binky, મને નથી લાગતું વાય dereferencing એક સારો વિચાર છે
કારણ કે આ pointee સુયોજિત અલગ પગલું છે
અને મને નથી લાગતું કે અમે ક્યારેય તેને હતી.
[Binky] હમ્મ, સારા બિંદુ.
[પુરૂષ વક્તા] યાહ. અમે નિર્દેશક વાય ફાળવવામાં પરંતુ અમે સેટ કરવા માટે pointee નિર્દેશિત કરવા માટે તેને નથી.
[Binky] હમ્મ, ખૂબ સચેત.
[પુરૂષ વક્તા] હાય, તમે સારા શોધી રહ્યાં છો ત્યાં, Binky.
તમે તેને ઠીક કરી શકે છે કે જેથી એક્સ તરીકે જ pointee માટે વાય પોઇન્ટ? >> [Binky] શ્યોર.
હું મારા નિર્દેશક નામે જાદુ લાકડી ઉપયોગ કરશો.
[પુરૂષ વક્તા] કે પહેલાં જેવું સમસ્યા હશે શું?
[Binky] ના, આ pointees તે સ્પર્શતું નથી.
તે માત્ર એક નિર્દેશક બદલે બીજા જેવા જ વસ્તુ માટે નિર્દેશ કરે છે. [અવાજ ધાણી]
[પુરૂષ વક્તા] ઓહ, હું જુઓ. હવે એક્સ તરીકે જ જગ્યાએ વાય નિર્દેશ કરે છે.
તેથી રાહ જુઓ. હવે વાય સુધારેલ છે. તે pointee છે.
જેથી તમે ફરી dereferencing માટે 13 ઉપર મોકલવા ના જાદુઈ લાકડી પ્રયાસ કરી શકો છો.
[Binky] ઉહ, ઠીક છે. અહીં જાય છે. [અવાજ ધાણી]
[પુરૂષ વક્તા] હાય, કે જુઓ. હવે વાય પર કામ કરે છે dereferencing.
અને કારણ કે પોઇંટરો કે એક pointee શેર કરી રહ્યાં છે, તેઓ બંને માંથી 13 જુઓ.
[Binky] અરે વાહ, શેરિંગ. ગમે.
>> તેથી અમે સ્થાનો હવે સ્વિચ જવું છે?
[પુરૂષ વક્તા] ઓહ દેખાવ, અમે સમય નથી. >> [Binky] પરંતુ -
[પુરૂષ વક્તા] માત્ર 3 નિર્દેશક નિયમો યાદ રાખો.
નંબર 1, આધારભૂત માળખું છે કે તમે એક નિર્દેશક હોય છે અને તે pointee પર નિર્દેશ કરે છે.
પરંતુ નિર્દેશક અને pointee અલગ હોય છે, અને સામાન્ય ભૂલ એક નિર્દેશક સેટ છે
પરંતુ તે pointee આપી ભૂલી ગયા છે.
નંબર 2, નિર્દેશક dereferencing પોઇન્ટર પર શરૂ થાય છે અને તેના પર તીર નીચે
તેના pointee ઍક્સેસ કરો.
આપણે જાણીએ છીએ તમામ, આ માત્ર કામ કરે છે જો ત્યાં એક pointee છે,
પ્રકારની છે, જે નોંધાયો નહીં કરવા માટે નંબર 1 શાસન.
નંબર 3, નિર્દેશક સોંપણી એક નિર્દેશક લે છે અને તે બદલી
બીજા નિર્દેશક તરીકે જ pointee માટે નિર્દેશ કરે છે.
તેથી સોંપણી પછી, 2 પોઇંટરો એ જ pointee માટે નિર્દેશ કરશે.
ક્યારેક કે શેરિંગ કહેવાય છે.
>> અને તે તમામ ત્યાં તે ખરેખર છે. હવે પેટા બનાવ્યો.
આ Binky છે. આ CS50 છે. અમે આગામી સપ્તાહે તમે જોશો. [વધાવી]
>> [CS50.TV]