اسپیکر 1: اب ٹھیک ہوں کہ گزشتہ پروگرام. اور اس وقت، کی واضح طور پر مختص ہیں کچھ میموری جس میں صارف کی ان پٹ ذخیرہ کیا جائے گا. ایسا کرنے کے لئے، کی کہ سب سے پہلے پر میں hone دو ہم کے اعلان جہاں کوڈ کے لائن پہلے ایک چار ستارہ ہو. اس وقت، چلو دوبارہ اعلان یہ مندرجہ ذیل کے طور پر - چار بریکٹ 16، مثال کے طور پر، بند بریکٹ. دوسرے الفاظ میں، کی کوئی ایس اعلان اب ایک کردار کی ایک پتہ، لیکن 16 حروف کے بجائے ایک صف. اس طرح، صارف 15 میں ٹائپ کر سکتے ہیں حروف اور اب بھی کے لئے کمرے میں چھوڑ شہوت انگیز null مختتم. محفوظ کرنے کے لئے کی کارروائی ہیں، مرتب، اور اس پروگرام کو چلانے. scanf2 ڈاٹ سلیش scanf2 بنائیں. اب خوش طرح ایک تار ٹائپ کریں، اور ہم خوش لئے شکریہ ادا کر رہے ہیں. اب، ایک مسئلہ اب بھی موجود ہے. میں صرف ہے جو، خوش میں ٹائپ شہوت انگیز null لئے پانچ حروف، کے علاوہ 1 ٹرمنیٹر. یہ صرف کے ساتھ ہمیں چھوڑ دیتا ہے چھ بائٹس کی ضرورت. لیکن بدقسمتی سے، ہم صرف کل میں 16 مختص. تو اگر 16 میں صارف اصل اقسام حروف، یا 17، یا کئی سو حروف، ہم اب بھی نہیں کر رہے ہیں کے لئے میموری میں کافی کمرے ہے صارف کی ان پٹ. اور حقیقت میں، یہ بناتا ہے کیا ہے صارف کی ان پٹ حاصل کرنے کے تو عام طور پر مشکل. ہم عملدرآمد کیوں اور یقینا، یہ ہے سب سے پہلے میں حاصل سٹرنگ تقریب CS50 لائبریری میں جگہ - ان کو ہینڈل کرنے میں کس طرح کے اعداد و شمار حالات جہاں صارف اقسام میں ہم زیادہ سے زیادہ حروف ابتدائی طور پر متوقع. سچ کہوں تو، بغیر مکمل طور پر اس پروگرام کو پھر سے لکھنا، صاف حل ہے. بلکہ، ہمیں کیا کرنا ہوگا حاصل ہے ایک صارف ایک سے ایک کردار وقت، بار بار. اور ہر موڑ پر ہم ہیں احساس تو میموری سے باہر، ہم کرنا پڑے گا اس نقطہ میں واپس جاؤ اور reallocate کچھ زیادہ میموری، صارف کی نقل ہمارے پہلے حصہ سے گزشتہ ان پٹ نئے میں میموری کی، میموری کے بڑے حصہ. اور پھر اس عمل کو دوبارہ اور صارف فراہم کیا ہے پھر جب تک اس کا یا اس کی ان پٹ.