1 વક્તા: માતાનો એક કાર્યક્રમ લખીએ કે વગર વપરાશકર્તા માંથી શબ્દમાળા મળે cs50 પુસ્તકાલય છે મદદથી GetString કાર્ય. આ કરવા માટે, અમે આગળ વધીશું અને ઉપયોગ કરશો scanf, કાર્ય કે GetString કાર્ય ખરેખર વાપરે હૂડ નીચે. પરંતુ હું ઇરાદાપૂર્વક આ કરવા જાઉં છું બગડેલ રીતે. હું મને લાગે છે કે જે રીતે કરવા જાઉં છું અધિકાર હોય છે, પરંતુ તે તારણ છે કે જે મારા ધારણા બનશે ખૂબ, ખૂબ અપૂર્ણ છે. અને હકીકતમાં, તદ્દન જોખમી છે. કારણ કે હું વિશે છું એક જેવી ભૂલો પ્રતિસ્પર્ધકો દ્વારા શોષણ કરી શકાય કરો જેમ કે તમારા મશીન અથવા તમારા કાર્યક્રમ સંભવિત પર પગલા લેવા જરૂરી છે. નીચે પ્રમાણે છે શરૂ થાય છે. પ્રથમ આપણે આપણા શબ્દમાળા જાહેર દો, અન્યથા, ચાર રચે છે સ્ટાર તરીકે હવે ઓળખાય અને તે ઓ ફોન કરો. આગામી શબ્દમાળા માટે વપરાશકર્તા પૂછવા દે, "કૃપા કરીને શબ્દમાળા." સાથે અને હવે વપરાશકર્તા માંથી શબ્દમાળા મેળવવા દો અવતરણ ચિહ્નો પૂરાં કરવાં ભાવ, "% એ." scanf મદદથી માં અન્ય શબ્દોમાં, ચાલો કે અમે scanf જાણ કરો હકીકતમાં શબ્દમાળા મેળવવા અપેક્ષા છે વપરાશકર્તા માંથી. પરંતુ હવે અમે scanf કહેવાની જરૂર એક અન્ય વસ્તુ - શબ્દમાળા મૂકી છે કે વપરાશકર્તા પૂરી પાડે છે. ઠીક છે, હું તદ્દન સરળ શરૂ જાઉં છું અલ્પવિરામ એ, હું માંગો છો કે સ્પષ્ટ સાથે scanf ત્યાં શબ્દમાળા મૂકો. હું આગામી કંઈક છાપે જાઉં છું આ% s માટે printf "આભાર જેવા બેકસ્લેશ n એ અલ્પવિરામ. "અને હંમેશની જેમ, હું છું તે સ્ટ્રિંગ એ પાસ જઈ રહી છે. હવે, સંગ્રહ કરો કમ્પાઇલ, અને આ સ્કોર અમે પ્રેરિત કરી શકો છો કાર્યક્રમ, અને જુઓ સમસ્યા હું આગાહી કરી હતી. Scanf -1 કરો. ./scanf-1. શબ્દમાળા કરો. માતાનો, કંઈક આપવા દો "હેલો." "નલ માટે આભાર." હમ્મ, તે નથી હું શું અપેક્ષા હતી. તેથી શું અહીં ચાલી રહ્યું છે? અમે જાહેર છે, કારણ કે ઠીક છે, તે તારણ ઓ ચાર રચે સ્ટાર પરંતુ અમે કર્યું ખરેખર એક ની સરનામા s માં સંગ્રહિત મેમરી વાસ્તવિક ભાગ, scanf ન હતી શબ્દમાળા મૂકી ગમે ત્યાં હોય કે વપરાશકર્તા સાઇન ટાઇપ ખરેખર, વપરાશકર્તા તો હવે લખો "હેલો" કરતાં ખૂબ લાંબા સમય સુધી શબ્દમાળા દાખલા તરીકે કેટલાક લખાણ લીટીઓ અથવા લખાણ કેટલાક ફકરા, તે ખૂબ છે અમે પ્રેરિત શકે એ શક્ય એક સેગ્મેન્ટેશન ક્ષતિમાં કહેવાતા. Scanf ખબર નથી જઈ રહ્યા છે કારણ કે હું ખરેખર એક સરનામું મૂકી છે એ ની અંદર. તેના બદલે, તે અમુક મૂલ્ય જોવા માટે ચાલી રહ્યું છે એ માં, કેટલાક પેટર્ન બીટ્સ કે કરી શકે છે ખૂબ જ સારી રીતે એક કચરો કિંમત હોઈ શકે છે, ત્યાં માત્ર તક દ્વારા. અને હજુ પણ છે scanf લખવા પ્રયત્ન રહ્યું છે તે સરનામા માટે વપરાશકર્તા શબ્દમાળા, તે કચરો કિંમત, હોય તો પણ જે ખરેખર ભંગાણ પ્રેરિત કરી શકે છે. કેવી રીતે અમે આ ઠીક જવું છે?