1 00:00:00,000 --> 00:00:01,110 >> [সঙ্গীত বাজানো] 2 00:00:01,110 --> 00:00:10,567 3 00:00:10,567 --> 00:00:11,650 ডেভিড জে MALAN: ঠিক আছে. 4 00:00:11,650 --> 00:00:15,610 এটি CS50, এবং এই চার সপ্তাহ শেষে. 5 00:00:15,610 --> 00:00:19,420 এবং বিষয় আজ এক ডিজিটাল ফরেনসিক যে, হয় 6 00:00:19,420 --> 00:00:20,989 তথ্য পুনরুদ্ধার শিল্প. 7 00:00:20,989 --> 00:00:22,780 এবং প্রকৃতপক্ষে, যদিও আপনি তন্মধ্যে মধ্যে আছেন 8 00:00:22,780 --> 00:00:25,070 ডান এখন শান্তির তিনটি এবং ব্রেকআউট, আগামী সপ্তাহে, 9 00:00:25,070 --> 00:00:27,880 ফোকাস হতে হবে অবিকল এই ডোমেইন. 10 00:00:27,880 --> 00:00:30,686 >> কখনই কাজ তাই এক আমি কখনও ছিল, ফিরে স্নাতক স্কুলে ছিল 11 00:00:30,686 --> 00:00:33,560 আমি স্থানীয় জন্য কাজ ছিল যখন মিডলসেক্স কাউন্টি জেলা অ্যাটর্নি 12 00:00:33,560 --> 00:00:34,950 অফিস করছেন ফরেনসিক কাজ. 13 00:00:34,950 --> 00:00:37,450 তাই মূলত, ম্যাসাচুসেটস রাজ্য পুলিশ, অনুষ্ঠানে, 14 00:00:37,450 --> 00:00:40,100 ক্ষেত্রে কাজ করবে হার্ড ড্রাইভ ভালো জিনিস আনা 15 00:00:40,100 --> 00:00:42,185 এবং ফ্লপি ডিস্ক এবং মেমরি কার্ড এবং ভালো. 16 00:00:42,185 --> 00:00:44,060 এবং তারা তাদের হাতে হবে আমার এবং আমার পরামর্শদাতা যাও, 17 00:00:44,060 --> 00:00:48,070 এবং আমাদের লক্ষ্য প্রমাণ খুঁজে বের করতে, এই মিডিয়া কোন, যদি সেখানে ছিল. 18 00:00:48,070 --> 00:00:50,700 এখন, আপনি দেখা হতে পারে ঝলক ফরেনসিক এই বিশ্বের 19 00:00:50,700 --> 00:00:53,000 মিডিয়া, টিভি এবং সিনেমা. 20 00:00:53,000 --> 00:00:55,730 কিন্তু কাজ আমি ছিল, এবং অনুমান করা বিশ্বের যে, 21 00:00:55,730 --> 00:00:57,550 আপনি এটা দেখতে চাই বেশ হয় না. 22 00:00:57,550 --> 00:01:00,794 এর কটাক্ষপাত করা যাক কি আপনি সম্ভবত করেছি দেখা যায়. 23 00:01:00,794 --> 00:01:01,460 [ভিডিও প্লেব্যাক] 24 00:01:01,460 --> 00:01:02,930 -ওকে. 25 00:01:02,930 --> 00:01:05,380 এখন, আপনি একটি ভাল চেহারা পেতে. 26 00:01:05,380 --> 00:01:06,850 >> [সঙ্গীত বাজানো] 27 00:01:06,850 --> 00:01:12,260 28 00:01:12,260 --> 00:01:12,932 >> এটা হোল্ড. 29 00:01:12,932 --> 00:01:13,657 যে ফিরে চালান. 30 00:01:13,657 --> 00:01:14,733 >> একটি মিনিট অপেক্ষা করুন. 31 00:01:14,733 --> 00:01:15,233 ডান যান. 32 00:01:15,233 --> 00:01:16,371 33 00:01:16,371 --> 00:01:16,870 এখন পর্যন্ত. 34 00:01:16,870 --> 00:01:17,369 যে বরফে পরিণত করা. 35 00:01:17,369 --> 00:01:17,930 সম্পূর্ণ পর্দা. 36 00:01:17,930 --> 00:01:18,376 >> -ওকে. 37 00:01:18,376 --> 00:01:18,875 যে বরফে পরিণত করা. 38 00:01:18,875 --> 00:01:20,160 আপনি, যে আপ -Tighten? 39 00:01:20,160 --> 00:01:22,126 >> যে উপর -ভেক্টর ফিরে চাকা দ্বারা লোক. 40 00:01:22,126 --> 00:01:24,435 >> এখানে ডান এই স্পট ইন জুম. 41 00:01:24,435 --> 00:01:28,580 >> ডান সরঞ্জাম সহ, ইমেজ এবং বৃদ্ধ শাণিত করা যাবে. 42 00:01:28,580 --> 00:01:29,330 >> যে -কি আছে? 43 00:01:29,330 --> 00:01:30,780 >> -এটা একটি বর্ধিতকরণ প্রোগ্রাম. 44 00:01:30,780 --> 00:01:32,170 >> যে কোন স্পষ্ট করতে পারি? 45 00:01:32,170 --> 00:01:33,070 >> আমি জানি না. 46 00:01:33,070 --> 00:01:34,150 এটা উন্নত করা যাক. 47 00:01:34,150 --> 00:01:35,440 >> -উন্নত অনুচ্ছেদ থেকে A6. 48 00:01:35,440 --> 00:01:36,570 49 00:01:36,570 --> 00:01:38,562 আমি বিস্তারিত উন্নত, and-- 50 00:01:38,562 --> 00:01:40,020 আমি উন্নত যথেষ্ট আছে মনে হয়. 51 00:01:40,020 --> 00:01:40,976 আমার পর্দায় এটি মুক্ত. 52 00:01:40,976 --> 00:01:42,559 >> আমি তার চোখে প্রতিফলন উন্নত. 53 00:01:42,559 --> 00:01:44,322 -যাক মাধ্যমে এই রান এর ভিডিও বৃদ্ধি. 54 00:01:44,322 --> 00:01:45,210 >> -Edgar, আপনি এই উন্নত করতে পারেন? 55 00:01:45,210 --> 00:01:45,710 >> উপর -Hang. 56 00:01:45,710 --> 00:01:47,570 57 00:01:47,570 --> 00:01:49,458 >> এই প্রতিফলন কাজ হয়েছে -I've. 58 00:01:49,458 --> 00:01:50,402 >> এখন পর্যন্ত এর কেউ এর প্রতিফলন. 59 00:01:50,402 --> 00:01:50,902 >> -Reflection. 60 00:01:50,902 --> 00:01:52,870 মানুষের মুখের একটি প্রতিফলন এখন পর্যন্ত আছে. 61 00:01:52,870 --> 00:01:53,694 >> -বাছাইযোগ্য প্রতিফলন! 62 00:01:53,694 --> 00:01:54,610 একটি প্রতিফলন এখন পর্যন্ত আছে. 63 00:01:54,610 --> 00:01:55,880 আয়না ইন জুম. 64 00:01:55,880 --> 00:01:57,860 আপনি একটি প্রতিফলন দেখতে পারেন. 65 00:01:57,860 --> 00:01:59,630 >> আপনি এখানে থেকে ইমেজ উন্নত পারি? 66 00:01:59,630 --> 00:02:00,377 67 00:02:00,377 --> 00:02:01,210 যদি আপনি এটি উন্নত পারি? 68 00:02:01,210 --> 00:02:02,190 যদি আপনি এটি উন্নত পারি? 69 00:02:02,190 --> 00:02:03,066 আমরা এই উন্নত পারি? 70 00:02:03,066 --> 00:02:03,898 যদি আপনি এটি উন্নত পারি? 71 00:02:03,898 --> 00:02:04,740 একটি দ্বিতীয় হোল্ড. 72 00:02:04,740 --> 00:02:05,281 আমি উন্নত করব. 73 00:02:05,281 --> 00:02:06,470 দরজা ইন জুম. 74 00:02:06,470 --> 00:02:06,970 10 -টাইমস. 75 00:02:06,970 --> 00:02:08,009 জুম. 76 00:02:08,009 --> 00:02:08,509 মধ্যে সরান. 77 00:02:08,509 --> 00:02:09,340 আরো. 78 00:02:09,340 --> 00:02:10,094 -Wait, বন্ধ. 79 00:02:10,094 --> 00:02:10,750 -Stop. 80 00:02:10,750 --> 00:02:11,250 এটা -বিরাম. 81 00:02:11,250 --> 00:02:13,542 আমাদের 75 ডিগ্রী ঘোরান উল্লম্ব কাছাকাছি, দয়া করে. 82 00:02:13,542 --> 00:02:14,750 83 00:02:14,750 --> 00:02:16,127 >> -Stop. 84 00:02:16,127 --> 00:02:19,330 অংশ ফিরে যান দরজা আবার. 85 00:02:19,330 --> 00:02:21,420 >> বিটম্যাপ করতে পারেন যে একটি ইমেজ enhancer পেয়েছেন? 86 00:02:21,420 --> 00:02:24,420 >> আমরা প্রদীপ সিং ব্যবহার করতে পারেন -Maybe পদ্ধতি জানালা মধ্যে দেখুন. 87 00:02:24,420 --> 00:02:25,902 >> স্বয়ংক্রিয়ভাবে সফ্টওয়্যার শিল্পের রাষ্ট্র. 88 00:02:25,902 --> 00:02:26,866 >> -বাছাইযোগ্য Eigenvalue বন্ধ. 89 00:02:26,866 --> 00:02:29,758 >> ডান -সঙ্গে আলগোরিদিম সমন্বয় 90 00:02:29,758 --> 00:02:32,168 >> -তিনি এর নেওয়া আলোকসজ্জা পরবর্তী স্তরে আলগোরিদিম, 91 00:02:32,168 --> 00:02:34,110 এবং আমি তাদের ব্যবহার করতে পারেন এই আলোকচিত্র উন্নত. 92 00:02:34,110 --> 00:02:36,840 >> উপর লক এবং z-অক্ষ বিস্তৃত. 93 00:02:36,840 --> 00:02:37,351 >> উন্নত. 94 00:02:37,351 --> 00:02:37,850 উন্নত. 95 00:02:37,850 --> 00:02:38,720 উন্নত. 96 00:02:38,720 --> 00:02:40,070 -ফ্রিজ এবং উন্নত. 97 00:02:40,070 --> 00:02:43,420 [END টি ভিডিও প্লেব্যাক] 98 00:02:43,420 --> 00:02:45,830 ডেভিড জে MALAN: তাই যারা সব শব্দ, কিন্তু তারা ছিল না 99 00:02:45,830 --> 00:02:47,870 সঠিকভাবে বাক্য ব্যবহার করা. 100 00:02:47,870 --> 00:02:52,370 এবং প্রকৃতপক্ষে ভবিষ্যতে যে কোনো সময়, , যদি আপনি কাউকে কথা বলতে শুনতে দয়া করে, 101 00:02:52,370 --> 00:02:54,250 শুধু একটি সামান্য বিট মৃদুহাস্য, "উন্নত". 102 00:02:54,250 --> 00:02:57,190 আপনি উন্নত করতে চেষ্টা করুন, কারণ, উদাহরণস্বরূপ, এই কি ঘটবে. 103 00:02:57,190 --> 00:02:58,580 >> তাই এখানে একটি চমত্কার ছবির জন্য. 104 00:02:58,580 --> 00:02:59,720 এই CS50 এর নিজস্ব Daven হয়. 105 00:02:59,720 --> 00:03:03,740 এবং আমরা চেয়েছিলেন তার চোখে ঝিকিমিকি উপর ফোকাস, 106 00:03:03,740 --> 00:03:05,870 বা প্রতিফলন স্পষ্ট ছিল যে খারাপ লোক 107 00:03:05,870 --> 00:03:07,820 নিরাপত্তা ক্যামেরা দ্বারা বন্দী. 108 00:03:07,820 --> 00:03:10,330 এই কি যখন হয় আপনি একটি ইমেজ জুম যে 109 00:03:10,330 --> 00:03:14,060 শুধুমাত্র একটি নির্দিষ্ট নম্বর আছে এর সঙ্গে যুক্ত বিট. 110 00:03:14,060 --> 00:03:15,420 >> আপনি যে পেতে হবে কি না. 111 00:03:15,420 --> 00:03:19,190 এবং প্রকৃতপক্ষে, Daven চোখে হয়তো, ছয় পিক্সেল কিন্তু চার 112 00:03:19,190 --> 00:03:22,110 যে ঠিক কি রচনা সেখানে ক্ষীণ আলোক ছিল. 113 00:03:22,110 --> 00:03:25,890 সুতরাং সমস্যা সেট চার পরিণামে হবে আপনি বিশেষ করে, এই বিশ্বের অন্বেষণ 114 00:03:25,890 --> 00:03:28,090 কিছু প্রকৃতি দ্বারা আমরা ফাইল ইনপুট / আউটপুট, যেখানে কল 115 00:03:28,090 --> 00:03:31,000 I / O শুধু একটি অভিনব উপায় ইনপুট এবং আউটপুট বলছে. 116 00:03:31,000 --> 00:03:34,280 >> সুতরাং এ পর্যন্ত, পারস্পরিক ক্রিয়ার সব আমরা একটি কম্পিউটারের সাথে ছিল করেছি 117 00:03:34,280 --> 00:03:36,770 সঙ্গে মূলত হয়েছে আপনার কীবোর্ড এবং পর্দা, 118 00:03:36,770 --> 00:03:40,770 কিন্তু হার্ড ডিস্ক সঙ্গে এত না, বা বেশী অতিক্রম ফাইল সংরক্ষণ আপনি 119 00:03:40,770 --> 00:03:41,620 নিজের লিখুন. 120 00:03:41,620 --> 00:03:44,570 আপনার প্রোগ্রাম আছে দূর পর্যন্ত না, তৈরি করা, এবং সংরক্ষণ করা হয়েছে 121 00:03:44,570 --> 00:03:46,270 এবং তাদের নিজস্ব ফাইল আপডেট করা. 122 00:03:46,270 --> 00:03:47,150 >> ওয়েল, একটি ফাইল কি? 123 00:03:47,150 --> 00:03:48,105 ওয়েল, কোন JPEG ভালো কিছু. 124 00:03:48,105 --> 00:03:50,520 এই আপনি পারে একটি ইমেজ আছে বা ফেসবুকে আপলোড, 125 00:03:50,520 --> 00:03:51,690 বা যে কোন জায়গায় ওয়েবে দেখতে. 126 00:03:51,690 --> 00:03:54,460 প্রকৃতপক্ষে, যে ছবির আমরা শুধু Daven মধ্যে দেখেছি কোন JPEG ছিল. 127 00:03:54,460 --> 00:03:57,570 এবং কি আকর্ষণীয় JPEGs মত ফাইল সম্পর্কে 128 00:03:57,570 --> 00:04:02,170 তারা চিহ্নিত করা যায় যে, সাধারণত, বিট নির্দিষ্ট নিদর্শন দ্বারা. 129 00:04:02,170 --> 00:04:05,200 >> অন্য কথায়, যে এটা কি একটি জিআইএফ থেকে কোন JPEG আলাদা 130 00:04:05,200 --> 00:04:08,109 একটি বাক্য থেকে একটি পিং থেকে একটি এক্সেল ফাইল থেকে নথি? 131 00:04:08,109 --> 00:04:09,900 ওয়েল, এটা ঠিক আলাদা বিট নিদর্শন. 132 00:04:09,900 --> 00:04:12,820 এবং যারা বিভিন্ন নিদর্শন সাধারণত যারা ফাইল শুরু. 133 00:04:12,820 --> 00:04:18,200 >> আপনার কম্পিউটার একটি শব্দ প্রর্দশিত হবে, যাতে যখন ডক, বা একটি কম্পিউটার একটি JPEG প্রর্দশিত যখন, 134 00:04:18,200 --> 00:04:20,940 এটি সাধারণত দেখায় ফাইলের প্রথম কয়েক বিট. 135 00:04:20,940 --> 00:04:24,059 এবং এটি একটি প্যাটার্ন যদি স্বীকার করে, এটা ওহ, এই একটি ইমেজ, বলছেন. 136 00:04:24,059 --> 00:04:25,850 আমার এটা প্রদর্শন করা যাক একটি গ্রাফিক হিসাবে ব্যবহারকারী. 137 00:04:25,850 --> 00:04:27,870 অথবা, ওহ, এই একটি শব্দ ডক মত দেখায়. 138 00:04:27,870 --> 00:04:30,480 আমাকে একটি প্রবন্ধ হিসাবে ব্যবহারকারী এটি প্রদর্শন করা যাক. 139 00:04:30,480 --> 00:04:33,020 >> সুতরাং উদাহরণস্বরূপ, কি JPEGs, এটি সক্রিয় আউট 140 00:04:33,020 --> 00:04:35,460 মোটামুটি অত্যাধুনিক ফণা নীচে. 141 00:04:35,460 --> 00:04:40,140 কিন্তু সবচেয়ে প্রতি প্রথম তিন বাইট কোন JPEG এই তিনটি সংখ্যা দিয়ে শুরু. 142 00:04:40,140 --> 00:04:44,680 তাই বাইট শূন্য, এক, দুই এবং, হয় সবচেয়ে প্রতি কোন JPEG, 255, তারপর সংখ্যা 143 00:04:44,680 --> 00:04:46,675 216 তারপর, সংখ্যা 255. 144 00:04:46,675 --> 00:04:48,990 >> এবং যদি আপনি পারবেন কি আগামী সপ্তাহে কাজ শুরু 145 00:04:48,990 --> 00:04:52,920 আসলে নীচে খোঁচা হয় JPEGs মত ফাইল ফণা 146 00:04:52,920 --> 00:04:57,210 এবং বিটম্যাপ ফাইল, এবং এইজন্য কি সবসময় হিসাবে দীর্ঘ জন্য আছে এর 147 00:04:57,210 --> 00:04:58,650 আপনি একটি কম্পিউটার ব্যবহার করে না. 148 00:04:58,650 --> 00:05:01,860 >> কিন্তু সাধারণত আছে না কি ভালো দশমিক সংখ্যার মত লেখা. 149 00:05:01,860 --> 00:05:04,620 কম্পিউটার বিজ্ঞানী না দশমিক কথা বলতে থাকে. 150 00:05:04,620 --> 00:05:06,139 তারা সত্যিই বাইনারি বলতে পারি না. 151 00:05:06,139 --> 00:05:07,930 সাধারণত, যখন আমরা চাই সংখ্যা প্রকাশ করতে, 152 00:05:07,930 --> 00:05:10,710 আসলে আমরা হেক্সাডেসিমাল ব্যবহার, যা আপনি প্রত্যাহার হতে পারে 153 00:05:10,710 --> 00:05:13,027 সমস্যা সেট, বলে, থেকে চ্যালেঞ্জ, যা এক, 154 00:05:13,027 --> 00:05:14,610 আপনি একটি ভিন্ন সিস্টেম সম্পর্কে চিন্তা করা. 155 00:05:14,610 --> 00:05:17,170 >> আমরা, অবশ্যই, পরিচিত মাধ্যমে নয় দশমিক শূন্য সঙ্গে. 156 00:05:17,170 --> 00:05:18,215 আমরা বাইনারি সম্পর্কে বললাম. 157 00:05:18,215 --> 00:05:20,710 এবং আমরা সত্যিই আছে না এখানে যে ব্যবহার 158 00:05:20,710 --> 00:05:22,470 আউট, কম্পিউটার ব্যবহার হবে. 159 00:05:22,470 --> 00:05:24,900 কিন্তু প্রোগ্রামারদের খুব ইচ্ছা প্রায়ই, কিন্তু সবসময় নয়, 160 00:05:24,900 --> 00:05:29,360 ঠিক, যার মানে হেক্সাডেসিমেল ব্যবহার আপনি আপনার বর্ণমালার 16 অক্ষর আছে 161 00:05:29,360 --> 00:05:31,330 দুই বা 10 বিরোধিতা. 162 00:05:31,330 --> 00:05:34,530 >> সুতরাং কিভাবে আপনি উচ্চ গণনা না হেক্সাডেসিমেল নয় আর? 163 00:05:34,530 --> 00:05:41,120 আপনি যান 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, একটি, শুধু প্রচল সি, ডি, ই, এফ, এ, বি. 164 00:05:41,120 --> 00:05:43,540 কিন্তু কি কী প্রতিটি হয় এই একটি একক প্রতীক. 165 00:05:43,540 --> 00:05:44,340 কোন 10 পর্যন্ত. 166 00:05:44,340 --> 00:05:48,400 প্রতিটি কারণ, কোন 11, কোনটাই নেই আপনার সংখ্যা, শুধু দশমিক পছন্দ 167 00:05:48,400 --> 00:05:51,940 শুধু বাইনারি মত এবং, ঠিক করা উচিত কনভেনশন দ্বারা একটি একক চরিত্র, হতে হবে. 168 00:05:51,940 --> 00:05:55,280 >> তারপর আমরা বর্ণমালা, যাতে হেক্সাডেসিমেল জন্য আমাদের নিষ্পত্তি. 169 00:05:55,280 --> 00:05:58,600 তাই কোন JPEG আপনি যদি মত চেহারা না যারা প্রথম তিন লেখে ছিল 170 00:05:58,600 --> 00:06:01,980 দশমিক হিসাবে না বাইট কিন্তু উদাহরণস্বরূপ, হেক্সাডেসিমাল হিসাবে? 171 00:06:01,980 --> 00:06:03,640 এবং কেন হেক্স যে দরকারী, এমনকি সব? 172 00:06:03,640 --> 00:06:05,290 >> ওয়েল, একটি উদাহরণ এ দ্রুত বর্ণন. 173 00:06:05,290 --> 00:06:09,030 আমি বিট আউট লিখুন, তাই যদি যে এই দশমিক সংখ্যার প্রতিনিধিত্ব 174 00:06:09,030 --> 00:06:12,450 এই একটি সামান্য বিরক্ত হতে পারে এখন ফিরে কয়েক সপ্তাহ থেকে, 175 00:06:12,450 --> 00:06:14,820 বাম এবং কিন্তু সঠিক বেশ সহজ হয়. 176 00:06:14,820 --> 00:06:17,990 255 বৃহত্তম সংখ্যা আমরা ছিল আট বিট সঙ্গে প্রতিনিধিত্ব করতে পারে. 177 00:06:17,990 --> 00:06:18,820 এটা সব বেশী ছিল. 178 00:06:18,820 --> 00:06:21,320 তাই আস্তে যে শুধুমাত্র এক আকর্ষণীয় মধ্যম এক. 179 00:06:21,320 --> 00:06:24,700 এবং আপনি যে ধরনের আউট করতে হলে গণিত, আপনি প্রকৃতপক্ষে, যে অনুমান করা হবে 180 00:06:24,700 --> 00:06:27,949 এক যে প্যাটার্ন এবং শূন্য 216 প্রতিনিধিত্ব করে. 181 00:06:27,949 --> 00:06:30,240 তাই আসুন শুধু জন্য চুক্তির শর্ত দেওয়া এখন এই সঠিক হয়. 182 00:06:30,240 --> 00:06:31,730 কিন্তু কেন এই আকর্ষণীয়? 183 00:06:31,730 --> 00:06:33,970 >> ওয়েল, একটি বাইট, অবশ্যই, আট বিট. 184 00:06:33,970 --> 00:06:38,980 এবং এটি যদি আপনি মনে করেন যে সক্রিয় আউট চার বিট দুই অংশ হিসাবে একটি বাইট, 185 00:06:38,980 --> 00:06:39,500 এই মত. 186 00:06:39,500 --> 00:06:41,000 আমার কিছু কিছু স্থান যোগ করা যাক. 187 00:06:41,000 --> 00:06:42,550 তাই আগে পরে. 188 00:06:42,550 --> 00:06:46,520 আমি শুধু কিছু সাদা স্পেস যোগ করেছি এখানে কল্পনা এর অনুরোধে. 189 00:06:46,520 --> 00:06:51,840 কিভাবে আমরা এখন উপস্থাপন করা হতে পারে, বলে, হেক্সাডেসিমেল প্রতিটি বিট চতুর্ভুজ, 190 00:06:51,840 --> 00:06:52,880 চার বিট প্রতিটি সেট? 191 00:06:52,880 --> 00:06:56,420 >> উদাহরণস্বরূপ, বাম, তাই এখন, আমরা বাইনারি মধ্যে 1111 আছে. 192 00:06:56,420 --> 00:07:00,420 দশমিক সংখ্যা যে কি, আপনি গণিত আউট না? 193 00:07:00,420 --> 00:07:03,780 আপনি বেশী জায়গা আছে, দুই দুই জায়গা, হামাগুড়ি দিয়া জায়গা, এবং Eights জায়গা. 194 00:07:03,780 --> 00:07:04,341 >> শ্রোতা: 15. 195 00:07:04,341 --> 00:07:05,340 ডেভিড জে MALAN: 15 এর. 196 00:07:05,340 --> 00:07:08,340 তাই আমরা আট প্লাস চার যদি প্লাস দুই প্লাস এক, আমরা 15 পেতে. 197 00:07:08,340 --> 00:07:11,790 তাই আমি নিচে 15 নিচে লিখতে পারেন 1111, কিন্তু এখানে পুরো পয়েন্ট 198 00:07:11,790 --> 00:07:13,190 হেক্সাডেসিমেল হয়, দশমিক না. 199 00:07:13,190 --> 00:07:17,310 তাই নিচে লেখা 15, 1-5, আমি, হেক্স মধ্যে যে লিখতে যাচ্ছি 200 00:07:17,310 --> 00:07:22,311 আপনি, যদি আপনি আবার মনে হয়, যা চ মাধ্যমে শূন্য, কি 15 হতে যাচ্ছে? 201 00:07:22,311 --> 00:07:22,810 শ্রোতা: চ. 202 00:07:22,810 --> 00:07:24,434 ডেভিড জে MALAN: এটা এটা চ দেখা যাচ্ছে. 203 00:07:24,434 --> 00:07:29,140 এবং আপনি বলার অপেক্ষা রাখে না যে কাজ করতে পারেন, 10 যদি ভাল, তারপর, ঠিক আছে, চ 15. 204 00:07:29,140 --> 00:07:33,250 তাই প্রকৃতপক্ষে, আমরা নতুন করে লেখা হতে পারে চ চ সংখ্যার হিসাবে এই একই সেট. 205 00:07:33,250 --> 00:07:35,750 এবং তারপর আমরা গণিতের একটি বিট না, আমরা যে ঘ যে অনুমান করব. 206 00:07:35,750 --> 00:07:38,650 আট, বেশ সহজ কারণ আমরা Eights স্থানে একটি এক আছে. 207 00:07:38,650 --> 00:07:40,620 এবং তারপর, আমরা চ চ এর একটি দম্পতি আরো আছে. 208 00:07:40,620 --> 00:07:44,669 >> তাই মানুষের কনভেনশন দ্বারা করতে ঝোঁক তারা যখন হেক্সাডেসিমেল তারা শুধু 209 00:07:44,669 --> 00:07:47,710 আরো succinctly এই সামান্য লিখুন, যে সাদা স্থান সবচেয়ে পরিত্রাণ পেতে. 210 00:07:47,710 --> 00:07:50,890 এবং শুধু সুপার স্পষ্ট করা এই হেক্সাডেসিমেল যে পাঠক, 211 00:07:50,890 --> 00:07:54,670 মধ্যে সহজ কনভেনশন মানুষের আপনি শূন্য লিখতে হয় 212 00:07:54,670 --> 00:07:58,000 অন্য কোন অর্থ আছে, যা এক্স, একটি চাক্ষুষ আইডেন্টিফায়ার চেয়ে, 213 00:07:58,000 --> 00:07:59,590 এখানে একটি হেক্স সংখ্যা আসে. 214 00:07:59,590 --> 00:08:04,210 >> এবং তারপর, আপনি, চ দুটি সংখ্যা করা এই ক্ষেত্রে চ, তারপর ঘ, তারপর চ চ. 215 00:08:04,210 --> 00:08:06,700 তাই দীর্ঘ সংক্ষিপ্ত বিবরণ, হেক্সাডেসিমেল ঠিক থাকে 216 00:08:06,700 --> 00:08:11,990 দরকারী হতে প্রতিটি কারণ তার সংখ্যা, চ মাধ্যমে শূন্য, পুরোপুরি লাইন 217 00:08:11,990 --> 00:08:13,880 চার বিট প্যাটার্ন সঙ্গে আপ. 218 00:08:13,880 --> 00:08:18,080 >> আপনি দুই হেক্সাডেসিমেল সংখ্যা আছে সুতরাং, শূন্য আবার এবং আবার এফ, মাধ্যমে, 219 00:08:18,080 --> 00:08:20,256 যে পুরোপুরি দেয় আট বিট বা এক বাইট. 220 00:08:20,256 --> 00:08:22,380 এটি থাকে সুতরাং যে কেন সাধারনত দরকারী হতে. 221 00:08:22,380 --> 00:08:24,990 কোন বুদ্ধিজীবী নেই সত্যিই যে অতিক্রম কন্টেন্ট, 222 00:08:24,990 --> 00:08:27,010 তার প্রকৃত ইউটিলিটি তুলনায় অন্যান্য. 223 00:08:27,010 --> 00:08:29,310 >> এখন কি JPEGs শুধুমাত্র হয় না গ্রাফিক্স জন্য ফরম্যাটের ফাইল. 224 00:08:29,310 --> 00:08:33,230 আপনি আছে প্রত্যাহার করা হতে পারে বিশ্বের ভালো ফাইল, 225 00:08:33,230 --> 00:08:34,830 অন্তত কয়েক বছর ফিরে থেকে. 226 00:08:34,830 --> 00:08:37,580 >> তাই আসলে এই ছিল উইন্ডোজ এক্সপি ইনস্টল 227 00:08:37,580 --> 00:08:39,960 বিশ্বের পিসি লক্ষ লক্ষ উপর. 228 00:08:39,960 --> 00:08:43,000 এবং এই একটি বিটম্যাপ ফাইল, BMP, ছিল. 229 00:08:43,000 --> 00:08:47,690 এবং একটি বিটম্যাপ ফাইল, হিসাবে আপনি পরের দেখতে পাবেন সপ্তাহে মাত্র, বিন্দু একটি প্যাটার্ন মানে, 230 00:08:47,690 --> 00:08:51,710 তারা বলা করছি পিক্সেল, সত্যিই, বিট উপর মানচিত্রে. 231 00:08:51,710 --> 00:08:55,160 >> তাই যদিও, আকর্ষণীয়, এই ফাইল ফরম্যাট, BMP, সম্পর্কে, হয় 232 00:08:55,160 --> 00:08:58,590 ফণা নীচে যে, এটা মাত্র তিন বাইট অধিক 233 00:08:58,590 --> 00:09:01,020 যাতে, তার হেডার রচনা প্রথম কয়েক কামড় কথা বলতে. 234 00:09:01,020 --> 00:09:03,330 এটা আসলে একটু দেখায় প্রথম নজরে জটিল. 235 00:09:03,330 --> 00:09:04,704 এবং যদি আপনি পি সেট এই দেখতে পাবেন. 236 00:09:04,704 --> 00:09:06,810 এবং কিছু পেয়ে এই বিশেষ এখন আউট 237 00:09:06,810 --> 00:09:10,720 ঠিক আসলে, তাই গুরুত্বপূর্ণ নয় যে বিটম্যাপ শুরুতে 238 00:09:10,720 --> 00:09:13,823 ফাইল, একটি গ্রাফিকাল বিন্যাসে, সংখ্যার একটি আভা আছে. 239 00:09:13,823 --> 00:09:14,980 240 00:09:14,980 --> 00:09:16,720 >> এখন মাইক্রোসফট, এই বিন্যাসে লেখক, 241 00:09:16,720 --> 00:09:18,820 যারা কল থাকে কিছু না ints এবং চিহ্ন 242 00:09:18,820 --> 00:09:22,259 এবং floats কিন্তু শব্দ এবং ঘ শব্দ এবং longs এবং বাইট. 243 00:09:22,259 --> 00:09:23,800 তাই তারা শুধু বিভিন্ন ধরনের তথ্য আছেন. 244 00:09:23,800 --> 00:09:25,170 তারা বিভিন্ন নাম আছেন একই জিনিস. 245 00:09:25,170 --> 00:09:26,740 কিন্তু আপনি পি সেট চার দেখতে পাবেন. 246 00:09:26,740 --> 00:09:31,450 >> কিন্তু এই বলে যে শুধুমাত্র একটি মানুষের যদি কিছু .BMP ফাইলে ডাবল ক্লিক তার 247 00:09:31,450 --> 00:09:35,015 বা তার হার্ড ড্রাইভ, এবং একটি উইন্ডো প্রর্দশিত হবে তাকে বা তার যে ইমেজ দেখাচ্ছে আপ, 248 00:09:35,015 --> 00:09:38,500 যে অপারেটিং কারণ ঘটেছে সিস্টেম সম্ভবতঃ না শুধুমাত্র লক্ষ্য 249 00:09:38,500 --> 00:09:41,460 .BMP ফাইল এক্সটেনশন ফাইল নাম, 250 00:09:41,460 --> 00:09:45,010 কিন্তু আসলে আছে কিছু বিট প্যাটার্ন কনভেনশন 251 00:09:45,010 --> 00:09:47,490 খুব শুরুতে যে বিটম্যাপ ফাইল. 252 00:09:47,490 --> 00:09:50,270 >> কিন্তু এখন ফোকাস যেমন একটি জটিল ফাইল, 253 00:09:50,270 --> 00:09:52,120 কিন্তু এর পরিবর্তে ভালো কিছু উপর. 254 00:09:52,120 --> 00:09:55,190 আমি gedit এখানে ধরুন ঠিক সূত্রপাত আছে 255 00:09:55,190 --> 00:09:57,070 বেশ সহজ একটি প্রোগ্রাম যা. 256 00:09:57,070 --> 00:09:58,860 আমি কিছু উপরে রয়েছে পেয়েছেন. 257 00:09:58,860 --> 00:10:02,120 এখন আমি পেয়েছেন # অন্তর্ভুক্ত "structs.h" কিন্তু আমি একটি মুহূর্ত যে ফিরে পাবেন. 258 00:10:02,120 --> 00:10:03,974 কিন্তু এখন এই জন্য দরকারী. 259 00:10:03,974 --> 00:10:05,890 সুতরাং এই একটি প্রোগ্রাম যে বাস্তবায়ন করতে যাচ্ছে 260 00:10:05,890 --> 00:10:07,335 রেজিস্ট্রার এর ডাটাবেস মত. 261 00:10:07,335 --> 00:10:09,710 তাই ছাত্র একটি ডাটাবেস, এবং পৃথিবীর প্রতিটি ছাত্র 262 00:10:09,710 --> 00:10:13,190 সম্ভবত কিছু একটি নাম এবং একটি ঘর এবং আছে অন্যান্য উপাদান, কিন্তু আমরা এটা সহজ রাখা হবে. 263 00:10:13,190 --> 00:10:15,140 প্রত্যেক ছাত্র একটি নাম এবং একটি ঘর আছে. 264 00:10:15,140 --> 00:10:17,700 >> আমি একটি লিখতে চেয়েছিলেন, তাই যদি জীবনে যার উদ্দেশ্য প্রোগ্রাম 265 00:10:17,700 --> 00:10:19,860 শুধু থেকে বারবার ছিল তিন শূন্য, 266 00:10:19,860 --> 00:10:22,070 তিন ছাত্র আছে যদি হার্ভার্ড বিশ্ববিদ্যালয়ের. 267 00:10:22,070 --> 00:10:25,350 এবং আমি GetString ব্যবহার, পেতে চান, প্রতিটি ছাত্র এর নাম এবং ঘর, 268 00:10:25,350 --> 00:10:26,600 এবং তারপর শুধুমাত্র যারা প্রিন্ট আউট. 269 00:10:26,600 --> 00:10:28,630 >> এই ধরণের সপ্তাহ ভালো হয় এক, সপ্তাহ দুই জিনিস এখন, 270 00:10:28,630 --> 00:10:30,810 আমি শুধু একটি যেখানে আপনি চান লুপ বা যে মত কিছু. 271 00:10:30,810 --> 00:10:34,500 এবং আমি GetString কয়েক কল করতে চান বার, এবং তারপর একটি কয়েক বার চ মুদ্রণ. 272 00:10:34,500 --> 00:10:37,340 তাই আমি যদিও, এই কাজ করতে পারে, কিভাবে যখন একটি নাম এবং একটি ঘর উভয় 273 00:10:37,340 --> 00:10:39,070 প্রত্যেক শিক্ষার্থীর জন্য জড়িত করা হয়? 274 00:10:39,070 --> 00:10:42,830 >> তাই আমার প্রথম প্রবৃত্তি হতে পারে ভালো কিছু করতে হবে. 275 00:10:42,830 --> 00:10:49,620 আমি প্রথম ভাল, আমাকে দিতে বলতে পারে,, , নাম বলা স্ট্রিং একটি অ্যারে বলে. 276 00:10:49,620 --> 00:10:51,530 এবং আমি একটি হার্ডকোর তিন এখানে চাই না. 277 00:10:51,530 --> 00:10:53,064 আমি কি সেখানে লাগাতে চান? 278 00:10:53,064 --> 00:10:55,730 ঠিক যে কারণ, ছাত্র তাই উপরের ঘোষিত একটি ধ্রুবক, 279 00:10:55,730 --> 00:10:57,860 আমি হার্ডকোর, না আছে ঠিক তাই একাধিক জায়গায় তিনটি. 280 00:10:57,860 --> 00:11:00,859 এই ভাবে, আমি এটি এক জায়গায় পরিবর্তন করতে পারেন এবং এটা সব জায়গায় পরিবর্তন প্রভাবিত করে. 281 00:11:00,859 --> 00:11:04,470 এবং তারপর, আমি কি হতে পারে স্ট্রিং ছাত্র ঘর. 282 00:11:04,470 --> 00:11:10,250 >> এবং এখন, আমি ভালো কিছু করতে পারে আমি ছাত্র <; জন্য (আমি = 0 int i ++. 283 00:11:10,250 --> 00:11:14,390 তাই আমি দ্রুত টাইপ করছি, কিন্তু এই এখন সম্ভবত পরিচিত বাক্য গঠন. 284 00:11:14,390 --> 00:11:17,030 >> এবং এখন, এই আরো সাম্প্রতিক ছিল. 285 00:11:17,030 --> 00:11:22,890 আমি-তম রাখা করতে চান ছাত্র এর নাম, আমি এই কাজ করি. 286 00:11:22,890 --> 00:11:26,480 এবং তারপর, না নাম কিন্তু ঘর আমি বন্ধনী. 287 00:11:26,480 --> 00:11:29,930 আমি এই GetString না, এবং দিন আমাকে ফিরে যান এবং এই লাইন ঠিক করা. 288 00:11:29,930 --> 00:11:30,430 একমত? 289 00:11:30,430 --> 00:11:31,200 রাজি নই? 290 00:11:31,200 --> 00:11:32,366 এটা খুব ব্যবহারকারী বন্ধুত্বপূর্ণ না. 291 00:11:32,366 --> 00:11:33,890 আমি কি ব্যবহারকারী বলেন না. 292 00:11:33,890 --> 00:11:36,520 >> কিন্তু এখন, আমি যদি পরে, এর যাক চেয়েছিলেন 293 00:11:36,520 --> 00:11:40,060 বলে, এই জিনিস প্রিন্ট out-- তাই করণীয় পরে. 294 00:11:40,060 --> 00:11:42,330 আমি আরো সঙ্গে কাজ করতে যাচ্ছি তর্কসাপেক্ষ হয় এই আপাততঃ 295 00:11:42,330 --> 00:11:45,970 একটি সঠিক বাস্তবায়ন নাম এবং ঘর, তিনটি পেয়ে 296 00:11:45,970 --> 00:11:48,870 একটি ব্যবহারকারীর কাছ থেকে প্রতিটি তাদের মোট,. 297 00:11:48,870 --> 00:11:51,280 >> কিন্তু এই খুব ভাল নকশা অধিকার, না? 298 00:11:51,280 --> 00:11:55,220 কি একটি ছাত্র না শুধু একটি নাম আছে এবং একটি ঘর, কিন্তু একটি আইডি নম্বর, 299 00:11:55,220 --> 00:11:57,770 এবং একটি টেলিফোন নম্বর, এবং একটি ইমেইল ঠিকানা, 300 00:11:57,770 --> 00:12:00,280 এবং হয়তো হোম পৃষ্ঠা, এবং হয়তো একটি টুইটার হ্যান্ডেল, 301 00:12:00,280 --> 00:12:03,730 এবং অন্যান্য বিবরণ কোন সংখ্যা একজন ছাত্র বা একজন ব্যক্তির সঙ্গে যুক্ত, 302 00:12:03,730 --> 00:12:04,610 আরো সাধারণভাবে. 303 00:12:04,610 --> 00:12:07,720 আমরা যোগ করা শুরু করবে এই প্রোগ্রামের কার্যকারিতা? 304 00:12:07,720 --> 00:12:14,080 >> ওয়েল, আমি বল সহজ উপায় মত মনে , ভালো কিছু করতে এর কথা বলা যাক, হতে পারে, 305 00:12:14,080 --> 00:12:16,490 আইডি ছাত্র int. 306 00:12:16,490 --> 00:12:18,380 তাই আমি সেখানে তাদের সব আইডির লাগাতে পারেন. 307 00:12:18,380 --> 00:12:22,240 এবং তারপর, কিছু ফোন নম্বর মত, 308 00:12:22,240 --> 00:12:24,400 আমি কিভাবে নিশ্চিত না এখনও যে প্রতিনিধিত্ব. 309 00:12:24,400 --> 00:12:30,280 সুতরাং এর এগিয়ে এবং শুধু কল যান এই ছাত্র, TWITTERs যা 310 00:12:30,280 --> 00:12:33,550 একটু অদ্ভুত, কিন্তু আছে হয় এবং ক্ষেত্র আরো একটি গুচ্ছ. 311 00:12:33,550 --> 00:12:36,360 >> আমি কার্যকরভাবে শুরু করেছি কপি এবং এখানে পেস্ট করুন. 312 00:12:36,360 --> 00:12:39,416 এবং এই বেশ বড় হয়ে যাচ্ছে প্রশংসনীয় দ্রুত জবরজং, ডান? 313 00:12:39,416 --> 00:12:42,290 সেখানে যদি এটি চমৎকার হবে না বিশ্বের একটি ডাটা স্ট্রাকচার পরিচিত 314 00:12:42,290 --> 00:12:45,600 না কোন int অথবা একটি স্ট্রিং, কিন্তু কিছু উচ্চতর স্তর, একটি বিমূর্ততা, তাই 315 00:12:45,600 --> 00:12:47,570 একজন ছাত্র হিসাবে পরিচিত, কথা বলতে? 316 00:12:47,570 --> 00:12:50,220 সি বিল্ট ইন সঙ্গে আসে না ছাত্রদের জন্য কার্যকারিতা, 317 00:12:50,220 --> 00:12:52,260 কিন্তু আমি এটা যেমন দিতে চেয়েছিলেন কি? 318 00:12:52,260 --> 00:12:55,640 >> ওয়েল, এটা আমি যাচ্ছি, দেখা যাচ্ছে , structs.h এখানে নামক একটি ফাইল খোলার জন্য 319 00:12:55,640 --> 00:12:57,090 এবং আপনি ঠিক তা করতে পারে. 320 00:12:57,090 --> 00:12:58,290 এবং আমরা এখন এই কাজ শুরু করতে যাচ্ছেন. 321 00:12:58,290 --> 00:13:01,490 এবং পি সেট তিনটি ফণা নীচে, যদি আপনি ইতিমধ্যে এই কাজ করছি. 322 00:13:01,490 --> 00:13:05,920 একটি গ্রাম RECT যেমন জিনিস নেই বা প্রোগ্রামিং ভাষা সি একটি গ্রাম উপবৃত্তাকার 323 00:13:05,920 --> 00:13:10,570 >> স্ট্যানফোর্ড এ লোকেরা যারা বাস্তবায়ন এখানে এই পদ্ধতির ব্যবহার করে তথ্য ধরনের, 324 00:13:10,570 --> 00:13:13,900 তাদের নিজস্ব নতুন তথ্য ঘোষণা একটি নতুন শব্দ ব্যবহার করে ধরনের 325 00:13:13,900 --> 00:13:16,744 বলা struct, এবং অন্য এক বলা থেকে typedef. 326 00:13:16,744 --> 00:13:19,660 এবং প্রকৃতপক্ষে, যদিও সিনট্যাক্স স্টাফ থেকে একটু ভিন্ন মনে হচ্ছে 327 00:13:19,660 --> 00:13:23,550 আমরা, আগে দেখা করেছি নীতি, এটি সুপার সহজ. 328 00:13:23,550 --> 00:13:25,297 >> এই মাত্র "একটি টাইপ নির্ধারণ করুন." অর্থ 329 00:13:25,297 --> 00:13:27,255 এটা একটি হতে যাচ্ছে গঠন, এবং একটি গঠন 330 00:13:27,255 --> 00:13:29,400 শুধু একটি ধারক ভালো হয় একাধিক জিনিষ জন্য. 331 00:13:29,400 --> 00:13:31,780 এবং যে গঠন যাচ্ছে নাম একটি স্ট্রিং নামক আছে, 332 00:13:31,780 --> 00:13:33,210 এবং একটি স্ট্রিং ঘর বলা হয়. 333 00:13:33,210 --> 00:13:37,520 আর এর ঠিক সুবিধার জন্য, কল, এই পুরো তথ্য গঠন ছাত্র. 334 00:13:37,520 --> 00:13:40,320 >> তাই মুহূর্তে আপনি পেতে সেমিকোলন, আপনি এখন আছে 335 00:13:40,320 --> 00:13:43,280 আপনার নিজের তথ্য তৈরি বলা হয় টাইপ ছাত্র 336 00:13:43,280 --> 00:13:46,420 এখন যে কোন int পাশাপাশি দাঁড়িয়েছে এবং ভাসা, এবং গৃহস্থালির কাজ, এবং স্ট্রিং, 337 00:13:46,420 --> 00:13:50,270 এবং গ্রাম RECT, এবং গ্রাম ডিম্বাকৃতি, এবং কোনো সংখ্যা অন্যান্য জিনিস মানুষ আবিষ্কার করেছেন. 338 00:13:50,270 --> 00:13:53,340 >> তাই এই সম্পর্কে দরকারী কি এখন আমি ফিরে যেতে যদি হয় 339 00:13:53,340 --> 00:13:57,430 0 struct এবং এই শেষ আমি লিখেছি, যা বাস্তবায়ন, 340 00:13:57,430 --> 00:14:02,080 এখানে অগ্রিম, যে সব লক্ষ্য অনিবার্য messiness যে 341 00:14:02,080 --> 00:14:05,490 আমি যোগ শুরু ঘটছে সম্পর্কে ফোন নম্বর এবং Twitters এবং সব 342 00:14:05,490 --> 00:14:07,370 এই অন্যান্য বিষয় একটি ছাত্র এর সংজ্ঞা, 343 00:14:07,370 --> 00:14:11,810 এখন এটি succinctly আবৃত এর ছাত্র মাত্র এক অ্যারে হিসাবে. 344 00:14:11,810 --> 00:14:15,500 >> এবং যারা ছাত্র প্রতিটি এখন এটি ভেতরে একাধিক বিষয় আছে. 345 00:14:15,500 --> 00:14:16,930 তাই শুধু একটা প্রশ্ন ছেড়ে. 346 00:14:16,930 --> 00:14:19,700 কিভাবে আপনি নামের এ পেতে না, এবং ঘর, এবং আইডি, 347 00:14:19,700 --> 00:14:21,640 এবং অন্য যাই হোক না কেন ছাত্র ভিতরে? 348 00:14:21,640 --> 00:14:22,930 সুপার সহজ, হিসাবে ভাল. 349 00:14:22,930 --> 00:14:25,730 নতুন বাক্য গঠন, কিন্তু একটি সহজ ধারণা. 350 00:14:25,730 --> 00:14:29,239 >> অ্যারের মধ্যে আপনি কেবল সূচক, আমরা গত সপ্তাহে এবং এই করেনি. 351 00:14:29,239 --> 00:14:31,030 এবং কি পরিষ্কারভাবে এর বাক্য গঠন নতুন টুকরা? 352 00:14:31,030 --> 00:14:32,590 353 00:14:32,590 --> 00:14:35,880 শুধু., যার মানে "ভিতরে যান গঠন এবং ক্ষেত্র নামক পেতে 354 00:14:35,880 --> 00:14:39,030 নাম,, ঘর বলা ক্ষেত্র পেতে ছাত্র ক্ষেত্র বলা হবে পেতে. " 355 00:14:39,030 --> 00:14:41,940 >> তাই পি সেট তিনটি, যদি আপনি এখনও যে কাজ, 356 00:14:41,940 --> 00:14:44,020 এখনও অধিকাংশ লোকেরা , যদি আপনি বুঝতে পারি যে হয় 357 00:14:44,020 --> 00:14:46,130 ভালো জিনিস ব্যবহার শুরু গ্রাম rects এবং গ্রাম ovals 358 00:14:46,130 --> 00:14:50,201 এবং অন্যান্য জিনিস বলে মনে হচ্ছে না যে সপ্তাহ শূন্য, এক, অথবা দুই থেকে আসা, 359 00:14:50,201 --> 00:14:52,950 যে স্ট্যানফোর্ড কারণ বুঝতে পারি যে কিছু নতুন ধরনের তথ্য ঘোষণা করেন. 360 00:14:52,950 --> 00:14:56,160 >> এবং প্রকৃতপক্ষে, যে ঠিক কি আমরা করব পি সেট চার,, হিসাবে ভাল না, যখন 361 00:14:56,160 --> 00:14:59,880 আমরা জিনিষ নিয়ে শুরু ছবি, বিটম্যাপ, এবং আরো ভালো. 362 00:14:59,880 --> 00:15:02,882 যাতে মাত্র একটি টিজার এবং একটি করে আসতে হয় কি জন্য মানসিক মডেল. 363 00:15:02,882 --> 00:15:04,590 এখন, আমি গড়িমসি একটি বিট এই সকালে. 364 00:15:04,590 --> 00:15:09,560 আমি কি দেখতে ধরনের অদ্ভুত ছিল মাইক্রোসফট ওয়ালপেপার আসলে 365 00:15:09,560 --> 00:15:10,310 আজ মনে হচ্ছে. 366 00:15:10,310 --> 00:15:15,200 এবং এটি 2006 সালে কেউ সক্রিয় আউট আসলে প্রায় অবিকল গিয়েছিলাম 367 00:15:15,200 --> 00:15:19,210 একই স্পট বাস্তবে আলোকচিত্র কি এই দিন যে মত দেখায়. 368 00:15:19,210 --> 00:15:21,380 ক্ষেত্র এখন একটু প্রবৃদ্ধ. 369 00:15:21,380 --> 00:15:24,850 >> তাই ইমেজ এখন বলতে, এখানে Daven ফিরে আনা যাক 370 00:15:24,850 --> 00:15:26,890 পর্দা এবং নিকোলাস উপর, এবং শুধু আপনাকে স্মরণ করিয়ে 371 00:15:26,890 --> 00:15:30,540 যে আপনি লাঞ্চ জন্য আমাদের সঙ্গে যোগদান করতে চান তাহলে আমাদের স্বাভাবিক URL এ এই শুক্রবার, মাথা 372 00:15:30,540 --> 00:15:31,440 এখানে. 373 00:15:31,440 --> 00:15:33,530 >> তাই যেখানে আমরা সোমবার বন্ধ ছেড়ে? 374 00:15:33,530 --> 00:15:35,140 আমরা অধিকার, এই সমস্যা চালু? 375 00:15:35,140 --> 00:15:37,610 এই আপাতদৃষ্টিতে একটি সঠিক ছিল swap 'র বাস্তবায়ন, 376 00:15:37,610 --> 00:15:40,460 যেখানে আপনি দুটি ints হয় গ্রহণ এক, বি নামক এক, একটি বলা 377 00:15:40,460 --> 00:15:44,130 লরা এখানে ঠিক মত, তাদের অদলবদল দুধ এবং জল সঙ্গে মঞ্চে, 378 00:15:44,130 --> 00:15:46,820 একটি অস্থায়ী ব্যবহার করে পরিবর্তনশীল, অথবা একটি খালি কাপ, 379 00:15:46,820 --> 00:15:50,540 আমরা একটি এবং একটি মধ্যে খ করা যেতে পারে, যাতে জিনিষ একটি জগাখিচুড়ি না করে খ. 380 00:15:50,540 --> 00:15:51,560 আমরা একটি পরিবর্তনশীল ব্যবহৃত. 381 00:15:51,560 --> 00:15:52,870 এটা temp হয় বলা হচ্ছে. 382 00:15:52,870 --> 00:15:55,520 >> কিন্তু মৌলিক কি ছিল সোমবার এই কোড দিয়ে সমস্যা? 383 00:15:55,520 --> 00:15:57,700 384 00:15:57,700 --> 00:15:58,870 এখানে সমস্যা কি ছিল? 385 00:15:58,870 --> 00:16:00,106 386 00:16:00,106 --> 00:16:00,605 হ্যাঁ. 387 00:16:00,605 --> 00:16:01,970 >> শ্রোতা: এটা আরো স্থান পর্যন্ত. 388 00:16:01,970 --> 00:16:04,719 >> ডেভিড জে MALAN: আরো গ্রহণ স্থান, আমি একটি ভেরিয়েবল ব্যবহার করছি কারণ, 389 00:16:04,719 --> 00:16:05,400 এবং যে ঠিক আছে. 390 00:16:05,400 --> 00:16:07,300 এটা সত্য, কিন্তু আমি নই এটা ঠিক আছে বলে যাচ্ছে. 391 00:16:07,300 --> 00:16:10,030 এটা গ্র্যান্ড শুধুমাত্র 32 বিট জিনিস প্রকল্প, তাই একটি বড় চুক্তি. 392 00:16:10,030 --> 00:16:10,655 অন্য চিন্তা? 393 00:16:10,655 --> 00:16:12,572 শ্রোতা: এটা শুধুমাত্র বিনিময়সমূহ স্থানীয়ভাবে ভেরিয়েবল. 394 00:16:12,572 --> 00:16:13,571 ডেভিড জে MALAN: যথাযথভাবে. 395 00:16:13,571 --> 00:16:15,090 এটা শুধুমাত্র স্থানীয়ভাবে ভেরিয়েবল বিনিময়সমূহ. 396 00:16:15,090 --> 00:16:18,173 যে কোনো সময় আপনি একটি ফাংশন কল কারণ আমি Annenberg এ থেকে ট্রে ছিল 397 00:16:18,173 --> 00:16:19,840 শেষ সময়, আপনি নীচে মূল আছে. 398 00:16:19,840 --> 00:16:23,560 যত তাড়াতাড়ি আপনি একটি ফাংশন বলা কল swap 'র, swap' র x এবং y পাবেন না, 399 00:16:23,560 --> 00:16:24,400 মূল মান. 400 00:16:24,400 --> 00:16:26,392 আমরা কি দাবি হয়নি, swap 'পান? 401 00:16:26,392 --> 00:16:27,100 শ্রোতা: কপি. 402 00:16:27,100 --> 00:16:28,090 ডেভিড জে MALAN: তাদের কপি. 403 00:16:28,090 --> 00:16:31,120 সুতরাং আপনি যদি এক এবং দুই পায় শেষ সময় থেকে উদাহরণ প্রত্যাহার, 404 00:16:31,120 --> 00:16:34,730 কিন্তু এক এবং দুই একটি কপি যে সফলভাবে আনা হয়. 405 00:16:34,730 --> 00:16:38,550 কিন্তু দুর্ভাগ্যবশত শেষ, যারা মান এখনও একই. 406 00:16:38,550 --> 00:16:41,880 সুতরাং আমরা এই দেখতে পারেন আমাদের নতুন বন্ধু, আশা, GDB, 407 00:16:41,880 --> 00:16:45,180 আপনি বা টিএফএস এবং CA এর আছে নিম্নরূপ দিকে আপনি পথনির্দেশক করা হয়েছে. 408 00:16:45,180 --> 00:16:51,210 >> তাই কোন swap 'রিকল যাক ভালো দেখায় ভালো আপাততঃ সৌন্দর্য খুলুন. 409 00:16:51,210 --> 00:16:54,160 আমরা দুই, এক y, x সক্রিয়া. 410 00:16:54,160 --> 00:16:55,620 মুদ্রণ চ এর একটি গুচ্ছ ছিল. 411 00:16:55,620 --> 00:16:58,080 কিন্তু তারপর, কি কল এখানে, বিনিময় করা, যা ছিল 412 00:16:58,080 --> 00:17:00,260 ঠিক কোড আমরা শুধু একটা মুহূর্ত আগে দেখেছি. 413 00:17:00,260 --> 00:17:03,180 যা প্রথমে সঠিক এক নজরে, কিন্তু কাজের, 414 00:17:03,180 --> 00:17:06,800 এই প্রোগ্রাম কারণ কাজ করে না, এটি স্থায়ীভাবে x এবং y অদলবদল না. 415 00:17:06,800 --> 00:17:10,190 >> সুতরাং, একটি দ্রুত গরম এর এই দেখুন এখানে, GDB, একটি ./noswap সঙ্গে আপ. 416 00:17:10,190 --> 00:17:11,867 417 00:17:11,867 --> 00:17:15,200 অপ্রতিরোধ্য তথ্য একটি গুচ্ছ যে আমি এখন জন্য কন্ট্রোল এল সঙ্গে পরিত্রাণ পেতে হবে. 418 00:17:15,200 --> 00:17:17,516 এবং এখন, আমি যাচ্ছি এগিয়ে যান এবং এটি চালানোর জন্য. 419 00:17:17,516 --> 00:17:19,349 এবং দুর্ভাগ্যবশত, যে যে দরকারী ছিল না. 420 00:17:19,349 --> 00:17:22,355 এই ভিতরে প্রোগ্রাম দৌড়ে প্রোগ্রাম,, GDB, একটি ডিবাগার বলা 421 00:17:22,355 --> 00:17:23,730 কিন্তু এটা আমার প্রায় অকর্মা যাক না. 422 00:17:23,730 --> 00:17:26,229 >> আমি আসলে বিরতি করতে পারেন কিভাবে এই প্রোগ্রামের ভিতরে মৃত্যুদন্ড? 423 00:17:26,229 --> 00:17:27,410 424 00:17:27,410 --> 00:17:28,329 তাই বিরতি. 425 00:17:28,329 --> 00:17:32,340 এবং আমি কোনো বিরতি পারে লাইন সংখ্যা, এক, 10, 15. 426 00:17:32,340 --> 00:17:35,530 কিন্তু আমি প্রতীকী ভঙ্গ করতে পারেন বিরতি প্রধান বলার অপেক্ষা রাখে না. 427 00:17:35,530 --> 00:17:38,980 এবং যে একটি বিরতি সেট করতে যাচ্ছে বিন্দু, দৃশ্যত প্রধান লাইন 16 এ. 428 00:17:38,980 --> 00:17:40,050 এবং যেখানে লাইন 16 হয়? 429 00:17:40,050 --> 00:17:42,960 এর কোড পর্যন্ত যান এবং noswap পর্যন্ত যান. 430 00:17:42,960 --> 00:17:46,930 এবং প্রকৃতপক্ষে, লাইন 16 প্রথম প্রোগ্রাম. 431 00:17:46,930 --> 00:17:52,130 >> সুতরাং এখন, আমি এগিয়ে যান এবং টাইপ করুন , এই সময় চালানো লিখুন, এটি বিরাম দেওয়া. 432 00:17:52,130 --> 00:17:53,080 সুতরাং এর কাছাকাছি অকর্মা যাক. 433 00:17:53,080 --> 00:17:55,716 কেন x শূন্য হয় x-- মুদ্রণ? 434 00:17:55,716 --> 00:17:56,705 435 00:17:56,705 --> 00:17:57,830 এবং ডলার চিহ্ন উপেক্ষা করা. 436 00:17:57,830 --> 00:17:59,725 যে কল্পনাকারী জন্য শুধু প্রোগ্রাম ব্যবহার. 437 00:17:59,725 --> 00:18:00,780 438 00:18:00,780 --> 00:18:03,140 কেন মুহূর্তে x শূন্য হয়? 439 00:18:03,140 --> 00:18:03,640 হ্যাঁ. 440 00:18:03,640 --> 00:18:07,061 >> শ্রোতা: এটা আগে বিরতি দেওয়া লাইন 16, না আসলে লাইন 16. 441 00:18:07,061 --> 00:18:08,060 ডেভিড জে MALAN: যথাযথভাবে. 442 00:18:08,060 --> 00:18:11,630 , GDB, ডিফল্টরূপে, বিরতি দেওয়া হয়েছে শুধু লাইন 16 আগে মৃত্যুদন্ড. 443 00:18:11,630 --> 00:18:14,820 সুতরাং এটি মৃত্যুদন্ড কার্যকর করা হয়েছে, যা কিছু অজানা মান x এর মানে. 444 00:18:14,820 --> 00:18:17,150 এবং আমরা যে এটা ভাগ্যবান শূন্য মত পরিষ্কার কিছু. 445 00:18:17,150 --> 00:18:20,310 তাই এখন আমি পরের টাইপ করুন, এখন এটি 16 মৃত্যুদন্ড কার্যকর. 446 00:18:20,310 --> 00:18:22,000 আমার 17 চালানো জন্য অপেক্ষা করছে. 447 00:18:22,000 --> 00:18:23,400 আমাকে এগিয়ে এবং মুদ্রণ এক্স যান. 448 00:18:23,400 --> 00:18:24,094 এটা এক. 449 00:18:24,094 --> 00:18:25,260 আমাকে এগিয়ে এবং মুদ্রণ Y যান. 450 00:18:25,260 --> 00:18:26,176 আমি এখন কি হবে? 451 00:18:26,176 --> 00:18:27,660 452 00:18:27,660 --> 00:18:28,560 >> শ্রোতা: [শ্রবণাতীত] 453 00:18:28,560 --> 00:18:29,165 >> ডেভিড জে MALAN: একটু জোরে. 454 00:18:29,165 --> 00:18:30,040 >> শ্রোতা: [শ্রবণাতীত] 455 00:18:30,040 --> 00:18:30,537 456 00:18:30,537 --> 00:18:32,120 ডেভিড জে MALAN: নেই বেশ একটি ঐক্যমত্য. 457 00:18:32,120 --> 00:18:34,760 তাই হ্যাঁ, আমরা কিছু আবর্জনা মান দেখুন. 458 00:18:34,760 --> 00:18:37,862 এখন, Y আছে 134514064 হয়. 459 00:18:37,862 --> 00:18:39,320 ওয়েল, এটা কিছু আবর্জনা মান. 460 00:18:39,320 --> 00:18:41,350 আমার প্রোগ্রাম উপস্থিত RAM ব্যবহার বিভিন্ন কাজের জন্য. 461 00:18:41,350 --> 00:18:42,350 অন্যান্য কার্যাবলী আছে. 462 00:18:42,350 --> 00:18:44,040 অন্য মানুষ আমার কম্পিউটার ভিতরে লিখেছে. 463 00:18:44,040 --> 00:18:46,789 তাই যারা বিট জন্য ব্যবহার করা হয়েছে অন্যান্য মান, এবং আমি কি এইজন্য করছি 464 00:18:46,789 --> 00:18:49,470 কিছু অবশিষ্টাংশ হয় যে মেমরি পূর্বে ব্যবহার. 465 00:18:49,470 --> 00:18:53,350 >> তাই কোন বড় চুক্তি, কারণ যত তাড়াতাড়ি আমি পরের টাইপ করুন এবং তারপর Y মুদ্রণ হিসাবে, 466 00:18:53,350 --> 00:18:55,640 এটি সক্রিয়া করা হচ্ছে আমি চাই যে মান. 467 00:18:55,640 --> 00:18:57,400 সুতরাং এখন, এর একটু দ্রুত এগিয়ে যান. 468 00:18:57,400 --> 00:18:58,540 পরের জন্য এন. 469 00:18:58,540 --> 00:18:59,570 এর আবার কি শুরু করা যাক. 470 00:18:59,570 --> 00:19:00,530 এর আবার কি শুরু করা যাক. 471 00:19:00,530 --> 00:19:02,404 কিন্তু আমি আঘাত করতে চাই না এখানে, কারণ আমি যদি 472 00:19:02,404 --> 00:19:05,110 ভিতরে কি ঘটছে তা দেখতে চান swap,, কমান্ড কি? 473 00:19:05,110 --> 00:19:05,520 >> শ্রোতা: ধাপ. 474 00:19:05,520 --> 00:19:06,436 >> ডেভিড জে MALAN: ধাপ. 475 00:19:06,436 --> 00:19:09,800 সুতরাং এই একটি সম্পর্কে আলোচনা বরং এটি উপর বেশী ফাংশন,. 476 00:19:09,800 --> 00:19:12,270 এবং এখন, এটি একটি সামান্য রহস্যপূর্ণ সত্যি বলতে, কিন্তু এই শুধু 477 00:19:12,270 --> 00:19:14,581 আমি এখন লাইন 33 আছি আমাকে বলছে. 478 00:19:14,581 --> 00:19:15,580 এবং এর আবার এই কাজ করা যাক. 479 00:19:15,580 --> 00:19:16,080 প্রিন্ট temp হয়. 480 00:19:16,080 --> 00:19:17,129 481 00:19:17,129 --> 00:19:20,170 আবর্জনা মান, নেতিবাচক এই সময়, কিন্তু যে শুধু এখনও একটি আবর্জনা মান. 482 00:19:20,170 --> 00:19:22,810 তাই এর পরের, মুদ্রণ, temp করতে দেওয়া. 483 00:19:22,810 --> 00:19:27,130 এটা, 1 সক্রিয়া যা একটি ওরফে x এর মান ছিল. 484 00:19:27,130 --> 00:19:29,110 >> এখন, যেখানে আমাদের একটি এবং থেকে আসছে x? 485 00:19:29,110 --> 00:19:32,510 ভাল, আমরা প্রধান লক্ষ্য এই মান x এবং y বলা হয়. 486 00:19:32,510 --> 00:19:34,740 আমরা তখন নিম্নরূপ তাদের অদলবদল পাস. 487 00:19:34,740 --> 00:19:37,010 এক্স কমা y, ও প্রথম এসেছিলেন. 488 00:19:37,010 --> 00:19:40,020 এবং তারপর, swap 'তাদের x এবং y কল করতে পারে. 489 00:19:40,020 --> 00:19:42,630 কিন্তু স্বচ্ছতার জন্য, এটা A এবং B তাদের কলিং. 490 00:19:42,630 --> 00:19:45,970 কিন্তু a ও b এখন হতে যাচ্ছে যথাক্রমে x এবং y, কপি. 491 00:19:45,970 --> 00:19:50,660 >> আমি, টেম্প ফিরে GDB যাও যদি তাই এখন এক এবং একটি এখন এক. 492 00:19:50,660 --> 00:19:56,130 আমি এখন পরবর্তী করবেন এবং কিন্তু যদি মুদ্রণ করতে একটি একটি ইতিমধ্যে উপর সরানো হয়েছে. 493 00:19:56,130 --> 00:20:00,030 দুধ সাবেক ঢেলে হয়েছে কমলার রস এর গ্লাস, বা তদ্বিপরীত. 494 00:20:00,030 --> 00:20:04,750 >> এবং এখন আমি আবার পরের, এবং যদি আমি একটি মানসিক সুস্থতা চেক আউট হিসাবে মুদ্রণ, 495 00:20:04,750 --> 00:20:07,687 এখনও দুই, কিন্তু ক্যাচ এখন এক. 496 00:20:07,687 --> 00:20:08,770 সত্যি, এটা এখনও আছে. 497 00:20:08,770 --> 00:20:10,670 আমি কি temp না যত্ন. 498 00:20:10,670 --> 00:20:16,850 কিন্তু যত তাড়াতাড়ি আমি এখন টাইপ,, এর কথা বলা যাক এখন আমি শেষে না, ফিরে যান অবিরত 499 00:20:16,850 --> 00:20:17,480 প্রোগ্রাম. 500 00:20:17,480 --> 00:20:20,730 এবং দুর্ভাগ্যবশত, হল x এখনও এক এবং y এখনও দুটি. 501 00:20:20,730 --> 00:20:22,272 >> তাই সেখানে, GDB উপযোগ কি ছিল? 502 00:20:22,272 --> 00:20:23,980 এটা আমার ঠিক করতে সাহায্য না সমস্যা কোনটাই, 503 00:20:23,980 --> 00:20:26,265 কিন্তু আশা আমাকে সাহায্য বুঝতে দ্বারা এটা বুঝতে 504 00:20:26,265 --> 00:20:30,000 যে হ্যাঁ, আমার যুক্তি সঠিক, কিন্তু আমার কোড পর্যন্ত না হয় 505 00:20:30,000 --> 00:20:31,450 একটি স্থায়ী প্রভাব. 506 00:20:31,450 --> 00:20:34,570 সুতরাং যে আমরা একটি সমস্যা এখন আজ সমাধান করা যাচ্ছে. 507 00:20:34,570 --> 00:20:37,870 >> কিন্তু এই উপায় দ্বারা সেখানে পেতে. 508 00:20:37,870 --> 00:20:39,230 স্ট্রিং একটি মিথ্যা. 509 00:20:39,230 --> 00:20:41,860 এটা খুব, না একটি ডাটা টাইপ যে এটা সি বিদ্যমান 510 00:20:41,860 --> 00:20:44,750 কিছু জন্য একটি প্রতিশব্দ হয়েছে অন্য কিছু জন্য সময়, 511 00:20:44,750 --> 00:20:47,300 এবং আমরা হিসাবে অনুসরণ করে প্রকাশ করতে পারেন. 512 00:20:47,300 --> 00:20:53,282 >> আমাকে এগিয়ে যান এবং খুলুন একটি প্রোগ্রাম তুলনা 0 বলা হয়. 513 00:20:53,282 --> 00:20:56,240 এবং এই এক আউট টাইপ, বরং আমরা কোড দিয়ে হেটে যেতে শুরু করব 514 00:20:56,240 --> 00:20:58,040 আমি ইতিমধ্যে লিখেছেন, কিন্তু এটি শুধুমাত্র একটি কয়েক লাইন. 515 00:20:58,040 --> 00:20:59,570 তাই এই তুলনা-0. 516 00:20:59,570 --> 00:21:02,380 এবং প্রথম জিনিস আমি করছি লেখার একটা লাইন পেয়ে. 517 00:21:02,380 --> 00:21:05,610 >> কিন্তু আমি কি লক্ষ্য প্রথমবার করছেন. 518 00:21:05,610 --> 00:21:07,910 কি স্পষ্ট লাইন 21 সম্পর্কে ভিন্ন? 519 00:21:07,910 --> 00:21:10,020 520 00:21:10,020 --> 00:21:11,402 বাস্তবিক, একটি মিনিট অপেক্ষা করুন. 521 00:21:11,402 --> 00:21:12,110 এই কপি দুটি. 522 00:21:12,110 --> 00:21:13,568 এমনকি ডান প্রোগ্রাম নয়. 523 00:21:13,568 --> 00:21:14,780 সমস্ত অধিকার, ভক্ষক সতর্কতা. 524 00:21:14,780 --> 00:21:16,890 সমস্ত অধিকার, তাই কিছু মনে হয় না. 525 00:21:16,890 --> 00:21:18,520 ভবিষ্যতে যে প্রশ্নের উত্তর. 526 00:21:18,520 --> 00:21:21,450 >> এখানে 0 তুলনা, এবং আমি হয় টেক্সট একটি লাইন পেতে সম্পর্কে. 527 00:21:21,450 --> 00:21:22,435 প্রোগ্রাম এর অনেক সহজ. 528 00:21:22,435 --> 00:21:23,560 তাই এই সহজবোধ্য. 529 00:21:23,560 --> 00:21:28,070 এই সপ্তাহের এক, সপ্তাহ দুই জিনিস ভালো হয় মুহূর্তে. স্ট্রিং গুলি = GetString. 530 00:21:28,070 --> 00:21:29,700 এখন, আমি নিচে এখানে আবার বলে. 531 00:21:29,700 --> 00:21:31,830 স্ট্রিং T = GetString,. 532 00:21:31,830 --> 00:21:35,300 এই এবং তারপর, শেষ জিনিস প্রোগ্রাম, তার নাম সুপারিশ, 533 00:21:35,300 --> 00:21:37,090 আমি তাদের তুলনা করার চেষ্টা করতে যাচ্ছি হয়. 534 00:21:37,090 --> 00:21:40,709 >> সুতরাং এর যদি প্রথম পংক্তি, = T, তারপর আমি সমান 535 00:21:40,709 --> 00:21:42,250 আপনি একই জিনিস টাইপ বলে যাচ্ছে. 536 00:21:42,250 --> 00:21:44,291 অন্যথায়, আমি বলতে যাচ্ছি আপনি বিভিন্ন জিনিস টাইপ করুন. 537 00:21:44,291 --> 00:21:45,880 সুতরাং এর কম্পাইল এবং এই প্রোগ্রাম চালানো. 538 00:21:45,880 --> 00:21:48,481 তাই শূন্য তুলনা করা. 539 00:21:48,481 --> 00:21:48,980 ভাল দেখায়. 540 00:21:48,980 --> 00:21:50,490 কোন সংকলন ত্রুটি. 541 00:21:50,490 --> 00:21:52,386 >> আমাকে এখন এগিয়ে যান এবং ./compare 0 টাইপ করুন. 542 00:21:52,386 --> 00:21:55,230 543 00:21:55,230 --> 00:21:59,220 আমাকে এগিয়ে যান এবং কিছু বলতে চলুন শুরু করা যাক : Daven এবং কিছু: রব. 544 00:21:59,220 --> 00:22:00,450 এবং আমি বিভিন্ন জিনিস টাইপ করুন. 545 00:22:00,450 --> 00:22:01,250 এ পর্যন্ত, তাই ভাল. 546 00:22:01,250 --> 00:22:02,680 প্রোগ্রাম সঠিক বলে মনে হয়. 547 00:22:02,680 --> 00:22:03,880 >> কিন্তু এর আবার এটি চালানো যাক. 548 00:22:03,880 --> 00:22:05,800 কিছু বলুন, গেব. 549 00:22:05,800 --> 00:22:07,140 কিছু বলুন, গেব. 550 00:22:07,140 --> 00:22:08,520 551 00:22:08,520 --> 00:22:09,020 ঠিক আছে. 552 00:22:09,020 --> 00:22:10,851 হয়তো আমি স্পেস বার আঘাত বা ভীতু কিছু. 553 00:22:10,851 --> 00:22:11,600 এর আবার কি শুরু করা যাক. 554 00:22:11,600 --> 00:22:13,020 , Zamyla তাই. 555 00:22:13,020 --> 00:22:13,970 556 00:22:13,970 --> 00:22:14,470 , Zamyla. 557 00:22:14,470 --> 00:22:15,740 558 00:22:15,740 --> 00:22:17,330 বিভিন্ন জিনিস. 559 00:22:17,330 --> 00:22:19,430 তাই কি হতে যাচ্ছে? 560 00:22:19,430 --> 00:22:23,200 >> সুতরাং আমরা এই দুই লাইন আছে কোড, GetString, দুইবার বলা হচ্ছে. 561 00:22:23,200 --> 00:22:25,760 এবং তারপর, আমি কেবল নই গুলি এবং টন তুলনা করার চেষ্টা করছে. 562 00:22:25,760 --> 00:22:28,370 কিন্তু যাওয়া হয় তারপর সত্যিই কি? 563 00:22:28,370 --> 00:22:31,180 ভাল, আমার হস্তাক্ষর এর সম্পর্কে কিছুটা এই যেমন কসাই. 564 00:22:31,180 --> 00:22:34,630 এবং এর আসলে নিক্ষেপ করা যাক এই পর্যন্ত এখানে, হিসাবে ভাল. 565 00:22:34,630 --> 00:22:37,390 566 00:22:37,390 --> 00:22:45,712 >> সুতরাং আমরা একটি লাইন মত আছে স্ট্রিং গুলি = GetString. 567 00:22:45,712 --> 00:22:48,295 সুতরাং যে কেবল প্রথম যে প্রোগ্রাম থেকে আকর্ষণীয় লাইন. 568 00:22:48,295 --> 00:22:49,920 569 00:22:49,920 --> 00:22:52,974 কিন্তু এই সব সময় হয়েছে কি ফণা নীচে যাচ্ছে? 570 00:22:52,974 --> 00:22:55,890 ওয়েল, বাম হাতের উপর দিকে স্ট্রিং, যা পরিবর্তনশীল কিছু টাইপ করা হয়, 571 00:22:55,890 --> 00:22:56,785 এবং এটা বলা হচ্ছে. 572 00:22:56,785 --> 00:23:00,019 তাই আমি এই মেমরি ব্যবহার করা হয় জানেন, অথবা RAM, একরকম আমার কম্পিউটারে. 573 00:23:00,019 --> 00:23:02,060 তাই আমি abstractly একটি করা যাচ্ছে না একটি বর্গক্ষেত্র যে আঁকা. 574 00:23:02,060 --> 00:23:04,820 32 বিট, এটি সক্রিয় আউট, কিন্তু ভবিষ্যতে আরো যে. 575 00:23:04,820 --> 00:23:06,410 এবং তারপর, কি এখানে হচ্ছে? 576 00:23:06,410 --> 00:23:08,700 >> ওয়েল, সম্ভবত GetString ব্যবহারকারী থেকে একটি পংক্তি পায়. 577 00:23:08,700 --> 00:23:11,360 এবং GetString না , Zamyla বা গেব বা Daven. 578 00:23:11,360 --> 00:23:14,640 সুতরাং এর প্রথম নির্বাচন দেওয়া যারা, Daven ছিল. 579 00:23:14,640 --> 00:23:19,174 যাতে কার্যকরভাবে, কি GetString, পেয়েছিলাম আমার প্রথম যে ক্ষেত্রে ডি একটি V-ই এন ছিল. 580 00:23:19,174 --> 00:23:22,690 581 00:23:22,690 --> 00:23:25,045 এবং তারপর, অন্য কি কি এটা আমার গোপনে দিতে? 582 00:23:25,045 --> 00:23:25,920 শ্রোতা: [শ্রবণাতীত] 583 00:23:25,920 --> 00:23:28,720 ডেভিড জে MALAN: হ্যাঁ, / 0 বা নাল অক্ষর. 584 00:23:28,720 --> 00:23:30,550 তাই এটা কার্যকরভাবে সম্পর্কে একটি স্ট্রিং দিয়েছেন. 585 00:23:30,550 --> 00:23:34,550 কিন্তু আমরা ইতিমধ্যে আগের থেকে জানি একটি স্ট্রিং শুধুমাত্র একটি অ্যারের যে দেখায় 586 00:23:34,550 --> 00:23:37,895 অক্ষর, এবং এটি দ্বারা বাতিল হচ্ছে এই বিশেষ প্রহরী চরিত্র, / 0. 587 00:23:37,895 --> 00:23:39,220 588 00:23:39,220 --> 00:23:42,310 >> কিন্তু এই যদি সত্য হয় এবং এই একটি বর্গ হয়, 589 00:23:42,310 --> 00:23:44,160 এই পরিষ্কারভাবে অনেক বড় আয়তক্ষেত্র হয়. 590 00:23:44,160 --> 00:23:46,830 এবং প্রকৃতপক্ষে, এই হয়, আমি শুধুমাত্র 32 বিট দাবি. 591 00:23:46,830 --> 00:23:49,500 এবং এই পরিষ্কারভাবে অধিক 32 বিট, সম্ভবত এই কারণ 592 00:23:49,500 --> 00:23:51,583 আট প্লাস আট প্লাস আট প্লাস আট প্লাস আট, 593 00:23:51,583 --> 00:23:53,320 ঠিক হওয়া ASCII বাইট কারণ. 594 00:23:53,320 --> 00:23:57,030 কিভাবে নরক আমরা মাপসই করা যাচ্ছে এখানে এই সামান্য বাক্সে Daven? 595 00:23:57,030 --> 00:23:59,880 >> ভাল, কি আসলে GetString করছে? 596 00:23:59,880 --> 00:24:03,680 ওয়েল, এই গ্রিড এখানে উপস্থাপন আমার কম্পিউটার এর মেমরি বা RAM উপস্থিত. 597 00:24:03,680 --> 00:24:07,564 সুতরাং এর ইচ্ছামত যদি বলে এই প্রতিটি, একটি বাইট প্রতিনিধিত্ব করে 598 00:24:07,564 --> 00:24:09,730 তারপর আমরা প্রতিটি মনে করতে পারেন বাইট একটি ঠিকানা হচ্ছে, 599 00:24:09,730 --> 00:24:13,830 33 অক্সফোর্ড স্ট্রিট, বা 34 মত অক্সফোর্ড স্ট্রিট, বা 35 অক্সফোর্ড রাস্তার. 600 00:24:13,830 --> 00:24:16,700 >> তাই বাড়িতে অ্যাড্রেস ঠিক মত এবং ভবন ঠিকানা আছে, 601 00:24:16,700 --> 00:24:19,810 তাই ব্যক্তিগত বাইট না মেমরি অ্যাড্রেস বা সংখ্যা আছে 602 00:24:19,810 --> 00:24:21,042 যে স্বতন্ত্র তাদের সনাক্ত করা. 603 00:24:21,042 --> 00:24:22,000 এখন, এই নির্বিচারে. 604 00:24:22,000 --> 00:24:25,370 কিন্তু আমি যাচ্ছি, এটা সহজ রাখা শুধু প্রচল হেক্সাডেসিমেল ব্যবহার, 605 00:24:25,370 --> 00:24:28,200 কিন্তু 0x অন্যান্য কিছুই মানে আর "এই হেক্সাডেসিমেল হয়." 606 00:24:28,200 --> 00:24:31,030 এবং আমি যে দাবি করা যাচ্ছে না "ডি" মেমরি বাইট এক সময়ে শেষ পর্যন্ত. 607 00:24:31,030 --> 00:24:34,210 >> আমি কিছুই অন্য মধ্যে যাওয়া পেয়েছিলাম মেমরি, তাই Daven প্রথম স্পট আছে 608 00:24:34,210 --> 00:24:35,509 বাইটের এক সময়ে. 609 00:24:35,509 --> 00:24:36,800 এই তারপর, 0X2 হতে যাচ্ছে. 610 00:24:36,800 --> 00:24:37,831 611 00:24:37,831 --> 00:24:38,705 এই 0X3 যাচ্ছে. 612 00:24:38,705 --> 00:24:39,840 613 00:24:39,840 --> 00:24:41,800 এই 0x4 হতে যাচ্ছে. 614 00:24:41,800 --> 00:24:43,025 এই 0x5 যাচ্ছে. 615 00:24:43,025 --> 00:24:44,025 এই 0x6 হতে যাচ্ছে. 616 00:24:44,025 --> 00:24:45,560 617 00:24:45,560 --> 00:24:48,290 >> কিন্তু আপনি একবার ভাবতে শুরু কি কম্পিউটার এর কাজ সম্পর্কে 618 00:24:48,290 --> 00:24:50,710 ফণা নীচে, আপনি আবিষ্কার করতে শুরু করতে পারেন 619 00:24:50,710 --> 00:24:54,960 কিভাবে আপনি কিছু বছর আগে, হবে নিজেই সি বাস্তবায়িত হয়েছে. 620 00:24:54,960 --> 00:24:58,360 সম্ভবত GetString, কি returning-- কারণ এটি 621 00:24:58,360 --> 00:25:00,946 এটা না ভালো মনে ফিরে Daven, জন্মগতভাবে, 622 00:25:00,946 --> 00:25:03,320 তিনি নিশ্চয় যাচ্ছে না, কারণ এই সামান্য box-- অনুযায়ী 623 00:25:03,320 --> 00:25:05,090 তাই কি GetString, সম্ভবত ফিরে? 624 00:25:05,090 --> 00:25:07,958 625 00:25:07,958 --> 00:25:08,920 >> শ্রোতা: [শ্রবণাতীত] 626 00:25:08,920 --> 00:25:10,540 >> ডেভিড জে MALAN: Daven অবস্থান. 627 00:25:10,540 --> 00:25:12,770 এবং এটা এই কাজ করা হয়েছে কখনও এক সপ্তাহ থেকে. 628 00:25:12,770 --> 00:25:16,150 কি GetString, সত্যিই ফিরে একটি স্ট্রিং, কোনটাই হয় না. 629 00:25:16,150 --> 00:25:17,780 যে সামান্য সাদা মিথ্যা এক. 630 00:25:17,780 --> 00:25:22,520 এটা এর ঠিকানা ফিরে মেমরি স্ট্রিং, অনন্য ঠিকানা. 631 00:25:22,520 --> 00:25:24,820 Daven 33 অক্সফোর্ড রাস্তার এ বসবাস করেন. 632 00:25:24,820 --> 00:25:29,310 কিন্তু আরো succinctly, গেভিন বসবাস 0x1, এ সংখ্যা এক ঠিকানা. 633 00:25:29,310 --> 00:25:32,280 >> তাই এই করা হয় সামান্য বক্স, তারপর, পরিষ্কার করা 634 00:25:32,280 --> 00:25:35,930 স্ট্রিং এর ঠিকানা. 635 00:25:35,930 --> 00:25:38,110 তাই এই সব সময়, এই আছে যাচ্ছে. 636 00:25:38,110 --> 00:25:41,650 কিন্তু এই ইঙ্গিত কি এখন সব যদি আছে 637 00:25:41,650 --> 00:25:44,710 এটা ভিতরে একটি সংখ্যা, যারা হয় আপনি বন্ধ করার জন্য, প্রোগ্রামার, 638 00:25:44,710 --> 00:25:47,970 কোনো সংখ্যা নির্বাণ থেকে কোনো ভেরিয়েবল এবং ঠিক জাম্পিং 639 00:25:47,970 --> 00:25:49,080 মেমরি যে তাল করতে? 640 00:25:49,080 --> 00:25:51,320 এবং প্রকৃতপক্ষে, আমরা দেখতে পাবেন যে হুমকি পরবর্তী সময়. 641 00:25:51,320 --> 00:25:53,500 >> কিন্তু এখন জন্য, এই অপর্যাপ্ত মনে. 642 00:25:53,500 --> 00:25:55,630 আমি বলতে থাকে, আমাকে একটি পেতে স্ট্রিং, আপনি আমাকে Daven দিতে. 643 00:25:55,630 --> 00:25:57,230 কিন্তু আপনি কি সত্যিই আমাকে Daven দিতে না. 644 00:25:57,230 --> 00:25:59,310 আপনি আমাকে দিতে সব Daven এর ঠিকানা. 645 00:25:59,310 --> 00:26:04,310 আমি তখন নিশ্চিত জানি কিভাবে যেখানে Daven শুরু হয় এবং ends-- 646 00:26:04,310 --> 00:26:07,140 গল্প এর weird-- পেয়ে Daven শুরু হয় এবং শেষ হয় যেখানে, 647 00:26:07,140 --> 00:26:10,435 এবং পরবর্তী তারপর মেমরি স্ট্রিং শুরু হয়? 648 00:26:10,435 --> 00:26:11,520 649 00:26:11,520 --> 00:26:13,620 >> হ্যাঁ, আপনি হস্তান্তর করছি আমার Daven শুরুতে, 650 00:26:13,620 --> 00:26:17,230 মূলত, কিভাবে আমি জানি না তার নামের শেষে কোথায়? 651 00:26:17,230 --> 00:26:20,550 যে বিশেষ নাল অক্ষর, যা সমস্ত আরো গুরুত্বপূর্ণ এখন 652 00:26:20,550 --> 00:26:23,040 নীচে স্ট্রিং যদি ফণা কেবল চিহ্নিত করা হয় 653 00:26:23,040 --> 00:26:25,820 স্বতন্ত্র মেমরির মধ্যে তাদের অবস্থান দ্বারা. 654 00:26:25,820 --> 00:26:28,130 তাই এই সব সময়, যে কি যাওয়া হয়েছে. 655 00:26:28,130 --> 00:26:32,470 >> সুতরাং আমরা এখন তাকান এখানে কোড, ব্যাখ্যা 656 00:26:32,470 --> 00:26:35,790 আপনি লাইন 26 বাগ হবে না. 657 00:26:35,790 --> 00:26:39,560 কেন, Zamyla এবং, Zamyla ভিন্ন? 658 00:26:39,560 --> 00:26:41,330 কেন গেব এবং গেব ভিন্ন? 659 00:26:41,330 --> 00:26:42,154 হাঁ, ফিরে. 660 00:26:42,154 --> 00:26:43,390 >> শ্রোতা: তারা বিভিন্ন ঠিকানা আছে. 661 00:26:43,390 --> 00:26:45,931 >> ডেভিড জে MALAN: শুধু কারণ তারা বিভিন্ন ঠিকানা আছে. 662 00:26:45,931 --> 00:26:48,820 আপনি GetString কল কারণ যখন আবার, আমি এখানে দ্রুত করব, যা 663 00:26:48,820 --> 00:26:52,870 এই দ্বিতীয় লাইন, স্ট্রিং যদি টন, আমি যে প্রোগ্রাম করেনি, 664 00:26:52,870 --> 00:26:55,030 GetString, অন্য কল সমান. 665 00:26:55,030 --> 00:26:56,370 666 00:26:56,370 --> 00:26:58,670 আমি কল পরবর্তী সময় GetString,, আমি যাচ্ছি 667 00:26:58,670 --> 00:27:00,190 একটি মেমরি বিভিন্ন অঞ্চলে পেতে. 668 00:27:00,190 --> 00:27:02,220 >> GetString, অনুমতি দেওয়া হয় অপারেটিং জিজ্ঞাসা 669 00:27:02,220 --> 00:27:03,800 আরো এবং আরো মেমরি জন্য সিস্টেম. 670 00:27:03,800 --> 00:27:07,894 এটি একই পুনরায় ব্যবহার করা যাচ্ছে না ছয় বাইট প্রতি একক সময়. 671 00:27:07,894 --> 00:27:09,810 এটি একটি নতুন পেতে যাচ্ছে মেমরি খণ্ড, যা 672 00:27:09,810 --> 00:27:12,780 টন পেতে যাচ্ছে মানে এখানে অন্য কোনো মান. 673 00:27:12,780 --> 00:27:15,380 >> আমি কি তাই যখন গুলি = সমান টন, আপনি তুলনা করছি না 674 00:27:15,380 --> 00:27:17,880 এই এবং একটি বিরুদ্ধে বিরুদ্ধে D: এই এবং এই বিরুদ্ধে ভী. 675 00:27:17,880 --> 00:27:19,588 আপনি এই তুলনা করছি , যা এই বিরুদ্ধে 676 00:27:19,588 --> 00:27:24,020 অকপটে সুন্দর useful-- useless-- হয় প্রশংসনীয় বেহুদা সত্যিই, কারণ যারা 677 00:27:24,020 --> 00:27:25,830 স্ট্রিং মেমরি যেখানে বজায় রাখে? 678 00:27:25,830 --> 00:27:26,850 >> এবং প্রকৃতপক্ষে, আমরা না. 679 00:27:26,850 --> 00:27:28,980 এবং আমরা যাচ্ছেন না বিশেষ করে যত্নশীল শুরু. 680 00:27:28,980 --> 00:27:34,180 শুধু বাগ arise তে পারে যে পরিমাণে এবং নিরাপত্তা হুমকি ইচ্ছা arise তে পারে 681 00:27:34,180 --> 00:27:36,100 আমরা আসলে এই সম্পর্কে যত্ন শুরু. 682 00:27:36,100 --> 00:27:37,230 তাই এর এই সমস্যা সমাধানের জন্য. 683 00:27:37,230 --> 00:27:39,650 আপনি সুপার কেবল এটা ঠিক, দেখা যাচ্ছে. 684 00:27:39,650 --> 00:27:42,600 >> এবং আমি আগে, আসলে যাক আবার যে প্রকাশ, কি হবে 685 00:27:42,600 --> 00:27:47,170 একটি CS50 বর্গ, যদি আপনি কি এবং আপনি বাস্তবায়ন ছিল 686 00:27:47,170 --> 00:27:48,600 দুই স্ট্রিং বিরুদ্ধে একটি তুলনা. 687 00:27:48,600 --> 00:27:51,440 আপনি পরিষ্কারভাবে মাত্র গুলি = টন সমান ব্যবহার করতে পারবেন না. 688 00:27:51,440 --> 00:27:54,090 তবে যুক্তি, কিভাবে আপনি এই স্ট্রিং তুলনা হবে 689 00:27:54,090 --> 00:27:56,370 সি কোড ব্যবহার করে এই স্ট্রিং বিরুদ্ধে? 690 00:27:56,370 --> 00:27:56,880 হ্যাঁ. 691 00:27:56,880 --> 00:27:58,780 >> শ্রোতা: শুধু কি লুপ জন্য [শ্রবণাতীত] 692 00:27:58,780 --> 00:28:00,670 693 00:28:00,670 --> 00:28:01,670 ডেভিড জে MALAN: পারফেক্ট. 694 00:28:01,670 --> 00:28:02,900 শ্রোতা: [শ্রবণাতীত] 695 00:28:02,900 --> 00:28:03,310 ডেভিড জে MALAN: হ্যাঁ. 696 00:28:03,310 --> 00:28:05,390 শুধু লুপ বা একটি জন্য একটি ব্যবহার লুপ বা যাই হোক না কেন, যখন. 697 00:28:05,390 --> 00:28:08,710 তবে মৌলিক ধারণা প্রয়োগ করে যে এই মেমরি বা একটি অ্যারের একটি খণ্ড 698 00:28:08,710 --> 00:28:11,590 এবং এই, পুনরুক্তি উভয় একই সময়ে. 699 00:28:11,590 --> 00:28:12,960 এবং শুধু অক্ষর তুলনা করুন. 700 00:28:12,960 --> 00:28:14,260 >> এবং যদি আপনি একটি হতে পেয়েছেন একটু সতর্ক থাকুন, কারণ আপনি 701 00:28:14,260 --> 00:28:16,247 এক আঙুল চাই না অন্যান্য অতীতে যেতে 702 00:28:16,247 --> 00:28:18,080 এক স্ট্রিং কারণ অন্যান্য সময়ের চেয়ে. 703 00:28:18,080 --> 00:28:21,380 তাই আপনার জন্য চেক করতে চান, চলুন শেষে এই বিশেষ মান নাল. 704 00:28:21,380 --> 00:28:24,017 কিন্তু এটা সত্যিই হয়, শেষ, যে হিসাবে হিসাবে সহজ. 705 00:28:24,017 --> 00:28:26,100 এবং সত্যি, আমরা প্রয়োজন হবে না যে চাকা reinvent. 706 00:28:26,100 --> 00:28:27,960 এখানে দুটি সংস্করণ হয়. 707 00:28:27,960 --> 00:28:32,910 এবং কি আমি এখানে বলতে যাচ্ছি যে পরিবর্তে এর তুলনা, = টন সমান 708 00:28:32,910 --> 00:28:38,964 স্ট্রিং যদি আমি পরিবর্তে, বলতে যাচ্ছি এর কমা টন তুলনা = 0 সমান. 709 00:28:38,964 --> 00:28:40,130 এখন, স্ট্রিং তুলনা করা হয়? 710 00:28:40,130 --> 00:28:43,046 >> এটি একটি ফাংশন, দেখা যাচ্ছে যে জীবনে যার উদ্দেশ্য সি, সঙ্গে আসে 711 00:28:43,046 --> 00:28:44,650 দুই স্ট্রিং তুলনা করা হয়. 712 00:28:44,650 --> 00:28:48,300 আমরা পড়তে এবং, যদি তুলনা আলোড়ন তার মানুষ পাতা বা ডকুমেন্টেশন বা CS50 713 00:28:48,300 --> 00:28:50,630 রেফারেন্স, এটা করবে না কেবল আপনি যে আলোড়ন বলতে 714 00:28:50,630 --> 00:28:55,730 একটি নেতিবাচক হয় আয় তুলনা সংখ্যা বা একটি ধনাত্মক সংখ্যা বা শূন্য, 715 00:28:55,730 --> 00:28:57,660 শূন্য মানে যেখানে তারা সমান. 716 00:28:57,660 --> 00:28:58,570 >> তাই শুধু অনুমান. 717 00:28:58,570 --> 00:29:00,390 এটা কি করে অর্থ হতে পারে তুলনা আয় আলোড়ন 718 00:29:00,390 --> 00:29:02,110 নেতিবাচক মান বা ইতিবাচক মান? 719 00:29:02,110 --> 00:29:02,785 720 00:29:02,785 --> 00:29:04,285 শ্রোতা: চেয়ে বেশী বা কম. 721 00:29:04,285 --> 00:29:05,570 ডেভিড জে MALAN: হ্যাঁ, এর চেয়ে বড় বা কম. 722 00:29:05,570 --> 00:29:08,640 তাই আপনি যদি একটি পুরো বাছাই করতে চেয়েছিলেন একটি dictionary-- স্ট্রিং এর গুচ্ছ 723 00:29:08,640 --> 00:29:12,975 আমরা শেষ পর্যন্ত road-- নিচে হবে হিসাবে নিখুঁত ফাংশন সম্ভাব্য ব্যবহার করার জন্য, 724 00:29:12,975 --> 00:29:15,850 এটা যে কি করতে যাচ্ছে কারণ আপনার জন্য স্ট্রিং তুলনা, এবং বলতে 725 00:29:15,850 --> 00:29:20,060 আপনি একটি বো আগে আসে না, বা না বো একটি বর্ণানুক্রমে আগে আসা. 726 00:29:20,060 --> 00:29:21,490 আমরা ঠিক তা করতে পারে. 727 00:29:21,490 --> 00:29:23,620 >> এবং আমি অন্য এক কি লক্ষ্য এই উদাহরণে জিনিস. 728 00:29:23,620 --> 00:29:26,870 আর কি বেশী পরিবর্তিত হয়েছে এই প্রধান ফাংশন আপ? 729 00:29:26,870 --> 00:29:28,500 730 00:29:28,500 --> 00:29:29,350 চর *. 731 00:29:29,350 --> 00:29:31,150 এবং এই যে অন্যান্য সাদা মিথ্যা. 732 00:29:31,150 --> 00:29:33,750 এই সময়, যখন আপনি করেছি স্ট্রিং লেখা হয়েছে, 733 00:29:33,750 --> 00:29:38,350 আমরা গোপনে rewriting হয়েছে গৃহস্থালির কাজ হিসাবে স্ট্রিং * তাই আসলে যে ঝনঝন শব্দ 734 00:29:38,350 --> 00:29:39,270 আপনি বুঝতে পারে. 735 00:29:39,270 --> 00:29:42,450 >> অন্য কথায়, CS50.h, মধ্যে এবং অবশেষে আমরা দেখতে পাবেন, 736 00:29:42,450 --> 00:29:45,950 আমরা একটি প্রতিশব্দ বলা স্ট্রিং তৈরি যে গৃহস্থালি * হিসাবে একই জিনিস. 737 00:29:45,950 --> 00:29:49,910 এবং এখন জন্য, শুধুমাত্র জানি যে * এই প্রেক্ষাপটে, অন্তত, 738 00:29:49,910 --> 00:29:51,286 ঠিকানা মানে. 739 00:29:51,286 --> 00:29:52,210 >> কি এর ঠিকানা? 740 00:29:52,210 --> 00:29:56,390 ওয়েল, আসলে আমি বলেন, গৃহস্থালি *, এবং, * int অথবা * ভাসা না 741 00:29:56,390 --> 00:30:00,820 গৃহস্থালি * এর মানে হল যে একটি গৃহস্থালি এর ঠিকানা. 742 00:30:00,820 --> 00:30:06,770 সুতরাং এখানে এই সামান্য বক্স, ওরফে স্ট্রিং, সত্যিই টাইপ গৃহস্থালি * হয়, 743 00:30:06,770 --> 00:30:10,490 যা বলার অপেক্ষা রাখে না কেবল একটি অভিনব উপায়, এই বাক্সে একটি ঠিকানা যেতে হবে. 744 00:30:10,490 --> 00:30:12,430 এবং কি যে ঠিকানায় পড়ুন? 745 00:30:12,430 --> 00:30:13,780 দৃশ্যত, একটি গৃহস্থালি. 746 00:30:13,780 --> 00:30:16,410 >> কিন্তু একেবারে আমরা int-* এবং অন্যান্য জিনিস আছে. 747 00:30:16,410 --> 00:30:20,790 কিন্তু এখন জন্য, গৃহস্থালি * সত্যিই সবচেয়ে সহজবোধ্য এবং সুদ এক. 748 00:30:20,790 --> 00:30:23,310 তাই এই সমস্যা যাচ্ছে আবার যদিও, ওঠা. 749 00:30:23,310 --> 00:30:24,830 >> আমি এই প্রোগ্রাম খুলুন ধরুন. 750 00:30:24,830 --> 00:30:27,670 এখন আমরা অনুমান করতে পারেন যদি এর দেখতে দিন কি এই কোড দিয়ে ভুল. 751 00:30:27,670 --> 00:30:31,140 এই প্রোগ্রাম তাই, কপি 0, আমি এগিয়ে যান এবং আবার কল যাচ্ছে 752 00:30:31,140 --> 00:30:34,190 GetString এবং এর মান সঞ্চয়. 753 00:30:34,190 --> 00:30:38,800 >> এবং তারপর, কেন আমি এই কাজ করছি মাত্র সপ্তাহ অতীত থেকে একটি অনুস্মারক হিসেবে? 754 00:30:38,800 --> 00:30:40,960 আমরা যে GetString, বলে কি কখনও কখনও নাল প্রদান করে. 755 00:30:40,960 --> 00:30:42,793 এটা কি যদি মানে GetString, নাল ফেরৎ? 756 00:30:42,793 --> 00:30:45,040 757 00:30:45,040 --> 00:30:46,034 কিছু ভুল হয়েছে. 758 00:30:46,034 --> 00:30:48,950 এটা সম্ভবত স্ট্রিং খুব মানে বড়, মেমরি কম্পিউটার এর আউট. 759 00:30:48,950 --> 00:30:51,724 এটা সুপার, সুপার, সুপার ঘটবে খুব কমই, কিন্তু এটা ঘটতে পারে. 760 00:30:51,724 --> 00:30:53,890 আমরা এটা জন্য চেক করতে চান, এবং যে আমরা করছি সব. 761 00:30:53,890 --> 00:30:57,910 >> যদি আপনি না আমরা এখন দেখতে পাবেন, কারণ জিনিসের জন্য অভ্যাসগত ভাবেই চেক শুরু 762 00:30:57,910 --> 00:31:00,870 নাল মত, আপনি হতে পারে আসলে যেতে শুরু 763 00:31:00,870 --> 00:31:03,106 মেমরি অ্যাড্রেস অবৈধ যে হয়. 764 00:31:03,106 --> 00:31:05,980 এবং যদি আপনি inducing শুরু করতে যাচ্ছেন আরো এবং আরো সেগমেন্টেশন ফল্ট. 765 00:31:05,980 --> 00:31:08,360 অথবা একটি Mac বা একটা পিসি, ঠিক একটি কম্পিউটার, যার ফলে স্তব্ধ 766 00:31:08,360 --> 00:31:10,340 বা একটি প্রোগ্রাম সম্ভাব্য হিমায়িত করা. 767 00:31:10,340 --> 00:31:14,930 >> তাই এখন, আমি কপি 0.c দাবি আমি যে উপায় দ্বারা এই স্ট্রিং কপি করতে যাচ্ছি 768 00:31:14,930 --> 00:31:15,685 28 রেখায়. 769 00:31:15,685 --> 00:31:16,850 770 00:31:16,850 --> 00:31:18,750 এবং তারপর, আমি যাচ্ছি নীচে দাবি 771 00:31:18,750 --> 00:31:21,430 এখানে আমি যাচ্ছি যে তাদের মধ্যে একজন পরিবর্তন. 772 00:31:21,430 --> 00:31:22,330 >> তাই এই বিজ্ঞপ্তি. 773 00:31:22,330 --> 00:31:24,370 আমি আমাদের পুরানো বন্ধু strlen আহ্বান করছি. 774 00:31:24,370 --> 00:31:28,960 এবং শুধু ইংরেজি ব্যাখ্যা এই লাইন 34 কি করছে? 775 00:31:28,960 --> 00:31:32,480 কি টি বন্ধনী 0 না বাম প্রতিনিধিত্ব. 776 00:31:32,480 --> 00:31:32,980 হ্যাঁ. 777 00:31:32,980 --> 00:31:34,339 >> শ্রোতা: T প্রথম অক্ষর? 778 00:31:34,339 --> 00:31:35,880 ডেভিড জে MALAN: T প্রথম অক্ষর. 779 00:31:35,880 --> 00:31:36,379 এটা এটি. 780 00:31:36,379 --> 00:31:40,024 টন প্রথম অক্ষর, আমি চাই য়ের বড়হাতের অক্ষর ছোটহাতের সংস্করণ দায়িত্ব অর্পণ করা 781 00:31:40,024 --> 00:31:41,190 টি প্রথম অক্ষর. 782 00:31:41,190 --> 00:31:43,200 তাই এই ভিত্তি হয় প্রথম চিঠি. 783 00:31:43,200 --> 00:31:46,340 এবং তারপর, শেষ জিনিস আমি কি এই প্রোগ্রাম আমি এখানে দাবি 784 00:31:46,340 --> 00:31:50,340 মূল,, এবং এখানে কপি, T এর. 785 00:31:50,340 --> 00:31:54,610 >> কিন্তু গল্পের উপর ভিত্তি করে আমরা ঠিক , স্ট্রিং সত্যিই কি সম্পর্কে বলা 786 00:31:54,610 --> 00:31:57,520 সত্যিই লাইন 28 কি করছেন, এবং কি 787 00:31:57,520 --> 00:31:59,405 যাচ্ছে ফলে বাগ পর্দায় হতে হবে? 788 00:31:59,405 --> 00:32:01,300 789 00:32:01,300 --> 00:32:03,500 >> তাই প্রথম প্রথম প্রশ্ন, 28. 790 00:32:03,500 --> 00:32:09,040 স্ট্রিং T = সত্যিই কি করছে? 791 00:32:09,040 --> 00:32:16,430 আমরা বাম হাতের উপর আছে এখানে দিকে স্ট্রিং টন = গুলি; 792 00:32:16,430 --> 00:32:19,400 আমার এক বাক্স দেয় এখানে এক বাক্স এখানে. 793 00:32:19,400 --> 00:32:25,530 এবং, এই ঠিকানা 0x অনুমান এর ইচ্ছামত, এই সময়, বলে 50 দিন. 794 00:32:25,530 --> 00:32:28,847 কি স্ট্রিং টন = গুলি করে ফণা নীচে কি? 795 00:32:28,847 --> 00:32:30,340 >> শ্রোতা: [শ্রবণাতীত] 796 00:32:30,340 --> 00:32:34,100 >> ডেভিড জে MALAN: এটি মেমরি সঞ্চয় সেখানে ঠিকানা, তাই 0x50 সেখানে যায়. 797 00:32:34,100 --> 00:32:37,980 এখন যদি তাই হয়, আমি প্রথম যান টি অক্ষর এবং এটি য়ের বড়হাতের অক্ষর ছোটহাতের, 798 00:32:37,980 --> 00:32:39,535 আমি কার্যকরভাবে এর কি করছেন? 799 00:32:39,535 --> 00:32:41,300 800 00:32:41,300 --> 00:32:43,450 আমি সত্যিই একই জিনিস করছি? 801 00:32:43,450 --> 00:32:47,680 কারণ যদি ঠিকানা 0x50-- এবং মাত্র, আমি এখানে বোর্ডে অনেক রুম আছে না, 802 00:32:47,680 --> 00:32:51,750 কিন্তু, এই এখানে নিচে 0x50 অনুমান আমার কম্পিউটার এর মেমরি কোথাও. 803 00:32:51,750 --> 00:32:55,825 >> এবং আমি, উদাহরণস্বরূপ, গেব আছে ভালো, এখানে ছোট হাতের মধ্যে. 804 00:32:55,825 --> 00:32:57,120 805 00:32:57,120 --> 00:33:01,980 এবং আমি বলেন, টি বন্ধনী 0 মূলধনী হয়. 806 00:33:01,980 --> 00:33:04,860 ওয়েল, টি বন্ধনী 0 টি প্রথম চিঠি. 807 00:33:04,860 --> 00:33:07,840 তাই সামান্য গ্রাম যাচ্ছে হয়ে বড় জি কিন্তু সমস্যা 808 00:33:07,840 --> 00:33:09,410 , কি আছে বিন্দু না হয়? 809 00:33:09,410 --> 00:33:10,300 >> শ্রোতা: একই. 810 00:33:10,300 --> 00:33:11,841 >> ডেভিড জে MALAN: একই সঠিক জিনিস. 811 00:33:11,841 --> 00:33:16,342 তাই সম্ভবত একটি সহজ ব্যাখ্যা, বাক্য গঠন একটু অদ্ভুত, এমনকি যদি. 812 00:33:16,342 --> 00:33:17,050 তাই এর এই না দেওয়া. 813 00:33:17,050 --> 00:33:20,210 ./copy 0 তারপর কপি 0 করুন এবং. 814 00:33:20,210 --> 00:33:21,820 815 00:33:21,820 --> 00:33:24,110 কিছু বলুন, গেব. 816 00:33:24,110 --> 00:33:26,760 এবং দুর্ভাগ্যবশত, উভয় তাদের এখন মূলধনী করা হয়েছে, 817 00:33:26,760 --> 00:33:29,500 কিন্তু যে জন্য অন্তর্নিহিত আমরা শুধু যে কারণ 818 00:33:29,500 --> 00:33:32,350 এখন ঠিকানার সঙ্গে তার আচরণ. 819 00:33:32,350 --> 00:33:36,470 >> তাই কিভাবে আমরা করা শুরু করবেন না address-- কোন শ্লেষ intended-- 820 00:33:36,470 --> 00:33:39,270 আমরা মোকাবেলার শুরু করবেন কিভাবে এই বিশেষ সমস্যা? 821 00:33:39,270 --> 00:33:44,400 ওয়েল, copy1.c, জিনিষ যাচ্ছে একটু বেশি জটিল পেতে. 822 00:33:44,400 --> 00:33:49,310 কিন্তু আমি একটি দাবি ধারণার দিক থেকে সহজ সমাধান. 823 00:33:49,310 --> 00:33:50,852 >> এক নজরে এ পেতে কঠিন. 824 00:33:50,852 --> 00:33:53,560 প্রথম জন্য সহজ হবে না সময় আপনি, সম্ভবত, এটি টাইপ 825 00:33:53,560 --> 00:33:57,440 কিন্তু সমস্যা হল যে যদি কেবল T = ঠিক করছেন 826 00:33:57,440 --> 00:33:59,694 কপি ঠিকানা, কি, আবার আমি আপনার উপর বাছাই করতে পারেন যদি, 827 00:33:59,694 --> 00:34:02,110 সমাধান হতে যাচ্ছে আসলে একটি স্ট্রিং অনুলিপি জন্য? 828 00:34:02,110 --> 00:34:04,906 829 00:34:04,906 --> 00:34:06,770 >> শ্রোতা: আমরা সম্ভবত হবে আবার একটি লুপ ব্যবহার করুন. 830 00:34:06,770 --> 00:34:06,890 >> ডেভিড জে MALAN: হ্যাঁ. 831 00:34:06,890 --> 00:34:08,390 তাই আমরা আবার একটি লুপ প্রয়োজন চলুন. 832 00:34:08,390 --> 00:34:11,800 এবং আমরা কপি করতে চান, কারণ যদি অন্য স্ট্রিং মধ্যে একটি স্ট্রিং গুলি, 833 00:34:11,800 --> 00:34:14,120 আমরা সম্ভবত এটি করতে চান অক্ষর দ্বারা অক্ষর. 834 00:34:14,120 --> 00:34:17,199 কিন্তু সমস্যা যদি হয়, এই, মূলত গুলি 835 00:34:17,199 --> 00:34:22,159 এখন আমরা স্পষ্টভাবে শুরু করতে হবে টন জন্য মেমরি বণ্টন. 836 00:34:22,159 --> 00:34:24,320 >> অন্য কথায়, এর যাক এই এক শেষ সময় পুনরায় আঁকুন. 837 00:34:24,320 --> 00:34:28,659 এই স্ট্রিং গুলি = GetString হয়. 838 00:34:28,659 --> 00:34:30,956 839 00:34:30,956 --> 00:34:32,455 এবং এর পাশাপাশি, এই পর্যন্ত এখানে করা যাক. 840 00:34:32,455 --> 00:34:36,639 841 00:34:36,639 --> 00:34:37,420 এই GetString হয়. 842 00:34:37,420 --> 00:34:39,070 843 00:34:39,070 --> 00:34:43,860 কিছু এবং তারপর, ছবি যে মত আগে হতে যাচ্ছে, 844 00:34:43,860 --> 00:34:44,360 গ্রাম একটি বি ই / 0. 845 00:34:44,360 --> 00:34:47,294 846 00:34:47,294 --> 00:34:48,960 যে এই মত সামান্য কিছু দেখায়. 847 00:34:48,960 --> 00:34:53,650 এবং এর অতএব, আমরা এই 0x50 কল এবং যে 51, 52 হতে যাচ্ছে. 848 00:34:53,650 --> 00:34:54,409 >> তাই এই 0x50 হয়. 849 00:34:54,409 --> 00:34:55,679 850 00:34:55,679 --> 00:34:59,690 এবং তারপর, আমি পংক্তি টন না. 851 00:34:59,690 --> 00:35:02,450 মেমরি, যে শুধু যাচ্ছে আমার ভালো একটি সামান্য বর্গ দিতে. 852 00:35:02,450 --> 00:35:04,080 তাই কি পদক্ষেপ এখন কি? 853 00:35:04,080 --> 00:35:09,870 আমি টন মধ্যে গুলি কপি করতে চান তাহলে, কি ফাঁকা এখানে পূরণ করতে হবে? 854 00:35:09,870 --> 00:35:12,050 অথবা আমরা কি প্রয়োজন একটি উচ্চ পর্যায়ের কি? 855 00:35:12,050 --> 00:35:14,101 856 00:35:14,101 --> 00:35:14,600 হ্যাঁ? 857 00:35:14,600 --> 00:35:16,200 858 00:35:16,200 --> 00:35:17,020 কেউ? 859 00:35:17,020 --> 00:35:17,690 হ্যাঁ. 860 00:35:17,690 --> 00:35:19,214 >> শ্রোতা: আমরা [শ্রবণাতীত] প্রয়োজন. 861 00:35:19,214 --> 00:35:21,380 ডেভিড জে MALAN: হ্যাঁ, আমরা এই ফাঁকা পূরণ করতে হবে. 862 00:35:21,380 --> 00:35:24,340 আমি তারপর কপি এবং করতে পারে না গেব নাম পুঁজিতে 863 00:35:24,340 --> 00:35:28,120 আমি অপারেটিং সিস্টেম জিজ্ঞাসা পর্যন্ত মেমরি অন্য চাঙ্গড় জন্য 864 00:35:28,120 --> 00:35:30,640 যে মূল হিসাবে অন্তত হিসাবে বড়. 865 00:35:30,640 --> 00:35:32,130 সুতরাং যে একটি প্রশ্ন, আমাদের ছেড়ে. 866 00:35:32,130 --> 00:35:36,080 >> আমি অপারেটিং সিস্টেম না জিজ্ঞাসা করবেন শুধুমাত্র একটি সহজ সামান্য পয়েন্টার জন্য 867 00:35:36,080 --> 00:35:38,530 এই হিসাবে বলা হয়, একটি ঠিকানা, একটি পয়েন্টার না 868 00:35:38,530 --> 00:35:40,980 একটি সহজ সামান্য বক্স এই মত একটি স্ট্রিং বলা? 869 00:35:40,980 --> 00:35:44,200 আমি কিভাবে অপারেটিং জিজ্ঞাসা করবেন না মেমরি একটি বড় খণ্ড সিস্টেম? 870 00:35:44,200 --> 00:35:48,430 সেটা অনেক দূরে, আমি শুধুমাত্র যে ফিরে অর্জিত করেছি পরোক্ষভাবে GetString আহ্বান করে. 871 00:35:48,430 --> 00:35:50,740 সুতরাং কিভাবে GetString হয় তার মেমরি পেয়ে এমনকি? 872 00:35:50,740 --> 00:35:53,430 >> ওয়েল, এটা আছে যে দেখা যাচ্ছে এখানে এই অন্যান্য ফাংশন 873 00:35:53,430 --> 00:35:55,160 যে আমরা এখন ব্যবহার করা শুরু করব. 874 00:35:55,160 --> 00:35:59,780 এখন, এই পথ আরো রহস্যপূর্ণ than-- দেখায় এবং আমি এটি দেখতে পারেন শুধুমাত্র এক যারা am 875 00:35:59,780 --> 00:36:03,150 এই লাইন পথ আরো রহস্যপূর্ণ তারপর এটি প্রথম নজরে উচিত. 876 00:36:03,150 --> 00:36:04,650 কিন্তু এর এটি সরাইয়া জ্বালাতন করা যাক. 877 00:36:04,650 --> 00:36:07,950 >> বাম দিকে, আমি গৃহস্থালি * টন আছে. 878 00:36:07,950 --> 00:36:13,280 ইংরেজি সুতরাং, এর প্রণয়ন শুরু করা যাক প্রযুক্তিগত অপভাষা মধ্যে সঠিক বাক্য. 879 00:36:13,280 --> 00:36:19,757 তাই এই বণ্টন করা হয় একটি টাইপ গৃহস্থালির কাজ পরিবর্তনশীল টন বলা *. 880 00:36:19,757 --> 00:36:21,090 এখন, যে সত্যিই কি মানে? 881 00:36:21,090 --> 00:36:23,881 >> ওয়েল, এর মানে হল যে, আমি কি যাচ্ছি টন নামক এই পরিবর্তনশীল রাখা? 882 00:36:23,881 --> 00:36:24,780 883 00:36:24,780 --> 00:36:26,402 একটি গৃহস্থালি একটি ঠিকানা. 884 00:36:26,402 --> 00:36:28,360 সুতরাং যে, শুধু সহজ অধিক যুক্তিসঙ্গত উপায় 885 00:36:28,360 --> 00:36:29,930 এর বাম দিকে বর্ণনা. 886 00:36:29,930 --> 00:36:32,890 সুতরাং যে এখানে শুধুমাত্র এই বাক্স তৈরি করে. 887 00:36:32,890 --> 00:36:34,760 তাই ডান দিকে, সম্ভবতঃ, যাচ্ছে 888 00:36:34,760 --> 00:36:37,170 বড় যে বরাদ্দ মেমরি কিভাবে খণ্ড? 889 00:36:37,170 --> 00:36:38,340 তাই এর এই সরাইয়া জ্বালাতন করা যাক. 890 00:36:38,340 --> 00:36:41,131 >> এটা প্রথম নজরে অপ্রতিরোধ্য এর কিন্তু ভিতরে এখানে কি হচ্ছে? 891 00:36:41,131 --> 00:36:43,740 প্রথমত, যদি malloc আছে, যা আমাদের নতুন বন্ধু, দৃশ্যত 892 00:36:43,740 --> 00:36:45,450 "মেমরি বরাদ্দ করা." 893 00:36:45,450 --> 00:36:49,560 তাই এই হচ্ছে পাশ যুক্তি তা, তাই এটি একটি চমত্কার বড় যুক্তি. 894 00:36:49,560 --> 00:36:50,970 তাই এর এই সরাইয়া জ্বালাতন করা যাক. 895 00:36:50,970 --> 00:36:53,410 >> s এর strlen, অবশ্যই, প্রতিনিধিত্ব করে the-- 896 00:36:53,410 --> 00:36:54,142 897 00:36:54,142 --> 00:36:55,600 শ্রোতা: অক্ষরের সংখ্যা. 898 00:36:55,600 --> 00:36:56,710 ডেভিড জে MALAN: শুধু এর মধ্যে অক্ষর সংখ্যা. 899 00:36:56,710 --> 00:36:59,040 সুতরাং এর দৈর্ঘ্য, মূল পংক্তি. 900 00:36:59,040 --> 00:37:00,350 তাই জি একটি-B-ই. 901 00:37:00,350 --> 00:37:02,320 সুতরাং এটি সম্ভবত চার এই ক্ষেত্রে আছে. 902 00:37:02,320 --> 00:37:05,485 কেন আমি পরে ফোন: +1 করছেন s এর strlen আহ্বান? 903 00:37:05,485 --> 00:37:06,360 শ্রোতা: [শ্রবণাতীত] 904 00:37:06,360 --> 00:37:07,590 ডেভিড জে MALAN: যে জন্য বিশেষ নাল অক্ষর. 905 00:37:07,590 --> 00:37:11,260 আপনি যদি সম্পর্কে জিজ্ঞাসা দৈর্ঘ্য কি গেব এর নাম, আমি চার বলে যাচ্ছি. 906 00:37:11,260 --> 00:37:14,480 ফণা নীচে, যদিও, আমি প্রয়োজন নাল অক্ষর জন্য যে পঞ্চম বাইট. 907 00:37:14,480 --> 00:37:16,100 আমি ফোন: +1 করছি সুতরাং যে কেন. 908 00:37:16,100 --> 00:37:21,730 >> এখন ঠিক ক্ষেত্রে আপনি এই চলমান আর অন্য একটি কম্পিউটার প্রোগ্রাম, বলে, 909 00:37:21,730 --> 00:37:24,610 CS50 অ্যাপ্লায়েন্স, যেখানে একটি গৃহস্থালি আকার 910 00:37:24,610 --> 00:37:26,350 বিভিন্ন হতে পারে আমার নিজের কম্পিউটারে থেকে 911 00:37:26,350 --> 00:37:30,590 আমি এই কল করতে পারেন যে সক্রিয় আউট অপারেটর যাও sizeof, শুধু কম্পিউটার জিজ্ঞাসা 912 00:37:30,590 --> 00:37:32,870 একটি আকার কি এই কম্পিউটারে গৃহস্থালি? 913 00:37:32,870 --> 00:37:37,400 >> এবং এই পাঁচটি গুন দ্বারা একটি গৃহস্থালি আকার, যেমন যা 914 00:37:37,400 --> 00:37:40,440 অধিকাংশ কম্পিউটারে করবে মাত্র এক, যদি malloc করা 915 00:37:40,440 --> 00:37:44,830 আমার এই বড় জন্য বরাদ্দ করা হবে এখানে ডান উপর মেমরি খণ্ড. 916 00:37:44,830 --> 00:37:47,140 এবং এটা রিটার্ন যাচ্ছে এটা তাই এটি একটি ফাংশন হয় 917 00:37:47,140 --> 00:37:48,265 কি আমাকে ফিরে যাচ্ছে? 918 00:37:48,265 --> 00:37:50,914 919 00:37:50,914 --> 00:37:51,830 শ্রোতা: ঠিকানা? 920 00:37:51,830 --> 00:37:53,709 ডেভিড জে MALAN: কি ঠিকানা? 921 00:37:53,709 --> 00:37:55,250 শ্রোতা: মেমরি এটি বরাদ্দ? 922 00:37:55,250 --> 00:37:56,450 ডেভিড জে MALAN: এর মেমরি এটি বরাদ্দ. 923 00:37:56,450 --> 00:37:59,189 তাই আমি সত্যি, কোন ধারণা আছে যেখানে এই পর্যন্ত শেষ হয়ে যাচ্ছে. 924 00:37:59,189 --> 00:38:01,480 আমি উত্থাপন করা যাচ্ছে না এটা 0x88 এ শেষ করতে যাচ্ছে. 925 00:38:01,480 --> 00:38:02,770 926 00:38:02,770 --> 00:38:06,009 সম্পূর্ণ অবাধ, কিন্তু 0x50 ছাড়া অন্য কোথাও, 927 00:38:06,009 --> 00:38:08,800 অপারেটিং সিস্টেম, কারণ কি উইন্ডোজ এবং ম্যাক অপারেটিং সিস্টেম আমার জন্য না, হয় 928 00:38:08,800 --> 00:38:11,230 এটি প্রদান এর নিশ্চিত করুন যে আমার র্যাম বিভিন্ন অংশ. 929 00:38:11,230 --> 00:38:14,210 >> তাই এই মান এই হল যেখানে মেমরি খণ্ড শেষ হতে পারে. 930 00:38:14,210 --> 00:38:16,060 তাই এই 0x88, এখানে শেষ পর্যন্ত কি হয়. 931 00:38:16,060 --> 00:38:17,480 932 00:38:17,480 --> 00:38:21,570 তাই এখন স্পষ্ট, আমি বুঝতে পারেন এই হিসাবে একই হয় না যে, 933 00:38:21,570 --> 00:38:23,960 তারা নির্দেশ করছেন, কারণ মেমরি বিভিন্ন অংশ. 934 00:38:23,960 --> 00:38:29,980 আমি এখন আসলে এই কপি করতে চান, তাই যদি এর মধ্যে, আপনার প্রস্তাবিত সমাধান করতে দেওয়া. 935 00:38:29,980 --> 00:38:36,870 >> , এর ঠিক, যান জন্য একটি লুপ তৈরি করা যাক এবং টি বন্ধনী না আমি বন্ধনী আমি পায়. 936 00:38:36,870 --> 00:38:39,760 এখন আমি ব্যবহার করতে পারেন এই অ্যারের মত স্বরলিপি, 937 00:38:39,760 --> 00:38:43,390 কারণ, যদিও malloc হয় খুব জেনেরিক আমাকে মেমরি বরাদ্দ, 938 00:38:43,390 --> 00:38:45,290 মেমরি শুধুমাত্র সংলগ্ন বাইট. 939 00:38:45,290 --> 00:38:47,240 বাইট, বাইট, বাইট, ফিরে ফিরে ফিরে যাও. 940 00:38:47,240 --> 00:38:50,030 >> আমি একজন প্রোগ্রামার হিসাবে নিশ্চয় করতে পারেন একটি অ্যারের, হিসাবে এটি আচরণ যা 941 00:38:50,030 --> 00:38:55,090 আমি এই অবশেষে পরিচিত ব্যবহার করতে পারেন কিছু কিছু বর্গাকার বন্ধনী স্বরলিপি. 942 00:38:55,090 --> 00:38:56,462 943 00:38:56,462 --> 00:39:00,020 >> তাই আমাকে, কারণ সেখানে বিরতি দিন এই এমনকি, সব একযোগে অনেক 944 00:39:00,020 --> 00:39:03,530 মৌলিক ধারণা সংক্ষিপ্তবৃত্তি যদিও যে পংক্তি, এই সব সময়, 945 00:39:03,530 --> 00:39:05,550 একটি নতুন তথ্য টাইপ কোনটাই হয় না. 946 00:39:05,550 --> 00:39:10,150 এটা শুধু একটি তথাকথিত পয়েন্টার একটি অক্ষর একটি ঠিকানা, 947 00:39:10,150 --> 00:39:12,650 যা শুধু অর্থ এটি একটি সংখ্যা যে মানুষের কনভেনশন দ্বারা 948 00:39:12,650 --> 00:39:15,350 আমরা 0x কিছু লিখতে ঝোঁক. 949 00:39:15,350 --> 00:39:18,590 >> কিন্তু এটা শুধু একটি সংখ্যা 33 অক্সফোর্ড রাস্তার মত, 950 00:39:18,590 --> 00:39:20,530 যা হতে হবে সি এস বিল্ডিং এর ঠিকানা. 951 00:39:20,530 --> 00:39:22,000 952 00:39:22,000 --> 00:39:23,545 এই বিবরণ উপর কোন প্রশ্ন? 953 00:39:23,545 --> 00:39:24,790 954 00:39:24,790 --> 00:39:25,289 হ্যাঁ? 955 00:39:25,289 --> 00:39:28,530 >> শ্রোতা: কেন আমরা চেক করতে সমান টি নাল? 956 00:39:28,530 --> 00:39:30,740 >> ডেভিড জে MALAN: কেন আমরা কি নাল সমান টি পরীক্ষা? 957 00:39:30,740 --> 00:39:33,250 আমরা documentation-- পড়া malloc জন্য মহান question--, 958 00:39:33,250 --> 00:39:37,020 এটি সূক্ষ্ম মুদ্রণ বলে যাচ্ছে কখনও কখনও malloc হয়, নাল ফিরে হতে পারে 959 00:39:37,020 --> 00:39:38,080 শুধু GetString মত. 960 00:39:38,080 --> 00:39:41,820 এবং প্রকৃতপক্ষে, GetString, নাল ফেরৎ ঘুরে, malloc NULL উত্পন্ন করে, 961 00:39:41,820 --> 00:39:43,130 GetString, malloc ব্যবহার কারণ. 962 00:39:43,130 --> 00:39:46,400 >> অপারেটিং সিস্টেম এবং যদি যে ঘটতে পারে ম্যাক অপারেটিং সিস্টেম, উইন্ডোজ, যাই হোক না কেন, কেবল 963 00:39:46,400 --> 00:39:48,130 আপনার জন্য মেমরি আউট. 964 00:39:48,130 --> 00:39:49,820 সুতরাং যে কি ঘটেছে. 965 00:39:49,820 --> 00:39:52,910 >> এবং আমার এক অন্য জিনিস প্রকাশ করা যে শুধু আপনার মন গাট্টা পারে 966 00:39:52,910 --> 00:39:55,100 বা সম্পূর্ণরূপে খুব বেশী দূরে লাইন হতে হবে. 967 00:39:55,100 --> 00:39:59,770 কিন্তু আমার থামা কপি জন্য লুপ জন্য একই, 968 00:39:59,770 --> 00:40:05,480 যা একটি মুহূর্ত আগে, রিকল ছিল এই. টি বন্ধনী আমি বন্ধনী আমি পায়. 969 00:40:05,480 --> 00:40:06,740 >> সুন্দর এবং ব্যবহারকারী বান্ধব. 970 00:40:06,740 --> 00:40:09,330 আবার সপ্তাহ দুই মত অনুভূত. 971 00:40:09,330 --> 00:40:14,920 কিন্তু এই সংস্করণ আসলে হতে পারে রহস্যপূর্ণ যা এই, হিসাবে পুনর্লিখিত. 972 00:40:14,920 --> 00:40:18,280 এটি একটি কৌশল বলা পয়েন্টার গাণিতিক, ঠিকানা পাটিগণিত. 973 00:40:18,280 --> 00:40:19,600 কিন্তু কেন এই কাজ করে? 974 00:40:19,600 --> 00:40:22,220 >> এখন মরণ, সি লেখক ব্যবহার করার সিদ্ধান্ত নিয়েছে 975 00:40:22,220 --> 00:40:25,070 বিভিন্ন কাজের জন্য * প্রতীক. 976 00:40:25,070 --> 00:40:29,020 আমরা এটা ইতিমধ্যে একবার ব্যবহার দেখা করেছি যার মানে গৃহস্থালি *, "আমাকে একটি পরিবর্তনশীল দিতে 977 00:40:29,020 --> 00:40:31,210 যে থাকে যাচ্ছে একটি গৃহস্থালি এর ঠিকানা. " 978 00:40:31,210 --> 00:40:33,990 যে প্রেক্ষাপটে তাই গৃহস্থালি * "সম্পর্কে একটি পরিবর্তনশীল দিতে." মানে 979 00:40:33,990 --> 00:40:40,050 >> দুর্ভাগ্যবশত, আপনি * ছাড়া ব্যবহার করা হলে এটি সামনে একটি শব্দ, গৃহস্থালি মত, 980 00:40:40,050 --> 00:40:41,905 এটা এখন বলা হচ্ছে dereference অপারেটর. 981 00:40:41,905 --> 00:40:43,530 এবং আমরা দীর্ঘ আগে এই আরো দেখতে পাবেন. 982 00:40:43,530 --> 00:40:44,930 কিন্তু এটা শুধু "সেখানে যান." অর্থ 983 00:40:44,930 --> 00:40:49,070 কেউ আমাকে হস্তান্তর যদি এটা বলছে, মত কাগজ এক টুকরা উপর "33 অক্সফোর্ড স্ট্রিট," 984 00:40:49,070 --> 00:40:53,830 আমি "* 33 অক্সফোর্ড স্ট্রিট," না মানে হল যে যদি "সি এস বিল্ডিং রাস্তা নিচে যান." 985 00:40:53,830 --> 00:40:57,220 >> সুতরাং * ঠিক আছে যদি যেতে মানে এটি সামনে কোন শব্দ আছে. 986 00:40:57,220 --> 00:40:59,100 তাই পরিষ্কার করা, টি কি? 987 00:40:59,100 --> 00:41:03,250 টি খণ্ড ঠিকানা আমার ফিরে দেওয়া হয় যে মেমরি. 988 00:41:03,250 --> 00:41:06,650 এর, পরিষ্কার করা, কি এর ঠিকানা যেমন আমরা আলোচনা করছি, 989 00:41:06,650 --> 00:41:07,500 ছোট হাতের অক্ষর ব্যবহার গেব এর? 990 00:41:07,500 --> 00:41:08,990 991 00:41:08,990 --> 00:41:10,005 এর ঠিকানা র 992 00:41:10,005 --> 00:41:11,585 993 00:41:11,585 --> 00:41:12,460 শ্রোতা: স্ট্রিং. 994 00:41:12,460 --> 00:41:14,126 ডেভিড জে MALAN: গেব এর মূল নাম. 995 00:41:14,126 --> 00:41:16,660 সুতরাং এটি এর ঠিকানা এর মেমরি এই অঞ্চলে. 996 00:41:16,660 --> 00:41:22,220 তাই আমি যদি বলি টি + তোমার আমি, নোটিশ, শুধু আমাদের পুরানো বন্ধু. 997 00:41:22,220 --> 00:41:24,770 এটি শুধু একটি সূচক পরিবর্তনশীল যে শূন্য থেকে iterating এর 998 00:41:24,770 --> 00:41:26,960 স্ট্রিং এর দৈর্ঘ্য. 999 00:41:26,960 --> 00:41:30,367 সুতরাং, তারপর শূন্য, এক হতে যাচ্ছে তারপর দুই, তারপর তিন, তারপর চার. 1000 00:41:30,367 --> 00:41:33,200 তাই এর এই নতুন জড় দিন ভূত মত পাজল টুকরা, যদি আপনি হবে, 1001 00:41:33,200 --> 00:41:36,140 যদিও, আবার, বাক্য গঠন ভূত চেয়ে অনেক বেশি রহস্যময় হয়. 1002 00:41:36,140 --> 00:41:39,522 তাই টন একটি ঠিকানা + হয় আমার দিতে হবে 1003 00:41:39,522 --> 00:41:42,480 একটি সংখ্যা, কারণ এই সব আমরা হেক্স হিসাবে অঙ্কন করা হয়েছে যে সংখ্যা. 1004 00:41:42,480 --> 00:41:43,560 কিন্তু তারা শুধু সংখ্যা না. 1005 00:41:43,560 --> 00:41:49,960 >> টন ঠিকানা আমরা বলেছেন, তাই যদি ছিল 0x88, 0x88 প্লাস শূন্য কি. 1006 00:41:49,960 --> 00:41:51,564 1007 00:41:51,564 --> 00:41:53,980 আপনি আরামদায়ক না হন, এমনকি যদি এখনো হেক্স সঙ্গে একটি অনুমান নিতে. 1008 00:41:53,980 --> 00:41:54,410 >> শ্রোতা: মূল. 1009 00:41:54,410 --> 00:41:55,850 >> ডেভিড জে MALAN: 0x88 এখনও. 1010 00:41:55,850 --> 00:41:58,910 সুতরাং * কি 0x88 না? 1011 00:41:58,910 --> 00:42:02,670 এটা যার মানে "সেখানে যান", মানে কার্যকরভাবে, "এখানে আপনার আঙুল রাখা." 1012 00:42:02,670 --> 00:42:06,930 এবং এখন ডান দিকে এই অভিব্যক্তি, * এবং তারপর পাঠ্যক্রম মধ্যে, 1013 00:42:06,930 --> 00:42:11,586 আমি যা, এর মানে + + এখানে সামান্য গ্রাম পর্যন্ত মোকাবেলার. 1014 00:42:11,586 --> 00:42:16,220 গুলি + 0, অবশ্যই, হয় যাই হোক না কেন গুলি, গুলি. 1015 00:42:16,220 --> 00:42:21,230 >> সুতরাং এখন, এটা * গুলি, যা শুধু * 33 মত অক্সফোর্ড রাস্তার ঠিকানা যান মানে 1016 00:42:21,230 --> 00:42:22,010 এর. 1017 00:42:22,010 --> 00:42:24,170 সুতরাং এখানে এই আঙুল, ডান হাত. 1018 00:42:24,170 --> 00:42:26,050 তাই আমি কি কপি যাচ্ছি? 1019 00:42:26,050 --> 00:42:30,260 যা ডান জিনিস, গেব, এখানে মধ্যে এখানে সামান্য গ্রাম,. 1020 00:42:30,260 --> 00:42:32,750 >> যে তাই প্রভাব লুপ প্রথম পুনরাবৃত্তির, 1021 00:42:32,750 --> 00:42:36,200 আপনি এটা দেখে মনে হচ্ছে, যদিও প্রস্তাব কিছু পাগল আরো জটিল 1022 00:42:36,200 --> 00:42:42,110 আমরা আগে দেখা করেছি কেবল বলছে না এখানে যান এবং এখানে যে চরিত্র কপি করুন. 1023 00:42:42,110 --> 00:42:44,700 এটি আপনার উভয় অবস্থানে একটি মানচিত্র প্রদান এর. 1024 00:42:44,700 --> 00:42:46,130 >> এবং আমরা এই অনেক বেশি দেখতে পাবেন. 1025 00:42:46,130 --> 00:42:50,600 কিন্তু এখন জন্য, আশা করা হয় এই মৌলিক ধারণা কিছু পরিচয় করিয়ে দিতে. 1026 00:42:50,600 --> 00:42:53,550 এবং প্রকৃতপক্ষে, এর যাক এখানে এক চূড়ান্ত প্রোগ্রাম, 1027 00:42:53,550 --> 00:42:57,480 এবং তারপর প্রতিশ্রুত claymation, সবকিছু যা সব অধিকার করতে হবে. 1028 00:42:57,480 --> 00:42:57,980 ঠিক আছে. 1029 00:42:57,980 --> 00:43:01,680 তাই আমাকে সেখানে আমরা যেতে বইয়ের নাম আপ খুলুন. 1030 00:43:01,680 --> 00:43:02,850 1031 00:43:02,850 --> 00:43:05,440 আমরা ফিরে আসবো ভগবন্ তাই দিন দীর্ঘ আগে এই ছবি. 1032 00:43:05,440 --> 00:43:08,360 আমাকে এখানে এই চূড়ান্ত উদাহরণ খুলুন. 1033 00:43:08,360 --> 00:43:09,440 1034 00:43:09,440 --> 00:43:12,710 >> তাই এখানে একটি সুপার, সুপার accomplishes যে প্রোগ্রাম 1035 00:43:12,710 --> 00:43:15,050 নিম্নলিখিত যে জীবনে কিছুই. 1036 00:43:15,050 --> 00:43:18,740 এটা প্রথম দুটি ভেরিয়েবল, এক্স ঘোষণা এবং এই সময় সংখ্যা হয় না y, ও, 1037 00:43:18,740 --> 00:43:19,240 কোনটাই. 1038 00:43:19,240 --> 00:43:20,448 তারা জন্মগতভাবে, ইন্টিজার না. 1039 00:43:20,448 --> 00:43:22,899 তারা * দৃশ্যত হয় int. 1040 00:43:22,899 --> 00:43:25,690 তাই শুধু যে কেউ, এটা কি মানে আপনার তথ্য টাইপ করুন, আপনার পরিবর্তনশীল, 1041 00:43:25,690 --> 00:43:26,860 টাইপ int-* তারা হয়? 1042 00:43:26,860 --> 00:43:30,240 যে কোন int এর ঠিকানা. 1043 00:43:30,240 --> 00:43:31,990 >> তাই আমি এটা এখনো যেখানে কোন ধারণা নেই. 1044 00:43:31,990 --> 00:43:35,150 এটা ঠিক, "শেষ পর্যন্ত, করা মানে এখানে কোন int এর ঠিকানা. " 1045 00:43:35,150 --> 00:43:38,340 এটি যেখানেই 0x50, 0x88, মেমরি, একটি ঠিকানা আছে হবে. 1046 00:43:38,340 --> 00:43:40,200 এবং যে Y কি পাশাপাশি, হতে যাচ্ছে. 1047 00:43:40,200 --> 00:43:44,920 >> আমি এখন যদি বলি এক্স = malloc (sizeof (int-)) এই বলছে এর অভিনব উপায়, 1048 00:43:44,920 --> 00:43:49,000 হেই অপারেটিং সিস্টেম, malloc মাধ্যমে, আকার জন্য আমাকে যথেষ্ট মেমরি দিতে 1049 00:43:49,000 --> 00:43:52,370 যা সম্ভবত কোন int, এর 32 বিট বা চার বাইট হতে যাচ্ছে. 1050 00:43:52,370 --> 00:43:53,680 >> সুতরাং malloc কি ফিরে না? 1051 00:43:53,680 --> 00:43:55,250 Malloc একটি ঠিকানা প্রদান করে. 1052 00:43:55,250 --> 00:43:57,020 তাই x এর মধ্যে সংরক্ষিত পেতে যাচ্ছে? 1053 00:43:57,020 --> 00:44:00,600 এর খণ্ড ঠিকানা মেমরি, চার বাইট, যে malloc 1054 00:44:00,600 --> 00:44:03,360 শুধু জিজ্ঞাসা করে আমার জন্য পাওয়া যায় অপারেটিং সিস্টেম. 1055 00:44:03,360 --> 00:44:08,240 >> এখন এদিকে, লাইন এখানে চার, * এক্স = 42. 1056 00:44:08,240 --> 00:44:09,990 শুধু, পরিষ্কার করা নিচে আছে কি যাচ্ছে? 1057 00:44:09,990 --> 00:44:11,530 বাম দিকে, * এক্স. 1058 00:44:11,530 --> 00:44:13,610 যে 33 অক্সফোর্ড রাস্তার মত. 1059 00:44:13,610 --> 00:44:15,523 সুতরাং * এক্স মানে কি? 1060 00:44:15,523 --> 00:44:16,450 >> শ্রোতা: যান. 1061 00:44:16,450 --> 00:44:17,908 >> ডেভিড জে MALAN: যে ঠিকানায় যান. 1062 00:44:17,908 --> 00:44:20,466 যেখানেই যে তাল মেমরি এটি যেতে হয়. 1063 00:44:20,466 --> 00:44:21,979 এবং অবশ্যই, কি সেখানে রাখা? 1064 00:44:21,979 --> 00:44:22,520 শ্রোতা: 42. 1065 00:44:22,520 --> 00:44:23,580 ডেভিড জে MALAN: 42. 1066 00:44:23,580 --> 00:44:25,650 সমস্ত অধিকার, * y, ও একই ধারণা. 1067 00:44:25,650 --> 00:44:26,860 Y মধ্যে ঠিকানা যান. 1068 00:44:26,860 --> 00:44:31,740 সেখানে 13 নম্বর রাখুন, কিন্তু এই মুহূর্তে Y কি? 1069 00:44:31,740 --> 00:44:33,172 1070 00:44:33,172 --> 00:44:34,630 শ্রোতা: কোন মেমরি y জন্য আছে. 1071 00:44:34,630 --> 00:44:35,710 ডেভিড জে MALAN: আছে y জন্য কোন স্মৃতি. 1072 00:44:35,710 --> 00:44:38,215 তাই সম্ভবত Y আছে আমরা করছি বলছে হিসাবে, থাকে? 1073 00:44:38,215 --> 00:44:38,520 >> শ্রোতা: বর্জ্য. 1074 00:44:38,520 --> 00:44:39,480 >> ডেভিড জে MALAN: কিছু আবর্জনা মান. 1075 00:44:39,480 --> 00:44:41,320 এখন, আবর্জনা মান এখনও একটি সংখ্যা. 1076 00:44:41,320 --> 00:44:43,160 এটা এখনও একটি ঠিকানা জন্য ভুল হতে পারে. 1077 00:44:43,160 --> 00:44:45,160 এটা কেউ হিসাবে যদিও নিচে কিছু লেখা 1078 00:44:45,160 --> 00:44:48,002 এবং আমি অর্থ এটা ভুল রাস্তার নিচে কিছু ভবন. 1079 00:44:48,002 --> 00:44:50,460 এবং আপনি শুধু যেতে চেষ্টা আপনি মালিক না কিছু ভবন, 1080 00:44:50,460 --> 00:44:53,710 অথবা মেমরির কিছু খণ্ড আপনি না আছে দেওয়া হয়েছে, খারাপ জিনিস ঘটতে পারে. 1081 00:44:53,710 --> 00:44:57,740 কম্পিউটার অন্য কিছু বিপর্যস্ত, অথবা হতে পারে অনির্ধারিত আচরণ ঘটতে পারে. 1082 00:44:57,740 --> 00:45:01,310 >> সুতরাং, তারপর, Binky অনলাইন এই ইন্ট্রো হয়. 1083 00:45:01,310 --> 00:45:04,290 আমি এখনও 20 মনে রাখবেন, কিছু অদ্ভুত বছর পরে, 1084 00:45:04,290 --> 00:45:07,200 আমি যখন পরিশেষে আমি যেখানে ছিল পয়েন্টার বোঝা. 1085 00:45:07,200 --> 00:45:09,520 >> আপনি যদি বলে, যা তিন মিনিটের মধ্যে এখানে চলে 1086 00:45:09,520 --> 00:45:12,170 এবং আমি কি মনে করেন না পয়েন্টার বুঝতে বুঝতে 1087 00:45:12,170 --> 00:45:14,410 আমি 20 জন্য মনে আছে কিছু ছবি কারণে বছর 1088 00:45:14,410 --> 00:45:17,140 কখন এবং কেন এটা অবশেষে নিমগ্ন , আমার শিক্ষার সঙ্গে বসা 1089 00:45:17,140 --> 00:45:19,501 সহকর্মী, নিশাত মেহতা মধ্যে ইলিয়ট ডাইনিং হলের পিছনে. 1090 00:45:19,501 --> 00:45:21,250 এখন, আমি মনে করেছি এই ছিল, কারণ 1091 00:45:21,250 --> 00:45:23,920 বিষয় আমি, মধ্যে এক বিশেষ করে, সঙ্গে লড়াই. 1092 00:45:23,920 --> 00:45:26,470 এবং তারপর, এটা অবশেষে ক্লিক, আমি বিষয় অনেক বলতে সাহস 1093 00:45:26,470 --> 00:45:27,460 অবশেষে করবে না. 1094 00:45:27,460 --> 00:45:32,590 এবং এখন, যে সব বোধ করা সুখী এবং আরো সব বিশ্বাসী, 1095 00:45:32,590 --> 00:45:35,360 এর মধ্যে একটি চূড়ান্ত কটাক্ষপাত করা যাক আমাদের এখানে Binky অনলাইন এ গত তিন মিনিট, 1096 00:45:35,360 --> 00:45:37,675 আমাদের বন্ধু, নিক থেকে স্ট্যানফোর্ড থেকে Parlante. 1097 00:45:37,675 --> 00:45:38,910 1098 00:45:38,910 --> 00:45:41,580 >> [ভিডিও প্লেব্যাক] 1099 00:45:41,580 --> 00:45:42,750 >> -আরে, Binky অনলাইন. 1100 00:45:42,750 --> 00:45:43,500 ওয়েক আপ! 1101 00:45:43,500 --> 00:45:45,960 এটা মজা করার জন্য পয়েন্টার সময়. 1102 00:45:45,960 --> 00:45:47,012 >> যে -কি আছে? 1103 00:45:47,012 --> 00:45:48,723 পয়েন্টার সম্পর্কে জানুন? 1104 00:45:48,723 --> 00:45:50,580 ওহ, বুড়ি! 1105 00:45:50,580 --> 00:45:53,563 >> -ওয়েল, শুরু, আমি আমরা অনুমান একটি দম্পতি পয়েন্টার প্রয়োজন হবে. 1106 00:45:53,563 --> 00:45:54,390 >> -ওকে. 1107 00:45:54,390 --> 00:45:57,930 এই কোড, দুই পয়েন্টার বরাদ্দ যা পূর্ণসংখ্যার নির্দেশ করতে পারেন. 1108 00:45:57,930 --> 00:45:58,430 -ওকে. 1109 00:45:58,430 --> 00:46:02,140 ওয়েল, আমি দুই পয়েন্টার দেখতে, কিন্তু তারা কিছু ইশারা করা হবে বলে মনে হচ্ছে না. 1110 00:46:02,140 --> 00:46:02,980 >> সরল অধিকার. 1111 00:46:02,980 --> 00:46:05,100 প্রাথমিকভাবে, পয়েন্টার কিছু নির্দেশ করে না. 1112 00:46:05,100 --> 00:46:08,030 তারা বলা হয় নির্দেশ জিনিস pointees, এবং এর তাদের জন্য সেট আপ 1113 00:46:08,030 --> 00:46:09,370 একটি পৃথক ধাপ. 1114 00:46:09,370 --> 00:46:10,220 >> ডান, ডান, -ওহ. 1115 00:46:10,220 --> 00:46:10,950 আমি জানতাম যে. 1116 00:46:10,950 --> 00:46:12,385 pointees আলাদা আলাদা. 1117 00:46:12,385 --> 00:46:14,315 Er, যাতে আপনি কিভাবে একটি pointee বরাদ্দ না? 1118 00:46:14,315 --> 00:46:15,340 1119 00:46:15,340 --> 00:46:15,960 >> -ওকে. 1120 00:46:15,960 --> 00:46:18,970 ওয়েল, এই কোড বরাদ্দ একটি নতুন ইন্টিজার pointee, 1121 00:46:18,970 --> 00:46:20,950 এবং এই অংশ সেট x তা নির্দেশ করার জন্য. 1122 00:46:20,950 --> 00:46:22,050 1123 00:46:22,050 --> 00:46:23,230 >> -আরে, যে দেখতেও ভাল. 1124 00:46:23,230 --> 00:46:25,060 সুতরাং এটা কিছু না. 1125 00:46:25,060 --> 00:46:25,990 >> -ওকে. 1126 00:46:25,990 --> 00:46:30,455 আমি পয়েন্টার এক্স ডি-রেফারেন্স পাবেন তার pointee মধ্যে 42 নম্বর সঞ্চয়. 1127 00:46:30,455 --> 00:46:32,830 এই কৌতুক, আমি প্রয়োজন হবে আমার Dereferencing যাদু জাদুদণ্ড. 1128 00:46:32,830 --> 00:46:34,130 1129 00:46:34,130 --> 00:46:36,080 >> Dereferencing এর তোমার যাদু জাদুদণ্ড? 1130 00:46:36,080 --> 00:46:37,357 1131 00:46:37,357 --> 00:46:38,190 কিন্তু যে দারুণ. 1132 00:46:38,190 --> 00:46:39,340 1133 00:46:39,340 --> 00:46:41,080 >> -এই কোড মত দেখাচ্ছে. 1134 00:46:41,080 --> 00:46:44,110 আমি শুধু সংখ্যা, এবং [পপ] সেট আপ করব 1135 00:46:44,110 --> 00:46:44,700 >> -আরে, চেহারা. 1136 00:46:44,700 --> 00:46:46,140 এটি এখন পর্যন্ত যায়. 1137 00:46:46,140 --> 00:46:50,980 >> এক্স অনুসরণ করে এর একটি dereference করছেন -তাই তীর তার pointee অ্যাক্সেস. 1138 00:46:50,980 --> 00:46:53,160 এই ক্ষেত্রে, সেখানে একটি দোকান 42. 1139 00:46:53,160 --> 00:46:57,710 আরে সংখ্যা সংরক্ষণ করার জন্য এটি ব্যবহার করুন অন্যান্য পয়েন্টার মাধ্যমে 13 Y. 1140 00:46:57,710 --> 00:46:58,760 >> -ওকে. 1141 00:46:58,760 --> 00:47:03,270 আমি শুধু এখানে উপর যাবেন, এবং 13 নম্বর সেট আপ পেতে. 1142 00:47:03,270 --> 00:47:07,930 এবং তারপর, জাদুদণ্ড নিতে Dereferencing এবং মাত্র [গুঁজন] 1143 00:47:07,930 --> 00:47:08,960 >> -ওহ! 1144 00:47:08,960 --> 00:47:09,500 >> আরে, -ওহ! 1145 00:47:09,500 --> 00:47:11,090 যে কাজ করে নি. 1146 00:47:11,090 --> 00:47:15,630 Binky অনলাইন, আমি dereferencing মনে করি না, বলুন আপনি কি জানেন, কারণ y, ও, একটি ভাল ধারণা 1147 00:47:15,630 --> 00:47:17,850 সেট আপ pointee একটি পৃথক ধাপ. 1148 00:47:17,850 --> 00:47:20,450 আমি এবং আমরা কখনও তা মনে করি না. 1149 00:47:20,450 --> 00:47:21,480 >> -গুড বিন্দু. 1150 00:47:21,480 --> 00:47:21,980 -Yeah. 1151 00:47:21,980 --> 00:47:25,680 আমরা পয়েন্টার y বরাদ্দ, কিন্তু আমরা না একটি pointee নির্দেশ সেট. 1152 00:47:25,680 --> 00:47:27,190 1153 00:47:27,190 --> 00:47:28,616 >> অত্যন্ত মনোযোগী. 1154 00:47:28,616 --> 00:47:30,240 -আরে, আপনি সেখানে Binky অনলাইন ভাল খুঁজছেন. 1155 00:47:30,240 --> 00:47:33,400 আপনি যাতে এটা ঠিক করতে পারবো y পয়েন্ট x হিসাবে একই pointee? 1156 00:47:33,400 --> 00:47:34,000 >> অবিমৃষ্য. 1157 00:47:34,000 --> 00:47:36,780 আমি আমার যাদু জাদুদণ্ড ব্যবহার করব পয়েন্টার নিয়োগ. 1158 00:47:36,780 --> 00:47:38,740 >> হতে যাচ্ছে যে -কি আগে ভালো একটি সমস্যা? 1159 00:47:38,740 --> 00:47:39,240 কোন. 1160 00:47:39,240 --> 00:47:40,660 এই নির্দেশ pointees স্পর্শ করে না. 1161 00:47:40,660 --> 00:47:44,450 এটা ঠিক এক পয়েন্টার পরিবর্তন অন্য হিসাবে একই জিনিস নির্দেশ. 1162 00:47:44,450 --> 00:47:45,450 >> -ওহ, আমি দেখতে. 1163 00:47:45,450 --> 00:47:48,200 X হিসাবে একই জায়গায় y পয়েন্ট. 1164 00:47:48,200 --> 00:47:48,910 তাই অপেক্ষা করুন. 1165 00:47:48,910 --> 00:47:49,950 এখন, Y সংশোধন করা হয়েছে. 1166 00:47:49,950 --> 00:47:51,120 এটি একটি pointee আছে. 1167 00:47:51,120 --> 00:47:54,510 সুতরাং আপনি এর জাদুদণ্ড চেষ্টা করতে পারেন 13 পাঠাতে আবার Dereferencing. 1168 00:47:54,510 --> 00:47:56,510 >> ঠিক আছে, -Uh. 1169 00:47:56,510 --> 00:47:58,160 এটা এখানে যায়. [পপ] 1170 00:47:58,160 --> 00:47:59,340 >> -আরে যে, চেহারা. 1171 00:47:59,340 --> 00:48:00,750 এখন Y কাজ dereferencing. 1172 00:48:00,750 --> 00:48:04,991 এবং পয়েন্টার ভাগ করা হয় এক pointee যে, তারা উভয় 13 দেখুন. 1173 00:48:04,991 --> 00:48:05,490 -Yeah. 1174 00:48:05,490 --> 00:48:06,870 ভাগ, যাই হোক না কেন. 1175 00:48:06,870 --> 00:48:08,820 সুতরাং আমরা এখন জায়গা সুইচ যাচ্ছে? 1176 00:48:08,820 --> 00:48:09,440 >> ওহ, চেহারা. 1177 00:48:09,440 --> 00:48:10,830 আমরা সময় ফুরিয়েছে. 1178 00:48:10,830 --> 00:48:11,570 >> -But-- 1179 00:48:11,570 --> 00:48:13,530 >> তিন পয়েন্টার নিয়ম মনে রাখবেন -শুধু. 1180 00:48:13,530 --> 00:48:16,560 এক নম্বর, মৌলিক গঠন আপনি একটি পয়েন্টার আছে, 1181 00:48:16,560 --> 00:48:18,680 এবং এটি একটি pointee স্থানটিকে উপর. 1182 00:48:18,680 --> 00:48:20,640 কিন্তু পয়েন্টার এবং pointee, পৃথক 1183 00:48:20,640 --> 00:48:22,610 এবং সাধারণ ত্রুটি একটি পয়েন্টার সেট আপ করতে হয়, 1184 00:48:22,610 --> 00:48:25,000 কিন্তু এটি একটি pointee দিতে ভুলবেন না যাও. 1185 00:48:25,000 --> 00:48:28,170 >> দুই নম্বর, পয়েন্টার dereferencing পয়েন্টার আরম্ভ 1186 00:48:28,170 --> 00:48:31,050 এবং উপর তীর অনুসরণ তার pointee অ্যাক্সেস. 1187 00:48:31,050 --> 00:48:33,400 আমরা সব জানি, এই সেখানে যদি শুধুমাত্র কাজ করে 1188 00:48:33,400 --> 00:48:36,270 একটি pointee, যা ধরনের এক নম্বর নিয়ম ফিরে পায়. 1189 00:48:36,270 --> 00:48:39,000 >> তিন নম্বর, পয়েন্টার নিয়োগ এক পয়েন্টার নেয় 1190 00:48:39,000 --> 00:48:42,320 এবং নির্দেশ এটি পরিবর্তন অন্য পয়েন্টার হিসাবে একই pointee. 1191 00:48:42,320 --> 00:48:44,160 নিয়োগ পরে তাই, দুই পয়েন্টার 1192 00:48:44,160 --> 00:48:45,910 একই pointee নির্দেশ করবে. 1193 00:48:45,910 --> 00:48:47,990 কখনও কখনও, যে ভাগ বলা হয়. 1194 00:48:47,990 --> 00:48:49,740 এবং যে সত্যিই, এটা আছে সব. 1195 00:48:49,740 --> 00:48:50,277 বিদায় এখন. 1196 00:48:50,277 --> 00:48:51,110 [END টি ভিডিও প্লেব্যাক] 1197 00:48:51,110 --> 00:48:52,568 ডেভিড জে MALAN: এটা CS50 জন্য এটি. 1198 00:48:52,568 --> 00:48:55,110 আমরা আগামী সপ্তাহে আপনি দেখতে পাবেন. 1199 00:48:55,110 --> 00:48:56,064