اسپیکر 1: ایک پروگرام لکھتے ہیں کہ بغیر صارف سے ایک تار ہو جاتا ہے CS50 لائبریری کا استعمال کرتے ہوئے GetString تقریب. ایسا کرنے کے لئے، ہم آگے بڑھیں اور استعمال کریں گے scanf، تقریب اس GetString کے تقریب کے اصل کا استعمال کرتا ہے ہڈ کے نیچے. لیکن میں نے جان بوجھ کر ایسا کرنے کے لئے جا رہا ہوں ایک چھوٹی گاڑی کے راستے میں. مجھے لگتا ہے کہ ایک طرح سے کرنے جا رہا ہوں ٹھیک ہو جائے، لیکن یہ پتہ چلا ہے کہ میری مفروضہ جا رہا ہے بہت، بہت غلط ہو. اور حقیقت میں، بہت خطرناک. کیونکہ میں کے بارے میں ہوں ایک طرح کیڑے دشمنوں کی طرف سے استحصال کیا جا سکتا ہے اس طرح ہے کہ آپ کی مشین یا آپ کے پروگرام ممکنہ طور پر لیا جا سکتا ہے. مندرجہ ذیل چلو شروع کرتے ہیں. سب سے پہلے ہمارے سٹرنگ کا اعلان کرتے ہیں، دوسری صورت میں، ایک چار سٹار کے طور پر اب جانا جاتا ہے اور اس ے کال. اگلا ایک تار کے لئے صارف کو فوری طور اجازت دیتا ہے، "براہ کرم سٹرنگ." کے ساتھ کے طور پر اور اب صارف سے تار حاصل unquote جو اقتباس، "٪ s کو."، scanf کا استعمال کرتے ہوئے میں دوسرے الفاظ میں، کی ہے کہ ہم scanf مطلع دو حقیقت میں ایک تار کو حاصل کرنے کی توقع ہے صارف کی طرف سے. لیکن اب ہم scanf بتانے کی ضرورت ایک اور چیز - تار ڈال کہ جہاں صارف فراہم کرتا ہے. ٹھیک ہے، میں بہت آسانی سے شروع کرنے کے لئے جا رہا ہوں کوما کی، میں چاہوں گا کہ اس کی وضاحت کے ساتھ scanf وہاں سٹرنگ ڈال. میں اگلے کچھ باہر پرنٹ کرنے کے لئے جا رہا ہوں ٪ s کو لیے printf "شکریہ الٹا سلیش کوما ن. "اور ہمیشہ کی طرح، میں ہوں سٹرنگ، ے میں منتقل کرنے کے لئے جا رہا. اب، آپ کو بچائے مرتب، اور اس کے چلانے ہم دلانا نہیں کر سکتے ہیں پروگرام، اور دیکھو مسئلہ میں نے پیش گوئی کی ہے. scanf 1 بنائیں. ./scanf-1. جملہ براہ مہربانی. کی، طرح کچھ فراہم کرتے ہیں "ہیلو." "شہوت انگیز null کے لئے شکریہ." ہمم، یہ ہے کہ نہیں ہے میں امید کر رہا تھا کیا. تو کیا یہاں کیا ہو رہا ہے؟ ہم نے اعلان کیا ہے کیونکہ ٹھیک ہے، یہ پتہ چلتا ہے ایک چار سٹار کے طور پر ہم نے نہیں کیا اصل میں ایک کا پتہ ایس میں محفوظ میموری کی اصل حصہ، scanf نہیں کیا تار ڈال کہیں ہے کہ اندر ٹائپ صارف بے شک، صارف تھے تو اب میں ٹائپ کرنے "ہیلو" سے ایک بہت طویل سٹرنگ مثال کے طور پر کئی متن کی لائنوں یا متن کی کئی پیرا، یہ بہت ہے ہم دلانا ہو سکتا ہے کہ ممکن ہے ایک انقطاع غلطی نام نہاد. scanf جاننا نہیں جا رہا ہے کیونکہ اس میں اصل میں ایک ایڈریس ڈال نہیں ہے ے کے اندر. بلکہ، یہ کچھ قیمت کو دیکھنے کے لئے جا رہا ہے ے میں، میں سے کچھ پیٹرن کی بٹس کہ مئی بہت اچھی طرح سے ردی کی ٹوکری کی قیمت ہو، وہاں صرف موقع کی طرف سے. اور scanf اب بھی لکھنے کی کوشش کی جا رہی ہے اس ایڈریس پر صارف سلک، یہ ردی کی ٹوکری کی قیمت، ہے، چاہے جس یقینا ایک حادثے دلانا کر سکتے ہیں. تو ہم یہ کیسے طے کرنے کے لئے جا رہے ہیں؟