1 00:00:00,000 --> 00:00:00,340 2 00:00:00,340 --> 00:00:01,960 >> বক্তা 1: এর এখন ঠিক করি যে গত প্রোগ্রাম. 3 00:00:01,960 --> 00:00:04,920 এবং এই সময়, এর স্পষ্টভাবে বরাদ্দ দেওয়া কিছু স্মৃতি যা 4 00:00:04,920 --> 00:00:06,550 ব্যবহারকারীর ইনপুট সংরক্ষণ করা হবে. 5 00:00:06,550 --> 00:00:09,600 এটা করার জন্য, এর যে প্রথম প্রথম এ শান - পাথার যাক আমরা গুলি ঘোষিত যেখানে কোড লাইন 6 00:00:09,600 --> 00:00:11,590 পূর্বে একটি গৃহস্থালি তারকা হতে. 7 00:00:11,590 --> 00:00:14,210 এই সময়, এর যাক পুনরায় ঘোষণা তা নিম্নরূপ - 8 00:00:14,210 --> 00:00:19,380 গৃহস্থালির কাজ গুলি বন্ধনী 16, উদাহরণস্বরূপ, বন্ধ বন্ধনী. 9 00:00:19,380 --> 00:00:23,690 >> অর্থাৎ, এর কোন যাও গুলি ঘোষণা দেওয়া আর একটি চরিত্রের একটি ঠিকানা, 10 00:00:23,690 --> 00:00:26,610 কিন্তু 16 অক্ষরের পরিবর্তে একটি অ্যারে. 11 00:00:26,610 --> 00:00:30,295 এই পথ, ব্যবহারকারীর পর্যন্ত 15 টাইপ করতে পারেন অক্ষর এবং এখনও জন্য রুম ছেড়ে 12 00:00:30,295 --> 00:00:31,570 একটি নাল টারমিনেটর. 13 00:00:31,570 --> 00:00:35,870 সংরক্ষণ করুন এর এগিয়ে যাওয়া যাক, কম্পাইল, এবং এই প্রোগ্রাম চালান. 14 00:00:35,870 --> 00:00:40,770 Scanf2 ডট স্ল্যাশ scanf2 করুন. 15 00:00:40,770 --> 00:00:45,100 এর এখন হ্যালো মত একটি পংক্তি টাইপ যাক, এবং আমরা হ্যালো জন্য ধন্যবাদ জানান করছি. 16 00:00:45,100 --> 00:00:46,440 >> এখন, একটি সমস্যা এখনও আছে. 17 00:00:46,440 --> 00:00:50,140 আমি কেবল মাত্র, যা হ্যালো টাইপ করা নাল জন্য পাঁচটি অক্ষর, প্লাস 1 18 00:00:50,140 --> 00:00:50,445 টারমিনেটর. 19 00:00:50,445 --> 00:00:53,610 এটা শুধুমাত্র আমাদের ছেড়ে ছয় বাইট জন্য প্রয়োজন. 20 00:00:53,610 --> 00:00:56,740 >> কিন্তু দুর্ভাগ্যক্রমে, আমরা কেবল মোট মধ্যে 16 বরাদ্দ. 21 00:00:56,740 --> 00:01:01,305 তাই আপনি যদি 16 সালে ব্যবহারকারী আসলে ধরনের অক্ষর, বা 17, বা একাধিক শত 22 00:01:01,305 --> 00:01:04,410 অক্ষর, আমরা এখনও যাচ্ছেন না জন্য মেমরির মধ্যে পর্যাপ্ত ফাঁকা স্থান আছে 23 00:01:04,410 --> 00:01:05,400 ব্যবহারকারীর ইনপুট. 24 00:01:05,400 --> 00:01:07,750 এবং সত্য, এই কি করে তোলে ব্যবহারকারীর ইনপুট পেয়ে তাই 25 00:01:07,750 --> 00:01:08,940 সাধারণভাবে কঠিন. 26 00:01:08,940 --> 00:01:12,270 আমরা বাস্তবায়িত কেন এবং প্রকৃতপক্ষে, এই হল প্রথম পেতে স্ট্রিং ফাংশন 27 00:01:12,270 --> 00:01:13,900 CS50 লাইব্রেরি জায়গা - 28 00:01:13,900 --> 00:01:16,900 যারা হ্যান্ডেল চিন্তা কিভাবে পরিস্থিতি যেখানে ব্যবহারকারী ধরনের মধ্যে 29 00:01:16,900 --> 00:01:19,710 আমরা বেশী অক্ষর প্রাথমিকভাবে অপেক্ষিত. 30 00:01:19,710 --> 00:01:21,750 >> সত্যি, ছাড়া সম্পূর্ণভাবে এই প্রোগ্রাম rewriting, 31 00:01:21,750 --> 00:01:23,290 কোন পরিষ্কার সমাধান আছে. 32 00:01:23,290 --> 00:01:26,970 বরং, আমরা কি করতে হবে পেতে হয় একটি সময়ে ব্যবহারকারী থেকে একটি অক্ষর 33 00:01:26,970 --> 00:01:28,860 সময়, আবার এবং আবার. 34 00:01:28,860 --> 00:01:32,510 এবং প্রতিটি পর্যায়ে আমরা আমরা করছি বুঝতে হলে মেমরি আউট, আমরা এ করতে হবে 35 00:01:32,510 --> 00:01:36,450 যে বিন্দু ফিরে যান এবং reallocate আরো কিছু স্মৃতি, ব্যবহারকারীর কপি 36 00:01:36,450 --> 00:01:39,400 আমাদের প্রথম খণ্ড থেকে পূর্ববর্তী ইনপুটের নতুন মধ্যে মেমরি, 37 00:01:39,400 --> 00:01:40,810 মেমরি বড় খণ্ড. 38 00:01:40,810 --> 00:01:44,610 এবং তারপর আবার যে প্রক্রিয়ার পুনরাবৃত্তি এবং ব্যবহারকারী প্রদান সম্পন্ন করা হয় আবার না হওয়া পর্যন্ত 39 00:01:44,610 --> 00:01:45,860 তার বা তার ইনপুট. 40 00:01:45,860 --> 00:01:48,246