[থিম সঙ্গীত] বক্তা 1: হাই, সবাই. অধ্যায় ফিরে স্বাগতম. , আমি আছি যা কেন বাহ দিন out-- নিশ্চিত, এখানে মাত্র চারটি আপনাকে নেই এবং না আমাদের স্বাভাবিক প্যাক. আমি এই সপ্তাহান্তে অসুস্থ হয়েছে. তাই আমি আপনাকে বলছি জন্য Starburst হবে না. এবং আমি কাশি শুরু হতে পারে ভয়ঙ্কর এই সারা. তাই শুধু আমার সাথে সহ্য করা. আমি সত্যিই চেষ্টা যাচ্ছি এবং, প্রথম এই মাধ্যমে পেতে যদিও আগে আমি একটি কাশি আক্রমণ আছে. কিন্তু শুধু আমাকে একটি উপর সহজ করা যে বিট সামান্য আমি জিজ্ঞাসা সব. তাই মায়া-শেকল জন্য আমাদের বিষয়সূচি মাত্র reminder-- আপনার ব্যঙ্গ আগামী সপ্তাহে হয়. আমি এটা তাই আপনি এই গত সপ্তাহে জানান প্রহরীদের আপনি বন্ধ আঁকড়ি না. তাই আমি আবার আপনি স্মারক করছি. পরবর্তী সপ্তাহে এর আপনার ব্যঙ্গ. এ উদ্দেশ্যে, পরের সপ্তাহে এর অধ্যায় আরো অনেক কিছু হতে হবে র আমি চেষ্টা ও কিছু পর্যালোচনা কাজ করব. আপনাকে বলছি পারা যদি তাই আমাকে পাঠিয়ে আমাকে সাহায্য আপনি আরামদায়ক যে জিনিস আপনার সম্পর্কে উদ্বিগ্ন হন যে, সঙ্গে আপনার জন্য চাই যে বিষয় আমাকে যে মহান হতে চাই, আবরণ. তাই আমি চেষ্টা এবং তাদের কাজ করতে পারেন আমাদের বিভাগে আগামী সপ্তাহের মধ্যে বা আপনি অতিরিক্ত উপাদান বা প্র পাঠান আপনি অন্য কোথাও পাবেন না পারে. হাঁ! আরো মানুষ আসছে! আমি খারাপভাবে শেষ যে কি হয়নি, চিন্তা সপ্তাহে, কেউ ফিরে আসতে চায়? আমি ভয় করছি. অন্য তিনটি জিনিস তাই আমরা পুনরালোচনা চলুন যে হয় ফেরৎ, ফাইল ইনপুট / আউটপুট, ও তারপর পয়েন্টার এবং গতিশীল মেমরি. আমি আপনি সব সুপার আগ্রহী নিশ্চিত নই পয়েন্টার সকলের প্রিয় বিষয়, বুঝতে এত সহজ. আমি আপনাকে বলছি সব ঠিক, যে পেয়েছিলাম নিশ্চিত নই? তাই প্রথম প্রথম জিনিষ, redirection-- এই মূলত শুধু একটি উপায় কিভাবে আপনি ইনপুট নিয়ন্ত্রণ আপনার প্রোগ্রামে জিনিষ, কিভাবে আপনার প্রোগ্রাম থেকে আপনি আউটপুট জিনিস. প্রধান উপায় যে আপনাকে বলছি এটি সঙ্গে আলাপচারিতার হয়েছে শুধু মান দিয়ে হয় এখানে আপনার মুদ্রণ পর্দা দিয়ে. কিন্তু উপায় আছে আমরা এখানে দেখতে হিসাবে pipe-- আমাদের words-- ধরনের এক পাইপ যে তথ্য অথবা একটি ফাইল থেকে একটি ফাইলে যে তথ্য. এটা শুধু বিভিন্ন উপায় আছে আপনার প্রোগ্রামে জিনিস পেয়ে এবং আপনার প্রোগ্রাম আউট, পরিবর্তে শুধু এই পর্দায় তাদের মুদ্রণ বা জিনিষ inputting কমান্ড লাইন থেকে. সুতরাং প্রথম এক সামান্য হয় ক্যারেট তার চেয়ে অনেক বেশী. এটা শুধু আউটপুট ছাপে output-- তাই পরিবর্তে আপনার পর্দায় একটি ফাইলে. আপনি মুদ্রিত যে কিছু ছিল তাই যদি "হ্যালো, দুনিয়া!" পর্দায়, আপনি পরিবর্তে এটি করা হলে , output.text যে যাও output.text নামক এই ফাইল তৈরি করে. আপনি এটি খোলার সময় এবং, এটা করব "হ্যালো, দুনিয়া!" বলে সেখানে. এই সুপার দরকারী হতে পারে আপনি ত্রুটি একটি টন আছে যদি আসলে, আমরা এই এক দেখতে হিসাবে. আপনি দুটি ক্যারেট না, তা করব ত্রুটি বার্তা মুদ্রণ. আপনি একটি সমস্যা ভোগ করছি তাই যদি কম্পাইল, এটা ত্রুটি অনেক হয়েছে এবং আপনি চেষ্টা নিচে bogged করছি আপনার কমান্ড লাইন স্ক্রোল সব তাদের মাধ্যমে, আপনি যা করতে পারেন শুধু একটি ফাইলে তাদের মুদ্রণ, যাতে যে ফাইল খুলুন আপনি তাদের মাধ্যমে সহজে স্ক্রল করতে পারেন. আমি আসলে একটা যে ব্যবহৃত অনেক যখন আমি ডিবাগ করা হয়েছিল মেশিন লার্নিং জন্য আমার 181 psets. সুতরাং এটা পরে সুপার উপযোগী হতে পারে. আপনি একটি প্রোগ্রাম আছে যদি এটি দরকারী যে হয়তো একটি লাইব্রেরি উৎপাদিত হয় অথবা কিছু সেট উৎপাদিত স্ট্রিং, এবং আপনি দেখতে পাবে প্রয়োজন এটি সঠিকভাবে তাদের উৎপাদিত হচ্ছে. এই যে কি উপায়. সুতরাং আপনি একটি ফাইল আপনি প্রিন্ট করে আরো সহজেই তাদের পরীক্ষা করতে পারেন, ডান? স্ক্রল করার চেষ্টা ভার্সেস আপনার কমান্ড লাইন মাধ্যমে. এবং তারপর এক জিনিস খেয়াল করা যে শুধু বৃহত্তর সাথে আছেন ক্যারেট তুলনায়, আপনি লেখা হলে ইতিমধ্যেই বিদ্যমান যে একটি ফাইলে তাই আমরা এই প্রথম স্থাপিত হলে ভালো সময়, আমরা, output.text করতে এটা করা এবং তারপর আমরা একটি দ্বিতীয় প্রোগ্রাম ছিল প্রোগ্রাম দুটি হিসাবে এই মুদ্রিত যে এবং, output.text করার চেয়ে অধিক করেনি এটা তাই যে সব মুছে যাবে এ কখনও ছিল কি মুছে যাবে যে ফাইলটি দিয়ে শুরু করতে. আপনি লিখবেন করতে চান সুতরাং একটি ফাইলে, আমরা এখানে দেখতে হিসাবে, আপনি শুধু লক্ষণ চেয়ে দুই বড় করতে. এবং এটা লিখবেন হবে. এটা মুছে যাবে না. আপনি একাধিক চালানোর প্রয়োজন হলে তাই প্রোগ্রাম ধরনের রাখতে এবং তাদের সব কি ট্র্যাক একই ফাইলের মধ্যে, আপনি ফিরে, যে তা করতে একটি উপায়. আপনি কি দেখেন না যদি আপনার ফাইলে কি এবং এটা, মুছে ফেলা হতে অনুমতি দেওয়া হচ্ছে আপনি শুধু চেয়ে একটি একক বৃহত্তর ব্যবহার করতে পারেন. সবাই যে জানার জন্য? শ্রোতা: ভালো লেগেছে ডট বৃহত্তর হ্যালো কাট আউটপুট ডট টেক্সট তুলনায়, মত দুইবার, এটা শুধু মাত্র আউটপুট উপর দেখাব ডট টেক্সট দ্বিতীয় time-- বক্তা 1: রাইট. তাই এটি শুধু সম্পূর্ণভাবে মূলত would দিয়ে শুরু করতে ছিল কি মুছে যাবে. এখানে, এই ফাইল যদি ইতিমধ্যে output.text আপনি কল মূলত যাই হোক না কেন, বিদ্যমান যে আবার একটি একক বৃহত্তর সাথে আপনি শুধু এটা মনে করতে পারেন তুলনায় ভালো হিসাবে এটি ফাইল প্রতিস্থাপিত. আপনি একটি শব্দ সংরক্ষণ করছেন যখন ভালো লেগেছে আপনি হিসাবে সংরক্ষণ না নথি এবং, এবং আপনি একই নামের রাখা, এবং এটি সম্পূর্ণরূপে এটিকে মুছে ফেলা হয় এই জিনিস একই ধরণের. কেউ কোনো প্রশ্ন থাকে শুধু একটি ফাইলে outputting? জট্টিল. তাই সম্ভবত, আপনি বিপরীত হলে অভিমুখ তীর, এটা ইনপুট করতে পারেন. তাই আপনাকে বলছি ছিল যখন সিজার বা Visioneer মত এবং আপনি ইনপুট কিছু করার ছিল, আপনি একটি কমান্ড লাইন আর্গুমেন্ট ছিল এটা যে আসলে ইনপুট. এই যে কি অন্য উপায়. সুতরাং পরিবর্তে অপেক্ষা একটি কমান্ড প্রম্পট জন্য, আপনার জন্য যখন জিজ্ঞাসা মত আপনার সিজার বা Visioneer মধ্যে বার্তা, আপনি একটি টেক্সট ফাইলে ছিল যে, আপনার বার্তা ছিল আপনি শুধু যে সেটিকে টাইপ করতে পারে. এই বিন্দু মত ছিল তাই সিজার কাট 3 তীর ইনপুট টেক্সট, কম যা আপনার বার্তা যে, হয় শুধু জরিমানা চালানো হবে. যখন আপনার সিজার প্রোগ্রাম আসলে ব্যবহারকারী থেকে ইনপুট জন্য জিজ্ঞাসা, এটি ইতিমধ্যেই কারণ এটি হবে আপনি এই ফাইলটি টাইপ করেছি. যে শুধু আরেকটি উপায়. Output-- শুধু একটি বিপরীত আপনার ডেটা জন্য শুধু ইনপুট. এবং তারপর গত এক পাইপের হয়. তাই এই এক এর চমত্কার. এটা আপনি করতে পারবেন কারণ এক আউটপুট নিতে প্রোগ্রাম এবং হিসাবে এটি করা অন্য প্রোগ্রাম ইনপুট. আমি আপনাকে যদি কোনো জানি না পাঠোদ্ধার সঙ্গে অভিনয় যে CS50 থাকতে পারে এটা হবে আপনাকে দেওয়া, কিন্তু আপনি কিছু নমুনা নিতে অনুমতি , ফাইল আপনার এনক্রিপশন মধ্যে এটি টাইপ, এবং তারপর সেখান থেকে টাইপ আপনার ডিক্রিপশন মধ্যে যে নিশ্চিত এটি একই নিষ্কাশিত. সুতরাং এটা কোন ধরনের তিন ভাবে লুপ মত. এটি জন্য যান. শ্রোতা: একটি প্রোগ্রাম যদি , একাধিক ইনপুট আছে যা ইনপুট এটা বলার জন্য একটি উপায় আছে জন্য টেক্সট ফাইল অথবা আউটপুট ব্যবহার করতে? বক্তা 1: এটা একাধিক ইনপুট আছে. এটি দেখতে হলে আপনার ইনপুট দায়ের যাই ইনপুট জন্য যে প্রথমবার জিজ্ঞাসা, এটা যাচ্ছে এটা, আমি মনে করি, অনুমান করতে সম্পূর্ণ ফাইল মধ্যে নল যাচ্ছে. আপনি একাধিক ইনপুট আছে, আপনি আছেন তাই একাধিক ফাইল মধ্যে বংশীধ্বনিতুল্য করা যাচ্ছে. সুতরাং যদি আপনি বার্তা জন্য বলছি আপনার কোড মধ্যে তিনবার, আপনি নির্বাণ করা চলুন তিনটি ভিন্ন ফাইল মধ্যে. এবং এটা পাগল পায়. এবং যদি আপনি থাকা উচিত নয় এখনই যে সম্পর্কে চিন্তা. কিন্তু যে ধারণা. তাই হ্যাঁ, পাইপ এক মাত্র আউটপুট হয় প্রোগ্রাম অপরের মধ্যে ইনপুট ব্যবহার করে. প্রত্যেকেরই আছে ভাল? কুল. ঠিক আছে. আপনি সম্ভবত থাকবে না এটি দিয়ে খুব বেশী কাজ করতে. কিন্তু আপনি বুঝতে উচিত উপায় আপনি এই ব্যবহার করতে পারেন. এবং কিছু ক্ষেত্রে আছে আপনি এটি ব্যবহার করতে চাইতে পারেন. তাই আমি / ণ আমি আপনাকে করছি কি জানেন দায়ের saying-- আমরা থেকে পড়া ব্যবহার করছি এবং সেখানে আমাদের পর্দায় লেখা, যা মান এবং মান আউট হয়. এবং যে আপনাকে বলছি হয়েছে কি এখানে বর্গ শুরুতে থেকে করছেন. কিন্তু আপনার পড়া এবং ফাইল লিখতে পারেন, আমি / ণ তাই ইনপুট ফাইল সব ফাইল যা, আউটপুট এটা ঘোরা সব হয়. তাই এই মূলত যে মানে আপনি এখন আপনার ডাটা সংরক্ষণ করতে পারেন. আপনি শুধু এটি যখন মুদ্রণ পর্দা, এটা মূলত, ডান সর্বস্বান্ত হচ্ছে? যত তাড়াতাড়ি আপনি হ্যালো "করা হিসাবে বিশ্বের "এবং রান" হ্যালো দুনিয়া " এটি পর্দায় "হ্যালো ওয়ার্ল্ড" ছাপে. কিন্তু আপনি সত্যিই ব্যবহার করতে পারবেন না সেখানে থেকে এটা নিয়ে কিছু. আপনি একটি টেক্সট মধ্যে সংরক্ষণ করা হলে ফাইল, তারপর হঠাৎ আপনি অনুমোদিত করছি যে এই তথ্য আছে নিপূণভাবে অথবা একটি ফাইল মধ্যে রাখা, বা পরে একটি প্রোগ্রাম মধ্যে রাখা. কারণ এক কেন আমরা কি এই মাত্র হল পরে ব্যবহারের জন্য তথ্য সংরক্ষণ করার উপায় হিসেবে. আমি এখানে ধাপের একটি দম্পতি আছে শুধু প্রমিত মাধ্যমে হাঁটা আমি / হে. ধাপ এক, আপনি একটি রেফারেন্স তৈরি করা প্রয়োজন সব সাথে ফাইলে ক্যাপ তারকা ফাইল ফাইল. সুতরাং যে একটি ফাইল পয়েন্টার সৃষ্টি করে. আমি তখন আপনি এটি খুলতে চান. এবং যদি আপনি, আক্ষরিক, বলতে শুধু ফাইল fopen সমান. এবং এই একটি ফিরে যাচ্ছে আপনি শুধু খোলা ফাইল পয়েন্টার. আমি আপনাকে একটি দম্পতি দেখেছি অফিস সময়ে বলছি. কিন্তু জিনিস এক মনে রাখতে পয়েন্টার হয় ডান কিছু ঠিকানা অথবা নাল, হতে পারে? আমরা কি কখনও একটি কেস যেখানে থাকে কিছু নাল আসতে পারেন আমরা যা করতে পারি কি আমরা কখনও এটি ব্যবহার করার আগে? আমরা যদি চেক প্রয়োজন এটা নাল বা না, ঠিক? আপনি কিছু ছিল থাকতে পারে কারণ সমস্যা যেখানে যাহা বস্তু ব্রেকআউট মধ্যে ফিরে হচ্ছে হয়েছিল নাল ছিল. আপনি সঞ্চালনের চেষ্টা এটা কিছু ফাংশন. এবং আপনার কম্পিউটার সাইটে faulted. রাইট? আমি আপনি কয়েক বাজি যে সমস্যা থাকতে পারে. Fopen সঙ্গে তাই, fopen পারেন করবে না একটি ফাইল পয়েন্টার ফিরে, অথবা যদি কিছু গোলমাল, এটি নাল ফিরে যাচ্ছে. তাই আপনি সর্বদা পরীক্ষা প্রয়োজন এটি নাল ফিরে আসেন নি যে আপনি অন্য কিছু করার প্রচেষ্টা করার পূর্বে. এটি একটি আদর্শ দৃষ্টান্ত ভালো হয় আপনি এখানে প্রয়োজন চলুন যে. একটি সুযোগ কি কখনো আছে যে কিছু নাল ফিরে আসতে পারে নিশ্চিত এটি করতে পরীক্ষা আপনি এগিয়ে যান না আগে. অন্যথা, আপনি যাচ্ছেন সুদৃশ্য সাইট ফল্ট পেতে. এবং কোন এক যারা মোকাবেলা করতে লেগেছে. আমরা এখানে দেখতে হিসাবে, প্রথম যুক্তি তাই ফাইলে মাত্র পথ. যে ফাইল উপস্থিত না থাকলে, এটা যে ফাইল তৈরি করতে যাচ্ছে. এবং এটা শুধু ফাঁকা হতে যাচ্ছে. এবং তারপর দ্বিতীয় যুক্তি আপনি চান যে মোড. আমরা এই ফাইল থেকে পড়তে চান? আপনি তা থেকে লিখতে চান? আপনি লিখবেন করতে চান? তাই আসলে আমি শুধু said-- কি ফাইল উপস্থিত না থাকলে এবং আপনার কাছ থেকে পড়ার চেষ্টা করছি এটা, এটা একটি ত্রুটি নিক্ষেপ করা যাচ্ছে. ফাইল যদি চান নাম যদি file.text এখনো বিদ্যমান নেই এবং আপনি লিখতে চান এটি করার জন্য, এটি নির্মাণ করা হবে আপনার জন্য file.text নামক একটি ফাঁকা ফাইল. এবং যদি আপনি লিখবেন করতে চান তাহলে, আপনি একই জিনিস করতে হবে. যে জানার জন্য? আপনি থেকে পড়ার চেষ্টা করছি এখনো বিদ্যমান নেই একটি ফাইল, এটা একটি ত্রুটি নিক্ষেপ করব. অন্যথা, এটি ফাইল তৈরি হবে জন্য আপনি এটি করতে চান কি না. কুল. এখন আমরা ফাইল থেকে পড়তে পারেন. এবং এই মাত্র যাচ্ছি ধরনের হয় বিভিন্ন ফাংশন মাধ্যমে আমরা ফাইল ইনপুট / আউটপুট জন্য আছে. এই ইচ্ছা , এই সপ্তাহে এর pset মধ্যে প্রয়োজন হতে আমি সঠিকভাবে মনে রাখবেন. হ্যাঁ, এটা একেবারে হতে হবে এই সপ্তাহে এর pset মধ্যে প্রয়োজনীয়. সুতরাং fgetc পরের অক্ষর ফেরৎ. শুধু লেখার একটা লাইন ফেরৎ fgets. এটা কিছু আপ আসতে হবে একটি নতুন লাইন, এবং তা ভঙ্গ করবে. সুতরাং fread একটি নির্দিষ্ট সার্চ বাইট এবং জায়গা তাদের সংখ্যা একটি অ্যারের মধ্যে যা কিছু আপনি পারে হয় পুনরায় মাপ সঙ্গে কাজ করতে চান দরকারী হতে পারে. কত মানুষ পঠিত উপায় দ্বারা pset বৈশিষ্ট,? ঠিক আছে. [শ্রবণাতীত] বক্তা 1: ঠিক আছে. ঠিক আছে. এটি একটি মজার pset এর যে সব নিশ্চিতভাবে পড়তে. আপনি একটি মোছা মেমরি পুনরুদ্ধার পেতে এটা কাজ করে যখন সত্যিই উত্তেজনাপূর্ণ card--. কিন্তু স্পষ্টভাবে, যে পড়া শুরু. আমার সাথে কথা বলার আসুন আপনি যদি এটা আমার প্রশ্ন আছে. ঠিক আছে, তাই হিসাবে আমি বলছে ছিল, fread বাইটের একটি নির্দিষ্ট সংখ্যক সার্চ. যে কিছু অবাধ সংখ্যা আপনি সেট করতে যাচ্ছেন যে. এবং তারপর শুধু প্যাচসমূহ যাও fseek একটি নির্দিষ্ট অবস্থান থেকে. তাই হয়তো আপনি না যত্ন পরের 10 বাইট সম্পর্কে. আপনি শুধু এগিয়ে থামিয়া চান. আপনি ঐ যত্নশীল না. আপনি বাইট 11 থেকে আরম্ভ পড়তে চাই. fseek আপনি যে কাজ করতে পারবেন. সুতরাং আপনি নির্বাচনী হতে পারবেন আপনি কি পড়ি সম্পর্কে. Fgetc, fgets, এবং fread পঠিত কারণ ফাইলের মধ্যে একটি নির্দিষ্ট জায়গা থেকে. এই সম্পর্কে চিন্তা একটি উপায় এই যদি হয় আমাদের ফাইল হয়, আপনি প্রথম এটি খোলার সময়, আপনি ফাইলে এই অবস্থানে আছে যে শুরুতে শুরু হয়. যখনই আপনি কল fgetc, fgetf, বা fread, এটা থেকে শুরু করতে যাচ্ছে এই অবস্থান চিহ্নিতকারী. এর আপনি শুধু পড়তে চান বলে যাক এখানে উপর মেমরি এই অঞ্চলে. আপনি শুধু কল করতে পারবেন না. আপনি এখানে উপর চাইতে আছে এবং তারপর সেখান থেকে পড়া বা পড়তে, পায়, বা getc, আপনি চান উপর নির্ভর করে. তাই শুধু আপনি করতে পারবেন চাইতে মেমরি অংশ লাফালাফি. এবং যে শুধুমাত্র এর আপনি জিনিষ থামিয়া যাবে উপায় আপনার বাফার সেগুলি পড়া ছাড়া. সবাই যে জানার জন্য? একথাও ঠিক যে, সেখানে একটি সমান্তরাল এখানে অনেক আমাদের আউটপুট, বা ইনপুট ফেরৎ, আপনি পড়তে এবং লিখতে হয়েছে. সুতরাং fputc শুধু লিখছে একটি ফাইলে চরিত্র. fputs একটি লাইন লিখেছেন. Fprintf একটি ফরম্যাট আউটপুট ছাপে. আপনি ট্যাব আছে সুতরাং, অথবা স্থান, বা যে কোন বস্তু. এবং তারপর fwrite কিছু লিখেছেন একটি ফাইলে বাইট অ্যারের. সুতরাং এই একই উপায় fwrite এবং fread অনুরূপ হয় opposites-- fgets, fputs, এবং তারপর fputc এবং fgetc-- প্রচুর এর পাগল, দ্রুত জিনিস. শুধু ধরনের এই handy-- রাখা আপনি বিভিন্ন সময় আছে করব যেখানে হয়ত আপনি শুধু চাই একটি সময়ে এক চরিত্র. হতে পারে আপনি একটি সম্পূর্ণ লাইন চান. আপনার অভিধান pset-- সঙ্গে যা দুই psets হয়, আমি মনে করি আমরা আপনাকে একটি পুরো দিন, বিশ্বাস একটি টেক্সট বিন্যাসে অভিধান যা প্রত্যেক শব্দ আছে একটি রেখা দ্বারা পৃথক. আপনি পড়তে চেয়েছিলেন তাই একটি সময়ে একটি শব্দ সালে, আপনি পড়ি যদি আপনি কি ব্যবহার হতে পারে এবং তারা সব, নতুন লাইন আলাদা করছি এবং আপনি শুধুমাত্র একটি সময়ে একটি শব্দ চান? শ্রোতা: fgets বক্তা 1: রাইট. Fgets-- যে ফেরৎ কারণ যাই হোক না কেন এক লাইন হয়. এবং প্রতিটি শব্দ তার যদি নিজের লাইন, আমরা fgets ব্যবহার করতে পারেন. কুল. যে অর্থে, সবাই করতে? কুল? হ্যাঁ, আমরা পেতে যাচ্ছেন পয়েন্টার সাথে মজা অংশ খুব শীঘ্রই, যেখানে আপনি কিছু গণিত না পেতে. এবং এটা মহান হবেন. আপনার ফাইল বন্ধ step-- সর্বশেষ. এখানে অনেক কিছু সাথে, আমাদের paradigms এক এটা আসতে পারেন যদি হয় নাল, নাল জন্য চেক. আপনি কিছু খুলতে হলে, আপনি ভাল এটা বন্ধ করতে চাই. আপনি না হওয়া পর্যন্ত ঠিক আছে, তাই আপনি কাজ করছি না আপনি এটা বন্ধ করেছি, যদি না কাজ. কাইন্ড এটি উপর না ভালো চর্বি ভদ্রমহিলা sings পর্যন্ত. এটি আপনার ফাইল বন্ধের মত. এটা এখানে, বলেছেন শুধু সবসময়, পুনরাবৃত্তি আপনি আগে আপনার ফাইল খুলতে পড়া বা তা লেখা. আপনি এটা খোলা থাকেন এবং যদি সবসময় এটা বন্ধ. ঠিক আছে? কুল. তাই এখানে একটি উদাহরণ. আমি জানি না tiny-- তাই আপনি যদি ছেলেরা খুব ভাল দেখতে পারেন. শুধুমাত্র আমরা বাড়াতে পারে একরকম উজ্জ্বলতা. আমি সম্ভব হলে আমাকে আসলে এই করুক. ঠিক আছে, আপনি না করতে পারেন না সত্যিই আপনি, যে এ সব করতে পারেন দেখতে? ঠিক আছে, আমরা তাহলে, এই কাজ করতে যাচ্ছেন. [শ্রবণাতীত] আমি এই দেখতে অনেক ভালো নিই. কেউ যেখানে দেখতে পারি আমার প্রশ্ন মাউস গিয়েছিলাম হয়? আহ, সেখানে এটি সংগ্রাম কি হচ্ছে ÑÑ! ঠিক আছে. মূলত, আপনাকে বলছি ধরনের থাকা উচিত কি এই একটি ধারণা নিয়ে করছে. এটা নিখুঁত নয়. ব্যয় বেশী কিন্তু আমি বরং এটি ব্যাখ্যা চাই আরো সময় সঠিকভাবে ফরম্যাট করার চেষ্টা. মূলত, আপনি এখানে দেখুন, আমরা ফাইল খোলা দিয়ে শুরু. এবং আমরা কিছু আছে আমরা যে ডাটাবেস ফাইল যে খোলার এটি আমাদের ছাত্র বলছেন. এবং আমরা তা লিখতে যাচ্ছেন. অবশ্যই তাই, নাল ফিরে. সুতরাং আমরা নাল জন্য চেক আছে. আর এটা না তারপর যদি নাল, আমরা মধ্য দিয়ে যেতে. আপনি দেখুন, আমরা আছেন এখানে মাধ্যমে looping. ছাত্র আছে. শিক্ষার্থীরা তিন হিসেবে নির্ধারিত হ্যাশ হয়. এবং কি আমরা করছেন আমরা হয় হয় ডান, ফাইল প্রিন্ট করার? তাই আমরা আমাদের ফাইলে মুদ্রণ হয়? শ্রোতা: স্কোর অ্যারের মধ্যে যে হয়? বক্তা 1: হ্যাঁ. যা স্কোর ঠিক অ্যারে. সুতরাং আমরা এই খোলার হয় ডাটাবেস ফাইল, যা আমি অনুমান কিছু বাছাই করা বাংলাদেশের ডাটাবেসের. এবং আমরা শুধু আউট মুদ্রণ করছি যে ফাইল থেকে প্রতিটি ছাত্র এর স্কোর. কুল? গুড. জট্টিল. ঠিক আছে. চাচ্ছি ফিরে পেতে চলুন শুরু করা যাক শ্রোতা: আমি একটি দ্রুত প্রশ্ন আছে. লুপ জন্য printf, না হয়? যে শুধু যদি লুপ এর? বক্তা 1: না, এটা লুপ জন্য আছে. আমি এখানে আপ খুব ভাল আমার মাউস দেখতে পারে না. তাই আমি বিচলিত করছি সঠিকভাবে ফরম্যাট যে. এই বন্ধনী সর্বস্বান্ত করা উচিত. এটা এখানে নিচে হওয়া উচিত. এই লুপ জন্য আপনার মধ্যে কি হয়. এখন পর্যন্ত. এখন এটা প্রশংসনীয় এর. সুতরাং যে তা ছাড়া be-- উচিত কিভাবে আমি বরখাস্ত যে যে শেষ বন্ধনী জন্য. ঠিক আছে. সবাই যে জানার জন্য? ঠিক আছে. আমরা এগিয়ে চলুন পরের জিনিস করতে then-- যা, আসলে, আপনি যাচ্ছেন কোড দেখতে প্রয়োজন. তাই আমি ঠিক করছি যাচ্ছে যে ওভার এখনই কপি. ঠিক আছে. তাই আমি এই কোড আপনাকে বলছি দেখাতে যাচ্ছি. এবং আমি আপনি চেষ্টা এবং চিত্রে চাই এটা অনুমিত এর কি আউট করতে. সুতরাং একটি মিনিট বা তাই নিতে যে সব দেওয়া. চেষ্টা করে দেখুন এবং এখানে যাচ্ছে জিনিসটা কি. কোন ধারনা? আমরা যে আমরা জানি অন্তত দুই কমান্ড লাইন আর্গুমেন্ট, ডান? আমি যা এক হতে যাচ্ছে অনুমান যে [শ্রবণাতীত] আমাদের প্রোগ্রাম এর এবং তারপর অন্য কিছু. [শ্রবণাতীত] কম হয় কারণ যদি দুই তুলনায়, আমরা তাদের চিত্কার. রাইট? এবং ব্যবহার থেকে, এটি ভালো দেখায় এটি ফাইলের কিছু বাছাই হতে যাচ্ছে. আমরা সব যে সম্মত? তাই এখন, করছেন লুপ কি? এটা কি মাধ্যমে যাচ্ছে? শ্রোতা: সব ফাইল. বক্তা 1: যথাযথভাবে. এটা মাধ্যমে যাচ্ছে সব আমরা সেখানে ইনপুট করেছি যে ফাইল. সুতরাং প্রতিটি ফাইলের জন্য, এটা সেখানে কিছু পংক্তি আপ খোলার. এটা যে ফাইল খোলার আপ এর. রাইট? এবং এটা থেকে পড়া হচ্ছে. এটা নাল অবশ্যই, যদি চেক. এবং তারপর এটা মুদ্রণ এর. এটা নাল, এটা শুধু আমাদের বলার হচ্ছে যে যে বিদ্যমান একটি ফাইল নয়. সাথে, মনে রাখবেন কারণ আমাদের ফাইল অস্তিত্ব আছে পড়তে. রাইট? লেখার এবং পরিশেষে যোগ দিয়ে, আপনি এটি দিয়ে পার পেতে পারেন. কিন্তু পঠিত সাথে আমাদের ফাইল অস্তিত্ব আছে. এবং তারপর এটি বিদ্যমান থাকলে, আমরা এখানে কি করছেন? এর ঠিক এখানে শুরু করা যাক. কি এই এই প্রথম অক্ষর do--. এটা কী কাজ করে? তিনি ডান, এক চরিত্র পায়? তাই কি এই কাজ করা হয়? এটা প্রথম অক্ষর শুরু হচ্ছে. যে কেউ ফাইলের শেষে জানি? শ্রোতা: ফাইলের শেষে? বক্তা 1: ঠিক ফাইল শেষ. সুতরাং এটা মাধ্যমে যেতে যাচ্ছে সম্পূর্ণ ফাইল, ডান? এবং তারপর এটি দ্বারা আপডেট করতে যাচ্ছে প্রতি পরবর্তী চরিত্র পেয়ে. রাইট? এবং এটা কি করছে? শ্রোতা: যে ফেলে in-- বক্তা 1: Putchar প্রিন্ট আপনার স্ক্রিন থেকে. [শ্রবণাতীত] চরিত্র. এবং তারপর যখন এটি [শ্রবণাতীত] এই ফাইল বন্ধ হবে. শ্রোতা: আপনি না একটি [প্রয়োজন? অন্য? ?] বক্তা 1: অগত্যা. আমি এটা ধরনের এই মধ্যে উহ্য, মানে. এই দীর্ঘ হিসাবে, যদিও, ফেরৎ কারণ এই এই ধরা না, আপনি সূক্ষ্ম. আমি সম্ভবত এটি ভাল মানে একটি অন্যথায় করতে অনুশীলন. কিন্তু একটি অন্যথায় সবসময় নয় প্রয়োজনীয় বিশেষ করে আপনি কিছু থাকে তাহলে একটি ফিরতি, মত যা এই ক্ষেত্রে এটি ক্যাচ যদি যে মানে এটি, আপনার প্রোগ্রাম শেষ করতে যাচ্ছে এবং এটা এই পেতে না. এটা আপনি আছেন যেখানে কেস জন্য আরো অগত্যা কিছু ফিরে না. এই ছিল না কারণ যদি কিছু ফিরে, এটি, এই সত্য হলে যে অর্থ হবে এই বাকি এখনও চালানো হবে. এবং যে ক্ষেত্রে, আপনি একটি মিথ্যা চায়. এটা ফিরে পাবে তাহলে, এবং আপনার প্রোগ্রাম এর সমাপ্তি, একটি অন্য সব প্রয়োজন নেই সময়, কনটেক্সট উপর নির্ভর করে. জ্যাকব, আপনি একটি প্রশ্ন আছে? শ্রোতা: হ্যাঁ. তাই পরবর্তী চরিত্র পেতে fgetc আছে? চরিত্র কিভাবে বৃদ্ধি করে? বক্তা 1: হ্যাঁ. সুতরাং fgetc পরবর্তী চরিত্র পায়. আপনি একটি অর্থে সি ++ মত মনে করতে পারেন. শ্রোতা: ফাইলের শেষে কি তাই ছিল? বক্তা 1: ফাইলের শেষে ফাইলের শেষে হয়. এটা ঠিক আপনি জানেন যা আপনাকে একটি মার্কার এর আপনি আপনার ফাইল এর শেষে যে. তাই এই মুদ্রণ যাচ্ছে আপনার মান বের করতে. এবং তারপর এটা বন্ধ করতে যাচ্ছে যখন এটি সম্পন্ন করা ফাইল. এবং তারপর এর যান পরবর্তী ফাইল, ডান? তাই সামগ্রিক, এই প্রোগ্রাম কি কাজ করে? [শ্রবণাতীত] বক্তা 1: হ্যাঁ. এটা ঠিক আছে সবকিছু আউট ছাপে. আপনাকে বলছি কখনও ব্যবহার করে ক্যাট তাই কিছু ফাইল এবং তারপর নাম আপনি কোন আছে যদি আমি জানি না কখনও আপনার টার্মিনালে যে কাজ. কিন্তু আপনি কি কখনও ব্যবহার করা হলে কমান্ড CAT-- সি-একটি-T-- এবং তারপর যাই হোক না কেন ফাইল আপনি এটা সেখানে আছে আপনার টার্মিনাল, তা ছাপে আউট যা কিছু জিনিস জন্য অতি সহজ হতে পারে. আমি এটা অনেক ব্যবহার. সবাই যে জানার জন্য? কুল? ঠিক আছে, তাই আপনার টাস্ক হয় now-- নিজের বা পৌছে দিতে চারপাশের মানুষের সঙ্গে শুধুমাত্র একটি সহজ প্রোগ্রাম লিখতে হয় যে শুধু "হ্যালো, দুনিয়া!" লিখতে হবে একটি ফাইলে আউট. [শ্রবণাতীত] [শ্রবণাতীত] বক্তা 1:, আমি ভালো ছিল আমি যে খারাপভাবে গত সপ্তাহে কি? আমি এটা যে খারাপ ছিল না মনে হয়. আমি আপনি সব এখানে এসেছি খুশি. এটা সত্যিই আমাকে খুশি করে তোলে. আমি সহজ আনন্দ একটি মেয়ে নই. আমার অধ্যায় প্রচারপত্র যখন আমি শুধু চাই. তাই আমি শুধু এই জন্য শুরু করছি আপনাকে বলছি আমরা একসাথে কোড করতে পারেন যাতে. আমি যে কারও নির্বাণ চাই না স্পট আপনি হতে চান, যদি না. শ্রোতা: প্রশ্নোত্তর জন্য, কি আমরা একটি প্রোগ্রাম লিখতে হবে? বক্তা 1: আপনি করতে বলা হতে পারে হাত দ্বারা সহজ প্রোগ্রাম লিখতে. হ্যাঁ. শ্রোতা: প্রশ্নোত্তর অধিকার, পরের সপ্তাহে হয়? বক্তা 1: প্রশ্নোত্তর পরের বুধবার. এটা একটি সুদৃশ্য [আছে মানে? সিএসই?] পরে পার্টি শূন্য যা আপনি আপনার স্কোর পাবেন মানে ফিরে কি সময়ে night-- যে? কে জানে? কিন্তু এটা যে রাতে হতে হবে. ঠিক আছে. কিভাবে আমরা এই শুরু করতে চান? আমি আপনি এই সঙ্গে একটি hint-- শুরু দেব. শ্রোতা: আপনি একটি ফাইল খোলা আছে. বক্তা 1: হ্যাঁ. তাই কি আপনি এই কল করতে চান না? আপনি শুধু "ফাইল" এটি কল করতে চান? এর এটা সহজ করা যাক. তাই কি fopen-- আমাদের হতে যাচ্ছে আউটপুট পরীক্ষা? "হ্যালো." এটা কল করুন আর আমাদের মোড কি? আমরা এই ফাইলে কি করছেন? শ্রোতা: পড়ুন. লিখন. বক্তা 1: আমরা এটা করতে লেখার. বাহ. ঠিক আছে, তাই আমরা এখন এই ফাইল আছে. আমরা কি করতে হবে? শ্রোতা: এটা নাল যদি চেক করুন. বক্তা 1: এটা ঠিক শূন্য যদি চেক করুন. এটা কি আমি শুনতে চাই কি. যে বিশেষ করে, স্বয়ংক্রিয় হওয়া উচিত এই বিন্দু থেকে অনেক সুন্দর. আপনি segfaulting, তাহলে সম্ভবত শুরু হলে কোথাও নাল জন্য চেক করা হয়নি. দশ আউট নাইন বার, যে আপনার ত্রুটি হতে যাচ্ছে. আপনি শুধু পেতে পারে যদি তাই এটা নাল যদি অভ্যাস, সবসময়, চেক আপনার জীবন হতে যাচ্ছে চমৎকার এবং easy-- বা সহজ. সুতরাং এটা নাল কিনা দেখতে পরীক্ষা. এটি নাল না হলে, যা তাই ঠুং সমান কি মানে এটা বৈধ নাল না. আমরা কি করতে চাও? আমরা শুধু প্রিন্ট করতে চান যে ফাইল থেকে, ডান? তাই আমরা ব্যবহার করতে যাচ্ছি? শ্রোতা: fprintf বক্তা 1: Fprintf-- সুদৃশ্য. এবং fprintf দুই arguments-- যেখানে লাগে এটা যাচ্ছে এবং তা আমরা মুদ্রিত চান না. সুতরাং প্রথম এক কি? এটা কোথায় যাচ্ছে? শ্রোতা: ফাইল. বক্তা 1: এটা দায়ের করে যাচ্ছে. এবং আমরা মুদ্রিত কি চান না? "হ্যালো, দুনিয়া!" ঠিক আছে. আমরা এক শেষ জিনিস আছে এখানে আরেকটি বড় দৃষ্টান্ত. শ্রোতা: বন্ধ. বক্তা 1: বন্ধ. এখন পর্যন্ত আপনি যান. শ্রোতা: এই ঘটছে ফাইল নাল যদি? বক্তা 1: এটা নাল না যদি না, এই হল. শ্রোতা: ওহ, যদি এটা not-- ঠিক আছে. তারপর fopen এবং জন্য ভিতরে যেতে যে দুটি আর্গুমেন্ট, প্রথম যুক্তি আবার কি মানে? বক্তা 1: যুক্তি শুধু ফাইলের নাম মতো আপনি যেতে চান. এই রান পর সুতরাং, আপনি would "হ্যালো" বলা কিছু ফাইল আছে যে এটি মধ্যে "হ্যালো, দুনিয়া" ছিল. এই যা. শুধু নাম. শ্রোতা: এবং এটা যেহেতু লেখা, ফাইল ইতিমধ্যেই বিদ্যমান নেই. আপনি বলেন কি যে হয়? বক্তা 1: রাইট. যথাযথভাবে. "হ্যালো" একটি ফাইল হিসেবে থাকে এখনো বিদ্যমান নেই, এটা নামক একটি ফাইল তৈরি করতে যাচ্ছে হ্যালো "এবং এটা আপনার জন্য লিখুন. শ্রোতা: আপনি কহন করছি প্রোগ্রাম, ফাইল লেখেন করতে কেন আপনি লিখুন "ফাইল" পরিবর্তে করবেন ফাইল এবং fprintf-- নাম বক্তা 1: এই ক্ষেত্রে, আমরা আছে সব caps-- তারকা মধ্যে যে বড় ফাইল, ফাইল. সুতরাং এটি একটি ফাইল পয়েন্টার এর যে আপনি যে বিষয়ে কথা বলছি. এই ভাবে যে আমরা শুধু এটি পড়ুন. তাই এই ক্ষেত্রে, আপনি ফাইল অই মনে করতে পারেন, আমরা এখানে আপাততঃ বর্তমান ফাইল ব্যবহার করতে পারেন "হ্যালো" খোলার বোঝায় এবং এটা লিখতে লেট. শ্রোতা: আমরা একটি "হ্যালো" করা যায়নি পরিবর্তে [? শুধু?] চ ফাইল? বক্তা 1: না, কারণ "হ্যালো" খোলা ও লেখার যোগ্য হতে হবে. এখানে ফাইল একটি ভালো হয় ওকে বলল যে designator, আমরা এই ফাইল হ্যালো আছে আমরা এ খুঁজছেন যে. এটা খোলা হয়েছে. এবং আমরা তা লিখতে যাচ্ছি. আপনি শুধু "হ্যালো" ব্যবহার করেন, যে এটি মধ্যে encapsulated হয়. সুতরাং এটা খেয়াল আউট করে যাচ্ছে. আমি আপনাকে এটা নামে থাকতে পারে, মানে. আপনি, ফাইল কাজ করতে পারে তারকা, "হ্যালো", যে সমান. কিন্তু পুরো পয়েন্ট আপনি যে হয় যাতে একটি ফাইল তারকা পয়েন্টার প্রয়োজন এই ফাংশন ব্যবহার করতে পারবে. শ্রোতা: আপনি কি যায়নি ফাইল, তারকা, ফাইল, "হ্যালো" অথবা আপনি দিতে হবে না এটা দ্বারা, ফাইল তারকা দায়ের? বক্তা 1: আপনি পারে "হ্যালো.", ফাইল, তারা কি আপনি এই পরিবর্তন করতে পারেন যাহা নাম আপনি চান. এটা সম্পূর্ণভাবে নির্বিচারে যে নাম কি. আপনি এটা কিছু নাম দিতে পারেন. আপনি চেয়েছিলেন, স্প্যাঘেটি উড়ন্ত এটির নাম দিন. শ্রোতা: মার্কিন কোট মধ্যে "W" কি? বক্তা 1: "W" ঠিক মোড. সুতরাং আমরা এই ফাইলে লেখা করছি. প্রত্যেকেরই ভাল? সাফ? হ্যাঁ. শ্রোতা: এটা এই লিখছে তাই যখন যেখানে আমরা তারপর যে ফাইল খুজে পাবেন, দায়ের? বক্তা 1: এটা একই থাকব আপনি বর্তমানে করছি যে ডিরেক্টরি. আপনি pset তিনটি হন এবং আপনি আপনার pset মধ্যে এই, রান তিনটি ফোল্ডারের হতে যাচ্ছে নামক এই ফাইলটি "হ্যালো." কুল? প্রত্যেকেরই ভাল? আপনি সমস্ত করছি মত আমি অনুভব যা মহান, এটা পেয়ে. ঠিক আছে. তাই ফিরে আমার স্লাইড show-- যাও কিছু কাজ যখন আমি ভালোবাসি. ঠিক আছে, আপনাকে বলছি অধীর পয়েন্টার কি? পয়েন্টার মহান. তারা একটি সামান্য বিট গ্রহণ আপনার মাথার চারপাশে মোড়ানো. এটা আমার দ্বিতীয় বছর শিক্ষণ পয়েন্টার. এবং আমি পরিশেষে আমি এটা পেয়েছিলাম মনে. আপনি সংগ্রাম সুতরাং, যদি এটা ঠিক আছে. আমি আগে বলেছি, ছবি অঙ্কন , সি এস এ জিনিষ সঙ্গে অনেক সাহায্য করে যতটা আমি মানুষ ঝোঁক মনে হিসাবে ওহ, আমরা একটি কম্পিউটার এ আছেন মনে করতে. আমরা শুধু কোড উচিত. No-- অঙ্কন ছবি সত্যিই আপনাকে সাহায্য করবে. এবং আমি সত্যিই উত্সাহিত আপনার kindergartner দিকে জোড়ার এবং crayons বের করে আনা বা চিহ্নিতকারী এবং ড্র. এটা আপনাকে সাহায্য করবে কারণ. এবং আপনি অফিস সময়ে আমাকে দেখতে যদি, আমি কাগজ stacks কাছাকাছি বহন করা হবে কলম সেটা আঁকার সঙ্গে. তাই বিশেষ করে দিয়ে ছবি আঁকা পয়েন্টার. এবং আমি আসলে আমরা চলুন নিশ্চিত নই এখানে খুব কিছু ছবি আঁকার হতে. তাই আপনাকে বলছি সব, Binky দেখতে পেয়েছিলাম এই শান্ত claymation জিনিস. আমরা যে যখন সত্যিই মজার মনে তিনি পোশাক একটি গুচ্ছ মধ্যে explodes. এটা বর্গ জন্য কিছু কমিক ত্রাণ না. সি [শ্রবণাতীত] এই মহান ক্ষমতা মেমরি নিয়ন্ত্রণ পাবে. এবং এটা যে সত্যিই জিনিস এক এটি যেমন একটি শক্তিশালী ভাষা করে তোলে. কিন্তু মহাশক্তিধর আসে সঙ্গে মহান দায়িত্ব. আর পাগল ব্যাপার ঘটতে পারে আপনি সতর্ক থাকুন না হন তাহলে. তাই আপনি ব্যবহার করছেন যখন পয়েন্টার, আপনি করতে চান নিশ্চিত করুন যে আপনি সত্যিই বুঝতে ঠিক কি আপনি কাজ করছেন. এর আশা করছি পরের সামান্য বিট সময় আপনি কি সত্যিই বুঝতে সাহায্য করবে পয়েন্টার, কিভাবে সেগুলো ব্যবহার করা, এবং তাদের নিপূণভাবে কিভাবে. তাই আমি মনে করি আমরা করেছি নিশ্চিত নই মেমরি আগে এই চিত্রটি দেখা. সুতরাং এই মাত্র একটি সহজ চিত্রটি হয় কিভাবে জিনিষ মেমরি সংরক্ষণ করা হতে পারে. সুতরাং আপনি মূলত এই আছে এক বাইট ব্লক বিশাল অ্যারে আমরা এখানে সামান্য আছে কি এক প্রতিটি সময় দ্বারা বাড়তি. এই হেক্স হয় [শ্রবণাতীত] তাই আট বিট ব্লক. এবং প্রত্যেক ব্লক যুক্ত হয় কিছু হেক্সাডেসিমেল ঠিকানা দিয়ে. আপনি কি কখনও দেখতে হলে তাই 0x, যে শুধু অবৈধ কাজ করছে এটি একটি হেক্সাডেসিমেল ঠিকানা আছে যে. আপনি এই মানে অনুমান করতে পারেন মেমরি কিছু অঙ্ক. আমরা মেমরি অ্যাড্রেস বিষয়ে কথা বলছি যখনই আপনি হেক্সাডেসিমেল দেখতে. আমরা ints ভেরিয়েবল আছে, floats সঞ্চয় যে ভেরিয়েবল. Ints দোকান ints তাই. Floats দোকান floats. সুতরাং আমরা পয়েন্টার আছে যে দোকান মেমরি অ্যাড্রেস. যে ম্যাপিং কেমন আছে. পয়েন্টার একচেটিয়াভাবে হয় মেমরি ঠিকানার জন্য. সুতরাং যে আছে আপনার টাইপ মত. তোমার যন্ত্র 32-বিট, যার মানে হল আপনার মেমরি ঠিকানা চার বাইট যে. সুতরাং আপনি আছে কোনো পয়েন্টার এছাড়াও চার বাইট হতে যাচ্ছে. অথবা এটা চার বাইট এর অন্যথায় যদি, মেমরি চার বাইট. পয়েন্টার দোকান মেমরি. অতএব, তারা চার বাইট করছি. Cool-- শুধু যে শক্তিশালী করা চাই. আপনি এখন এই কমিক পাওয়া উচিত. আমি আপনাকে কত জানি না xkcd ভক্ত আছে, কিন্তু আমি xkcd ভালবাসেন. এটা দারুণ. ঠিক আছে. আমি আগেই বলেছি তাই এটি, পয়েন্টার তৈরি প্রায় কাছাকাছি শুধু অন্য কিছু চাই. আপনি একটি ধরন আছে. আপনি একটি নাম আছে. রাইট? যে আমরা সেখানে আছে কি. [? হেক্স?] তারকা, এটি একটি পয়েন্টার মানে এবং তারপর আপনি এটি কল করতে চান যাই হোক না কেন. তাই টাইপ প্রতিনিধিত্ব করে আপনি সংরক্ষণ করতে পারেন কি. ঠিক আছে? একই ভাবে যে আমরা ints না, আমরা আমরা সেখানে কোন int সংরক্ষণ করছেন জানেন. একটি পয়েন্টার সঙ্গে, এটা একটি মেমরি ঠিকানা ঝুলিতে. কিন্তু কি তা মানে এখানে যেখানে যে সব হয় একটি আঁকার কাজে লেগে যাচ্ছে. তাই এই ক্ষেত্রে, আমরা আছে কিছু এর চার কথা বলা যাক মান. চার অঙ্ক এক সময়ে হয়. ঠিক আছে? এই প্রথম এক এখানে মানে এটি একটি পয়েন্টার 2x যে. রাইট? এটা কিছু পয়েন্টার এক্স এর. এক্স, যাহা কিছু হতে পারে. যাই হোক এক্স এক্স চার বলে হচ্ছে ÑÑ. এটা সংরক্ষণ করে যাচ্ছে এখানে মেমরি ঠিকানা. সুতরাং কোন int, তারকা, x-- এই হল মেমরি মধ্যে কিছু অন্যান্য স্লট যারা এই কি জানেন. কিন্তু এটা এখানে একটি ঠিকানা সংরক্ষণ করে যাচ্ছে. তাই এই ভালো হতে হবে এই ক্ষেত্রে, যে কোন কিছু, সঞ্চিত হয় যাই হোক না কেন 0x1-- এ সংরক্ষিত হয় আমাদের পয়েন্টার ঝুলিতে যে ঠিকানায়, সাথে মেলে করেছে কি আমরা মনোনীত করেছি. সুতরাং 0x1 এ, এই ক্ষেত্রে, এই হল x. এই শুধুমাত্র কখনও একটি হতে পারে আমরা এই ব্যবহার করছেন, যখন int. একইভাবে, যদি আমরা আছে অন্য 1 বর্ষ, যাই হোক না কেন একটি Y আছে সাথে অঙ্ক সংরক্ষিত হয় z- র সাথে একটি char-- একই জিনিস হতে. একই ভাবে, যখনই আপনি এবং চেষ্টা intX 0.4 সমান না, এটি আপনাকে চিত্কার এবং হতে যাচ্ছে কোন মত, আপনি কোন int চেয়েছিলেন তিনি. এই কোন int হতে অনুমিত হয়. এটি একটি float করতে চেষ্টা করা বন্ধ করুন. সুতরাং জিনিস তারা হতে চান কি হতে দিন. জিনিষ নিজেদের হতে দিন. তাই বড় বিষয় ঠিক হয় পয়েন্টার যাই হোক না কেন টাইপ এটি যে শুধুমাত্র এর, হয় আপনি সেখানে সংরক্ষণ করতে পারেন জিনিস. ঠিক আছে? অনুশীলন সঙ্গে, সঙ্গে হিসাবে গত সপ্তাহে, সবকিছু সত্যিই ধরনের বিমূর্ত মনে হয়. আমরা কিছু অভ্যাস করতে যাচ্ছেন. এটা আরো জানার উচিত. সুতরাং উল্লেখ এবং এটা dereferencing-- সত্যিই গুরুত্বপূর্ণ এই সোজা পেতে. আমি এখনও রিফ্রেশ করতে হবে হরদম. আর আমি যা এক চাও, অপেক্ষা ভালো আছি? সুতরাং ampersand আসলে দিতে হবে আপনি এর রেফারেন্স বা ঠিকানা. সুতরাং ঠিকানা মধ্যে ফেরৎ যা পরিবর্তনশীল এর মেমরি সংরক্ষণ করা হয়. সুতরাং এটা আসলে আপনি ফিরে যাচ্ছে একটি হেক্সাডেসিমেল, এটি dereferencing যেহেতু আসলে আপনি দিতে যাচ্ছে সেখানে সংরক্ষিত হয় যে ডেটা. ঠিক আছে? সুতরাং আমরা একটি উদাহরণ তাকান চলুন সত্যিই দ্রুত, বা আসলে আপ পরবর্তী. ঠিক আছে. সুতরাং আমরা সত্যিই মনে আছে সাবধানে এই সম্পর্কে. তাই আমরা এখানে কিছু পূর্ণসংখ্যা x আছে. আমি চেষ্টা এবং এই আকর্ষণ করতে যাচ্ছি আমার ক্ষমতার শ্রেষ্ঠ আউট. সুতরাং আমরা এই স্লট এক্স আছে চলুন. এবং এটা পাঁচটি সংরক্ষণকারী হচ্ছে. তার অঙ্ক 0x4 হয়. কুল? সমস্ত ভাল. তাই এখন আমরা এই পয়েন্টার আছে. এটা এখানে ছিল বেশী. এবং ampersand আমাদের দেয় কিছু অঙ্ক. সুতরাং, এই ক্ষেত্রে, এটা x এর ঠিকানা. X এর ঠিকানা কি? 04-- এবং এই পয়েন্টার 0x08 এ হয়. কুল? সুতরাং আপনি এই সম্পর্কে চিন্তা করতে পারেন পয়েন্টার, 04, শুধু এখানে উপর পয়েন্ট. তারা পয়েন্টার বলা করছি আমরা এই মধ্যে আরও পেতে হিসাবে কারণ, আপনি জিনিষ প্রতি নির্দেশ দেখতে যাচ্ছেন. আর এক ব্লক থেকে অন্য ইশারা ব্লক অনেক আরো জানার জন্য হবে. তাই এখানে দুটি. এবং তারপর আমরা কিছু আছে what-- 0x0c যা কপি,. এবং এটা যাচ্ছে আমাদের পয়েন্টার ডি-রেফারেন্স. তাই কি এটা বলছে হয় ঠিক আছে, এখানে আমাদের পয়েন্টার. এটা সঞ্চয় করে মূল্য কি 0x04 হয়, এবং এটা এই ঠিকানায় যেতে হয় বলছে এবং এটা কি আমাকে বলবেন. সুতরাং যে কার্যকরভাবে এর এই তীর কি করছে. আপনি আপনার তারকা মত মনে করতে পারেন. আমরা তারকা যখন তাই ঠিক আছে, তা অনুসরণ মানে. এই ঠিকানায় যান. এবং যে শুধু নিম্নলিখিত মূলত এর এই মেমরি খণ্ড এই তীর. এবং 5, যা এটি কি আমাদের দিতে. আমাদের কপি 5 সমান কেন এটি. যে জানার জন্য? কেউ দিয়ে যেতে আমাকে প্রয়োজন যে আবার, বা আরো ধীরে ধীরে? আপনি আমাকে যেতে চান এটা আরো এক সময় মাধ্যমে? ঠিক আছে. আমরা আবার এটি পুনরায় আঁকুন চলুন. আমরা শুরু, আমরা সব আমরা সম্মত একটি পরিবর্তনশীল এর যে মেমরির কিছু খণ্ড আমরা 5 সমান সেট যে এক্স. এটা মেমরির মধ্যে যেখানে আমরা নিয়ন্ত্রণ করি না. তাই এই স্পট ঠিক হয় ইচ্ছামত নির্ধারিত হয়. সেখানে ভালো? ঠিক আছে. তারপর আমরা কোন int একটি পয়েন্টার আরম্ভ. এটাই নির্দেশ করার অনুমতি দেওয়া হচ্ছে কেন এক্স আমরা এখানে কোন int আছে, কারণ. আমরা আরেকটি খণ্ড আছে মেমরি কারণ এই পয়েন্টার শুধু অন্য কিছু ভালো একটি পরিবর্তনশীল. এটা ইচ্ছামত নির্ধারিত হচ্ছে মেমরি কিছু স্থান. এবং কি এটা সঞ্চয় করে x এর ঠিকানা. Ampersand x এর ঠিকানা মানে. সুতরাং x এর ঠিকানা কি? শ্রোতা: এটা শূন্য নয় বক্তা 1: 0x04. সুতরাং then-- গত এক. আমরা আবার কিছু copy-- আছে শুধু আরেকটি পরিবর্তনশীল. সুতরাং আসুন কিছু অবাধ জায়গায় দায়িত্ব অর্পণ করা যাক. আমাদের পয়েন্টার ডি-রেফারেন্স এবং আমরা. তারকা যেতে মানে অঙ্ক আমার পয়েন্টার সঞ্চিত. আছে কি আমাকে বলুন. সুতরাং অঙ্ক সংরক্ষিত আমাদের পয়েন্টার মধ্যে 0x04 হয়. সুতরাং আমরা যে ঠিকানায় যান. এটা যে ঠিকানায় প্রতি নির্দেশ করে. এই মেমরি ব্লক ভিতরে কি? এখান থেকে পাঁচ এর. সুতরাং যে আমরা আমাদের কপি ধার্য কি. প্রত্যেকেরই ভাল? কুল. কি আবার ছবি. তাই আমি আছি এখানে মান ট্র্যাকিং আপনাকে বলছি এই সম্পর্কে মনে সায়ীদ. আমরা অন্য ছবি আঁকতে পারেন. কিন্তু আমি আপনি চেষ্টা এবং কারণে করতে চান এক মিনিটের জন্য আপনার নিজের উপর এই মাধ্যমে. তারা দেয় নি যেহেতু আমাদের একটি উদাহরণ ঠিকানা, আমি শুধু ampersand x-- কাজ করতে যাচ্ছি যা বাড়িতে এটি চালাতে সাহায্য করা উচিত. Ampersand অঙ্ক মানে. প্রথম এক, সবাই তাই প্রথম লাইন দিয়ে যান. কিছু এক্স সেট এর পাঁচটি কিছু মেমরি র্যান্ডম স্লট. আন্তর্জাতিক তারকা পয়েন্টার সমান x এর ঠিকানা দিতে, ডান? আন্তর্জাতিক তারকা পয়েন্টার সৃষ্টি এই ব্লক, এটা পয়েন্টার কল, এবং x এর ঠিকানা বরাদ্দ করুন. আমি ampersands এ ভয়ানক আছি. এখন কি আমরা করছেন আমরা বলতে হয় ঠিক আছে, আমাদের পয়েন্টার ডি-রেফারেন্স. তাই আমরা ঠিক আছে, আমাদের পয়েন্টার মধ্যে কি যেতে? এটা ampersand এক্স এর. Ampersand এক্স যান এবং এটা reassign. তাই এখন, ampersand এক্স 35 হতে যাচ্ছে. তাই মূলত, আপনি যখন আছেন dereferencing, আপনি ওকে যেতে. আপনি অঙ্কন করা চলুন ভালো ছবি. আপনি অঙ্কন করা চলুন যেখানে এটা উপর আপনার তীর. সুতরাং মেমরির মধ্যে এই স্লট যান এবং পারেন আমাকে যে মান ফেরত দিতে, বা এটি পরিবর্তন. এই ক্ষেত্রে, কারণ আমরা এই সময়ে আছেন আমরা এটা নির্ধারণ করছি মান 35 হতে. গত যেহেতু এ এক, যদি আপনি বিজ্ঞপ্তি, আমরা কি ছিল নির্ধারণের হয়েছে এখানে অন্য কিছু করার মধ্যে. তাই তারা এই ভয়ঙ্কর টেবিল আছে. এটা যে খারাপ না. আপনাকে বলছি এটা কাজ. আমি বোর্ডে এটি বহিষ্কার করা যাচ্ছে না. আমরা ঠিক আছে, এটা একসঙ্গে পূরণ করতে যাচ্ছেন? তাই কিছু কাগজ, অর্থগৃধ্নু ব্যক্তি দখল একটি অংশীদার, কাজ শুরু. আমি একটি পেতে যাচ্ছি খড়ি এর বড় টুকরা. এটি একটি অনেক হতে যাচ্ছে কারণ. ঠিক আছে. অধ্যাপক: ঠিক আছে. প্রথম সারি দিয়ে শুরু করা যাক. আমরা তখন সেখানে আপনাকে বলছি শুরু করব হয়তো আরো কিছু মাধ্যমে কাজ করতে পারেন. ঠিক আছে. একটি একটি কি তাই বো বার গ সমান? এটা একটা কৌতুক প্রশ্ন না, আমি প্রতিজ্ঞা করছি. ছাত্র: 4 বার 5. অধ্যাপক: 4 বার 5. 20. সুতরাং খ কি? ছাত্র: 4. অধ্যাপক: এবং গ? ছাত্র: 5. অধ্যাপক: 5. এবং তারপর এই মাত্র যাচ্ছে একটি, এবং চিহ্ন; খ ampersand করা, এবং চিহ্ন; গ, ডান? খারাপ নেই. এটা যথেষ্ট সহজ. ঠিক আছে. পরের এক তাই. একটি ক্ষেত্রে, একটি বার গ সমান যে কেউ যে সঙ্গে অপরিচিত ছিল. পরিচিত সবাই বার সমান সাথে? ঠিক আছে, এই সব এই হল যথাযথভাবে একটি সাঁটে লেখার জন্য একটি বার গ সমান. এছাড়াও বিভাগের সঙ্গে এটি করতে পারেন, বিয়োগ সঙ্গে উপরন্তু, সঙ্গে. আপনি একটি সমান করতে পারেন, অথবা একটি প্লাস গ সমান একটি একটি প্লাস গ, সমান একটি বিয়োগ সমান মানে গ একটি একটি বিয়োগ গ সমান হতে হবে. এটা ঠিক অন্বিত চিনি. সুতরাং, এই ক্ষেত্রে, একটি সমান একটি বার গ আমাদের কি দেবে? আবার, না একটি কৌতুক প্রশ্ন. ছাত্র: 100. অধ্যাপক: 100. অন্য কিছু পরিবর্তন করে? না. হয়তো আমি অবশেষে পাবেন আমার ampersands এ ভাল. ছাত্র: ঠিক আছে, দুঃখিত, কিভাবে আপনি 100 পেতে পারি? অধ্যাপক: ঠিক আছে. তাই একটি একটি সমান বার গ, তাই একটি বার গ. ছাত্র: ওহ, আপনি ব্যবহার করছেন previous-- জন্য অধ্যাপক: হ্যাঁ. সুতরাং এই আমাদের সবচেয়ে সাম্প্রতিকতম মান. এই আপনি কি হওয়া উচিত করো আমরা নিচে নামাও হিসাবে ঠিক আছে, ব্যবহার. সুতরাং, খ শুধু পরিবর্তন, ডান? সুতরাং আসুন অন্য সব কিছুর পূরণ করা যাক. বি কি বো হতে যাচ্ছে? হতে বা না হতে হবে. তাই কি এই কাজ করা হয়? পিএ করছেন তারা কি? ছাত্র: PA এর অবস্থান থেকে কোড. ছাত্র: না, না বেশ. সুতরাং এই একটি ঘ রেফারেন্স. ছাত্র: সুতরাং খ PA এর হাতি মান. অধ্যাপক: হ্যাঁ, তাই পিএ হয় একটি ঠিকানা, ডান? সুতরাং এটি একটি যেখানে যেতে বলছে সংরক্ষিত এবং এটা যে মূল্য দিতে. সুতরাং খ কি? ছাত্র: 100. অধ্যাপক: 100. পারফেক্ট. ঠিক আছে, তাই পিসি কি এর পরিবর্তন হয়. অন্য সব কিছুর একই থাকে. কি পিসি হতে যাচ্ছে? সরল নিয়োগ. পিসি পিএ সমান, এবং পিএ কি? ছাত্র: একটি ampersand. অধ্যাপক: পারফেক্ট. এখন আমরা আকর্ষণীয় পেয়ে থাকেন. ঠিক আছে, এর নিচে এই এক বিরতি দিন. যে কারণ প্রথমত, কি, বি বার সি এর এই এক সহজ অংশ, ডান? বি বার গ হচ্ছে ÑÑ ছাত্র: 500. অধ্যাপক: হ্যাঁ, তাই এই এক কি করছে, এটি এর তারকা PB যদি, কি পরিবর্তন হচ্ছে? ছাত্র: কি the-- নাই অধ্যাপক: খ কি আছে? ছাত্র: মহাকাশ মধ্যে কী যে PB প্রতি নির্দেশ করা হয়. অধ্যাপক: এবং PB চাচ্ছি নির্দেশ করা হয় ছাত্র: বি অধ্যাপক: বি সুতরাং শুধুমাত্র কোন জিনিস পরিবর্তন অধিকার, খ হয়. তাই বো বার গ, 500. সুতরাং যে এখন পরিবর্তন কি. কুল. বাহ. আপনাকে বলছি মহান করছেন. এই এক নিচে ভঙ্গ ঠিক আছে,. সি ডান, পরিবর্তিত হচ্ছে? তাই আমরা অন্য সব কিছুর পূরণ করতে পারেন. চলুন দেখা যাক. ঠিক আছে. আমরা গ হতে যাচ্ছে জানি দুটি সংখ্যার গুণফল, ডান? কি দুই নম্বর, যদিও? ছাত্র: A এবং গ? অধ্যাপক: তাই একটি হল ডান প্রথমটি জন্য. সুতরাং আমরা অধিকার, একটি এর পি উল্লেখ চাই করছেন? একটি একটি পয়েন্ট পি, তাই আমরা জানি যে এই 100 বার কি হতে যাচ্ছে? পিসি বিন্দু কী টাইমস? একটি স্থানটিকে. সুতরাং 100 বার 100 10,000 হয়. যে অর্থে তোলে কি? কুল. হোম প্রসারিত, বলছি, শেষ সারি. ঠিক আছে. এখানে কি পরিবর্তন হচ্ছে? ছাত্র: উ: অধ্যাপক: এ পারফেক্ট, তাই অন্য সব কিছুর একই থাকতে পারেন. ঠিক আছে. আর একটি কি? সুতরাং এটি একটি বার কি? এই তারকা PB হয়. সুতরাং তারা PB এখানে মানে PB, PB পয়েন্ট খ. ছাত্র: 500. অধ্যাপক: 500. সুতরাং আমরা 500 বার 100 আছে. যে 50,000 এর. রক্ষে! যে তাকান. ছাত্র: কেন আমরা আছে কি Last-- জন্য & গ অধ্যাপক: দুঃখিত. ছাত্র: ঠিক আছে, ওহ. অধ্যাপক: আমার খারাপ. লেখার প্রচুর. প্রত্যেকেরই ভাল? খুব খারাপ নেই, ডান? শুধু একটু সময় লাগে যখন মাধ্যমে কাজ করার. আপনি এটা ভাঙ্গিয়া যদি, কি প্রতিটি অংশ বুঝতে হিসাবে চাচ্ছি উল্লেখ করা হয় এটা সবকিছু সাথে, একটু এটি ভেঙ্গে yes-- তারপর পুনর্মিলিত এবং সমস্যা, এবং আপনি কিছু সন্ত্রস্ত স্টাফ করতে পারেন. সেখানে উত্তর হয়, কিন্তু আমরা যে করেনি. পয়েন্টার পাটিগণিত. আহ. আমার হাত সব খড়িময় হয়. সুতরাং যোগ করা অথবা subtracting int পয়েন্টার adjusts পয়েন্টার ধরণ মাপ দ্বারা. কিভাবে প্রতি টাইপ মনে রাখুন একটি ভিন্ন আকার আছে? একটি ডবল বা দীর্ঘ দীর্ঘ মত তাই আট এবং int-চার হয় কিন্তু গৃহস্থালির এক. সুতরাং আপনি কি করতে চান মনে রাখা এক জিনিস হচ্ছে ÑÑ ঠিক কিভাবে আপনার অনেক যে পয়েন্টার মান আসলে পরিবর্তন উপর নির্ভর করবে পয়েন্টার ধরণ এটা. এই সঙ্গে ভাল প্রত্যেকেরই? আমি এটা মুছে যাবে না? আমরা ভাল করছি? জট্টিল. আমরা কিছু পয়েন্টার আছে সুতরাং এই যাচ্ছে যে সব আমি আছি be-- যাও এটা কোন int পয়েন্টার করতে যাচ্ছে. এটা এই সঞ্চয় করে. আপনি পয়েন্টার বলার ছিল প্লাস এক, এটি করতে যাচ্ছে কি এটি আপডেট করা যাচ্ছে হয় কোন int এর সাইজ করে তা যে কারণ পয়েন্টার ধরণ এটা. সি দিয়ে, সবকিছু হয় খুব কঠোর এবং নিয়ন্ত্রিত. int পয়েন্টার দ্বারা আপডেট করতে যাচ্ছে কোন int নিতে হবে স্থান পরিমাণ. কোন int চার বাইট. তাই কি এই পরিণত হবে? আপনি শুধু এই সম্মুখের চার যোগ করছি. এখন আপনার পয়েন্টার ঠিক আছে be-- হবে. যদি তাই এটি একটি গৃহস্থালি ছিল এবং আমরা পয়েন্টার করেনি প্লাস এক, এটি এখন কি হবে? এটা আমরা ভান started-- যদি এটা 0x08 এর ডান এখন started--. এর এখন এই একটি ছিল বলে পয়েন্টার গৃহস্থালি, এবং আমরা এক যোগ. এটা কি পরিবর্তন হবে? একটি গৃহস্থালি কত বাইট হয়? শ্রোতা: এক. বক্তা 1: এক. শ্রোতা: সুতরাং 0x09. বক্তা 1: সুতরাং এটা নয়টি হবে. তাই শুধু কিছু মনে রাখা. আপনি এক যোগ শুধু যখন, এটা না এটি একটি গৃহস্থালি, যদি না এক যোগ. এটা কিভাবে অনেক যোগ হচ্ছে , এটা যে ধরনের বাইট যা আমরা আছে কেন এখানে এই সমীকরণ. সুতরাং এটা কোন int বার সাইজ পয়েন্টার ধরণ. তাই আমরা এখানে উদাহরণ আছে. Y, যে মান, 0x4 নির্ধারিত হয় আমরা y করেনি প্লাস এক সমান হলে. কি এটা আছে, কি x এর মধ্যে, পরিবর্তন করা হয় না. কি পরিবর্তন করে Y মধ্যে কি হয়. Y সঞ্চিত অঙ্ক চার দ্বারা আপডেট চার বাইট কোন int মধ্যে আছে, কারণ এবং এটা কোন int পয়েন্টার. ঠিক আছে. তাই এখন আমরা আরেকটি ব্যায়াম আছে. তাই প্রশ্ন প্রিন্ট হবে কি না. কোন ধারনা? শ্রোতা: এর সংখ্যা খুশি বিড়াল অক্ষর? বক্তা 1: যথাযথভাবে. তাই আপনার স্ট্রিং সঙ্গে চাই. সবাই যে পেতে পারি? আমরা এটা ভিতর দিয়ে হেটে যেতে চান? ঠিক আছে, হ্যাঁ. সুতরাং আমরা আমি এখানে আছে কি তাই অনেক কিছু ভালো. আমি করতে হবে না [শ্রবণাতীত] ridiculously. তাই আমরা এখানে আমাদের স্ট্রিং, খুশি বিড়াল আছে. বাহ. আমরা কিছু কাউন্টার আছে আমরা অবগত থাকার করছি. তাই আমরা কিছু গৃহস্থালি * পয়েন্টার আছে যে শুধু Str বন্ধ সমান সেট করা হয়. কি এই কাজ করা হয় এটা হয় কিছু পয়েন্টার বরাদ্দ আপনার স্ট্রিং শুরুতে. আমি নিশ্চিত নই, এটা হিসাবে বক্তৃতায় উল্লেখ করেন, আমরা এই আপনাকে বলছি দিয়েছি স্ট্রিং নামক ডাটা টাইপ. কিন্তু সত্যিই স্ট্রিং ঠিক আছে একটি অ্যারের * গৃহস্থালি মত র. এটা অক্ষরের একটি গুচ্ছ থেকে একটি পয়েন্টার মেমরি সংলগ্ন যে. সুতরাং এই মাত্র এটা সেট কোন স্ট্রিং সমান যেখানে দ্বারা চিহ্নিত তার প্রথম অক্ষর. সুতরাং এই মাত্র কিছু পয়েন্ট সেটিং করা হয় স্ট্রিং শুরুতে সমান. প্রত্যেকেরই আছে ভাল? কুল. তাই এই আমাদের পয়েন্টার dereferencing হয়. সুতরাং এটা আসলে যাচ্ছে এখানে আমাদের কিছু মূল্য দিতে, আমাদের স্ট্রিং মধ্যে আমরা যে বিষয়ে কথা বলছি যে. এবং আমরা যতদিন বলছে এটা নাল টারমিনেটর না. সুতরাং আপনি পেতে পর্যন্ত বর্তা স্ট্রিং এর শেষে. একের পর আপনার পয়েন্টার আপডেট করুন. আর তাই, এটা আসলে একের পর আপডেট হবে প্রতিটি সময় এই একটি গৃহস্থালি কারণ, গৃহস্থালি *. সুতরাং এটা মাধ্যমে যেতে যাচ্ছে. এটা আপডেট করতে যাচ্ছে. এই রান প্রথমবার তাই, এটি জ এখানে হতে যাচ্ছে. এটা আপডেট করতে যাচ্ছে. এটি একটি একটি হবেন. এটা তাই এবং তাই ঘোষণা একটি পি, Y হতে, এবং করব. আমরা পাল্টা আপডেট করব. এটি শেষ ছুঁয়েছে, এটা শুধু তা অর্জিত হচ্ছে কতদূর ছাপে. হ্যাঁ. শ্রোতা: এটা counts তাই ডান এক হিসাবে স্থান,? ঠিক আছে. বক্তা 1: তাই চিন্তা করুন. একটি প্রশ্ন যে Is শ্রোতা: [শ্রবণাতীত]. বক্তা 1: কোন উদ্বেগ. এই আমি যে কি. ঠিক আছে, তাই এক জিনিস আমি বুঝতে হয় একটি অ্যারের সঙ্গে যে, তবে আপনাকে একটি হিসাবে এটি বিবেচনা করতে পারেন পয়েন্টার অ্যারে শুধু কারণ মেমরি একটানা দাগ. তাই আপনি যদি তা একই ভাবে বিবেচনা করতে পারেন. আপনি তাদের নিপূণভাবে পারেন পয়েন্টার সাথে, খুব. সুতরাং পরিবর্তে এই মধ্যে, করছেন কেস, অনুরূপ জিনিস হবে অ্যারের 0 1 সমান. কিন্তু একই ভাবে যে একটি স্ট্রিং নির্ধারিত হয় যেখানে শুরুর দ্বারা তার প্রথম অক্ষর, হয় একটি অ্যারের দ্বারা নির্ধারিত হয় যেখানে তার প্রথম উপাদান. আমরা জানি, আমরা আছেন নিশ্চিত, যে এই একটানা হতে যাচ্ছে মেমরি ব্লক. যে আমাদের এই কাজ করতে পারবেন কি. আমরা কি তারা ক্রমাগত করছি জানি মেমরি ব্লক. তাই এই ক্ষেত্রে, dereferencing দ্বারা আমাদেরকে বলে যে শুধু অ্যারে,, ঠিক আছে, শুরু থেকে যান এখানে যা আপনার অ্যারের,. তাই আপনি এক তা সমান সেট করতে পারেন. এবং এই ক্ষেত্রে, যাই হোক না কেন আপনার অ্যারের আপনি একের পর এটি আপডেট যখন টাইপ,, হয় যে শুধু আপডেট মত এটা পরের সূচক যাও. আপনি কি করতে পারেন যে আপনি কারণ আপনার অ্যারের মধ্যে কি জানি. সুতরাং এটা কত দিতে জানে আপনার পয়েন্টার দ্বারা আপডেট, এটা তাই আপডেট করার কি অঙ্ক আপনি পরের স্লট করেন যে. সুতরাং এই মাত্র একটি ভিন্ন উপায় অ্যারে 0 1 সমান লেখা, অ্যারে 1 2, অ্যারের সমান বন্ধনী 2 3 সমান. এটা আমার মনে হয় শুধু আরেকটি উপায়. তারা একটানা কারণ মেমরি ব্লকে, আপনি হয় তাদের পাঠাতে পারেন অ্যারে notation-- দ্বারা যা আমি ব্যক্তিগতভাবে easier-- খুঁজে কিন্তু হয়তো আপনি এটা নিপূণভাবে প্রয়োজন কঠোরভাবে মেমরি অ্যাড্রেস করে. এবং এই কি যে হবে উপায়. একটি ভালো ধরনের আরও আপনি কাজ করতে পারে শীতল জিনিস আপনি আছেন হয়তো না কিছু বনাম আসলে বাস্তবায়ন করতে যাচ্ছে. আমি 61 সালে এটি ব্যবহার. আপনি না সম্ভবত প্রয়োজন হবে না খুব বেশী এটা নিয়ে চিন্তা করতে. কিন্তু আপনি আগ্রহী হলে, 61 পরের বছরের নিতে. আমরা বাড়িতে প্রসারিত বলছি আছেন. আমি জানি, এটি দীর্ঘ. ডাইনামিক মেমরি Allocation-- তাই আমরা যে এক জানতে জিনিস আমরা সময় বলত যখন একসঙ্গে আমাদের প্রথম অধ্যায়, আমরা একটি swap দিকে তাকিয়ে ফাংশন যেখানে এটি ছিল আমাদের প্রধান ফাংশন সুযোগ বাইরে. এবং আমরা এই মান পার হয়েছে যে কার্যকরভাবে কপি ছিল. এবং swap 'একবার সমাপ্ত নির্বাহ, এটি শুধু একটি স্ট্যাক বাকি. মনে রাখবেন, আমরা আছে একটি swap 'র জন্য ফ্রেম গাদা. এটা ছেড়ে যারা মূল্যবোধ এটা দিয়ে ছেড়ে. তারা সর্বস্বান্ত হয়েছে. আমরা কিছু করতে পারে না তাদের সাথে আমরা এবং দু: খিত ছিল আমরা আমাদের মান অদলবদল করতে পারেন না, কারণ. কিন্তু আমি, আপনি উল্লেখ সি সাথে, হিসাবে মেমরি ওভার ক্ষমতা অনেক আছে. সুতরাং আপনি কি করতে পারেন আপনি পারেন হয় এখানে গাদা জিনিস বরাদ্দ যে পর্যন্ত সেখানে থাকবো আপনি অন্যথায় তাদের বলুন. তারা ভাল শিশুদের ভালো থাকেন. তারা সেখানে থাকার. তারা ছেড়ে না. আপনি না হওয়া পর্যন্ত তারা সেখানে থাকবো ভালো, ঠিক আছে, আপনি দূরে যেতে পারেন. স্ট্যাকের উপর জিনিষ যেহেতু, who-- তারা দুষ্টু শিশুদের ভালো থাকেন. যখন আপনি চান তারা শুধু দূরে চালানো হবে সেখানে দেখতে এবং তারপর তারা চলে গেছে. আপনি তাদের ফিরে পেতে পারে না. সুতরাং আমরা চলুন হচ্ছে ÑÑ গাদা , malloc এবং বিনামূল্যে সম্পর্কে কথা যা আমি নিশ্চিত আপনি ছেলেরা আছি বক্তৃতায় শুনেছি. এবং যে মূলত একটি উপায় খুব নির্দিষ্ট তথ্য আছে. সুতরাং আপনি তথ্য রাখতে পারেন প্রায় হিসাবে দীর্ঘ হিসাবে আপনি চান. তাই নাকি. শ্রোতা: আপনি গাদা সংজ্ঞায়িত এবং গাদা পারি? তারা কিছু করা জায়গা পছন্দ হয়? বক্তা 1: সুতরাং তারা আছেন মূলত তারা করছি ঠিক করা আমরা শুধু মেমরি পড়ুন পথ. সুতরাং গাদা ঠিক যেখানে স্থাপন করা হয় মেমরি, পরিবর্তনশীল বরাদ্দ করা হয় স্ট্যাকের বোঝায়, যেহেতু ফ্রেম গাদা আরও আরো কেন্দ্রিয় আছে আসলে দৌড়াচ্ছে যে ফাংশন. আপনি সত্যিই নিয়ন্ত্রণ নেই. বড় পার্থক্য, আপনি নিয়ন্ত্রণ আছে গাদা উপর আপনি চান. আপনি স্ট্যাকের উপর কম নিয়ন্ত্রণ আছে. স্ট্যাকের উপর নির্ভর করে ফাংশন দৌড়াচ্ছে যে, এবং যাতে যা তারা রান, এবং জিনিস কিভাবে ফেরত দেওয়া হয়. গাদা সঙ্গে যেহেতু, হিসাবে আমরা, আপনি বলতে পারেন, দেখতে পাবেন ঠিক আছে, আমি এই মান হতে চান কাছাকাছি পর্যন্ত আমি অন্যথায় আপনাকে জানানো. আপনি তা পরিত্রাণ পেতে করার অনুমতি দেওয়া হয়নি. আপনি এটিকে ওভাররাইড করার অনুমতি দেওয়া হয় না. আপনি এটি কাছাকাছি রাখতে যাচ্ছেন যতদিন আমি আপনাকে বলতে হিসাবে জন্য. আপনি, গাদা বস হতে পেতে আপনি যদি হয়ত stack-- যেহেতু মত আপনার উপায় প্রতারণা করা আপনি বস হতে পারে. কিন্তু না বেশ. এবং এটা সত্যিই শুধু মেমরি এর. এটা শুধু বিভিন্ন উপায় আছে স্মৃতির উল্লেখ. কুল. যাও, কিভাবে যে সাথে তাই আপনার মেমরি নিয়ন্ত্রণ. এটা malloc, সঙ্গে আছে যা আপনি ব্যবহার করতে পেতে যাচ্ছেন. তাই এটি শুধু ছোট মেমরি বরাদ্দ জন্য. এটাই হল সব. অন্যান্য শীতল একটি গুচ্ছ আছে শেষে alloc আছে ফাংশন, এবং তারা বিভিন্ন জিনিসের জন্য দাঁড়ানো. আপনি স্টোরেজ প্রয়োজন হলে তাই যে প্রয়োজন তাই আপনার বর্তমান ফাংশন অধিকতর স্থায়ী হত্তয়া যাও যখন আপনার বর্তমান যে ফাংশন, রান দূরে আপনি এখনও তথ্য আছে আপনি তা থেকে পেয়েছিলাম, আপনি malloc ব্যবহার করতে চান. যে গাদা এটি আরম্ভ করব. এবং আমি ভালো বলেন এবং রাখা আপনি সেখানে এটি যাব, এই বলে আপনি অন্যথায় তা বলতে না হওয়া পর্যন্ত, যা এখানে গুরুত্বপূর্ণ বিষয়. তাই এক জিনিস লক্ষ্য করা, এবং যাও যে, সাধারণত সত্যিই গুরুত্বপূর্ণ এই sizeof যে হয় সুপার ব্যবহার উপযোগী ধরনের উপর নির্ভর করে, কারণ মেশিনের আপনি চালাচ্ছেন, এটা নানারকম পরিমাণে থাকতে পারে এটি প্রদর্শিত যে মেমরি. সুতরাং আপনি সবসময় তাই মাপ ব্যবহার করতে চান আপনি নির্ভরশীল মেশিন পারব না যে, যাতে আপনার কোড হবে কোনো মেশিনে রান. এবং যে শুধু অংশ এর ভালো কোড লেখা. এটা এক মেশিনে কাজ করে, কিন্তু অন্যদের কোন, আপনার প্রোগ্রাম কিভাবে দরকারী ছিল? সুতরাং আপনি সবসময় চাই নিশ্চিত করুন এবং sizeof ব্যবহার. শ্রোতা: তাই ভালো হয় 10 ইঞ্চি [শ্রবণাতীত] মাপ? বক্তা 1: এই 10 ints আকার. হাঁ. সুতরাং ints আকার ফিরে আসবে এক int- এ কত সময় লাগবে. অথবা গৃহস্থালি মাপ, কিভাবে অনেক এক গৃহস্থালি লাগবে. এবং তারপর কতগুলি ব্লক যে আপনি চান না? তাই এই ক্ষেত্রে, আমরা কিছু চাই যে আমরা 10 ints করার সংরক্ষণ করতে পারেন. এবং এটা নির্বিশেষে কাজ করবে মেশিন, যা শান্ত. সুতরাং কত বাইট হবে যে আসলে আপনি দিতে? কুইক ম্যাথ. শ্রোতা: 40. বক্তা 1: 40. যথাযথভাবে. তাই অন্য বড় বিষয়. পয়েন্টার বা malloc নাল ফিরে যেতে পারেন. তাই আবার, সবসময় চেক এটি নাল ফিরে যদি দেখতে আপনি চেষ্টা এবং এটা নিয়ে কিছু করতে আগে. আপনি চেষ্টা এবং ডি-রেফারেন্স যদি এখন এই পয়েন্টার, এটা শুধু segfault যাচ্ছে আপনি গিয়েছিলাম এবং চেষ্টা কারণ আপনি থাকা উচিত নয় যখন নাল স্পর্শ. তাই সবসময় নাল জন্য চেক. আবার, সব আপনি করতে পারেন. এটা নাল প্রত্যাবর্তন করতে পারে. আপনি পারেন যদি এটা নাল ফিরে আসবেন স্থান আউট, বা কোন কারনের জন্য এটা কিছু মেমরি বাগ গাড়ীতে আঘাত. মাঝে মাঝে শুধু নাল ফেরৎ. তাই আপনি এটা জন্য চেক আছে. যে সব এই স্লাইড বলছে না. এবং তারপর আমরা আছে কি এখানে মুক্ত করতে আহবান. একই ভাবে যে তাই আপনি যদি আপনি একটি ফাইল বন্ধ করা আবশ্যক একটি ফাইল খুলতে, আপনি যদি malloc মেমরি, আপনি আপনি যে মেমরি মুক্ত হবে. আর আপনাকে বলছি পাবেন সত্যিই শীতল স্টাফ করতে. এবং আপনি চালাতে পারেন একটি প্রোগ্রাম আছে আপনি কি কখনো মেমরি লিক করছেন কিনা দেখতে. কিন্তু আপনি মেমরি লিক করতে চান না. এটা সত্যিই খারাপ. শুধু জগাখিচুড়ি আপ জিনিষ. এটা ঠিক প্রোগ্রামিং মত কাজ করতে খারাপ নকশা দক্ষতা জন্য বিজ্ঞ. কিন্তু এটা শুধু ধরনের এছাড়াও এর আপনার কম্পিউটারের জন্য খারাপ. তাই শুধু বিনামূল্যে জিনিষ আপনি তাদের malloc যখন. আপনাকে বলছি এখানে symmetries দেখতে. সুপার সহজ. শুধু মুক্ত এবং তারপর যাই হোক না কেন আপনার পয়েন্টার, যাহা নাম আপনার পয়েন্টার, এবং এটা আপনার জন্য এটা freeing যত্ন নিতে হবে. কুল. তারপর আমরা এই আছে. তাই আমরা ঠিক চলুন এই প্রোগ্রাম দিয়ে হেটে. এবং তারপর আপনাকে বলছি সম্পন্ন হয়. সুতরাং [শ্রবণাতীত] শুধু প্রধান. তাই আমরা কিছু int- * পয়েন্টার আছে. সুতরাং আমরা একটি ইশারা আছে যে ints রাখা যাচ্ছে. এবং কিভাবে অনেক ints ধরে যাচ্ছে? শুধু এক. কোন int এর সাইজ. আমরা কিনা দেখতে পরীক্ষা পয়েন্টার এটা কারণ নাল আমরা কিছু করবেন না বলতে চাই, হয়. এটা খারাপ. সুতরাং আমরা বাইরে কিছু ত্রুটি প্রিন্ট মেমরি, প্রায়শই 1, ফিরে আপনাকে বলছি হিসাবে ব্যবহৃত হয়. এবং তারপর আমরা আমরা, এখানে আছে আমাদের পয়েন্টার ডি-রেফারেন্স. সুতরাং যে আমরা সঞ্চয় করতে যাচ্ছেন মানে আমাদের দেওয়া অবস্থানে কিছু. * আন্তর্জাতিক পয়েন্টার, বা malloc, ফেরৎ এটা এই সেট একপাশে যেখানে এর ঠিকানা আপনার জন্য মেমরি. সুতরাং এটি মূলত এর আপনি যদি ভালো প্রদান একটি গুচ্ছ সম্পর্কে চিন্তা একটি আশেপাশে ঘর আপনি লাগাতে চান যে আপনার আসবাবপত্র সালে, malloc ওকে ভালো, আপনি পেতে হয় তিনটি বাড়িতে যেতে. এবং এটা আপনি দেয় বাড়ির তিন ঠিকানা. সুতরাং এই অধিকার এখন, এই পয়েন্টার দোকানে একটি ঠিকানা, আপনার বাড়ির ঠিকানা সঞ্চয়. * Ptr মানে, ঠিক আছে, আমি আমার বাড়িতে আছি. কুল. আমি কিছু পূর্ণসংখ্যা পেতে হবে. সুতরাং আপনি কাউকে জন্য বলছি এখন আপনি আসবাবপত্র দিতে. সুতরাং আপনি কিছু int- পেতে. এবং এটা আপনার পয়েন্টার এটা বন্ধ রাখে যেখানে এটি এর প্রতি নির্দেশ. এবং তারপর এটি শুধু কপি করে প্রিন্ট আউট, আপনি যেখানেই প্রবেশ. এবং আবার, রেফারেন্স. তাই এই আপনি এই গিয়েছিলাম ভালো হয় সুরাহা এবং আপনি সেখানে ছিল কি দেখেছি. কুল? এবং তারপর অবশ্যই আমরা আমাদের পয়েন্টার মুক্ত. আপনার পয়েন্টার মুক্ত করতে ভুলবেন না. নাল জন্য চেক করতে ভুলবেন না. আপনার পয়েন্টার মুক্ত করতে ভুলবেন না. আপনি আপনার কাছ থেকে স্মরণ দুটি জিনিস আছে এই, বা আপনি মনে রাখা উচিত যে. হ্যাঁ. শ্রোতা: [শ্রবণাতীত] স্টাফ যে মত, গৃহস্থালি * গুলি. আমরা যারা কিভাবে মুক্ত না আসা? বক্তা 1: হুঁ? শ্রোতা: স্ট্রিং মত যারা চান? আপনি স্ট্রিং দ্বারা বলেন শুধু গৃহস্থালি * গুলি মত, ডান? তাই কেন আমরা স্ট্রিং মুক্ত না? বক্তা 1: আপনি শুধুমাত্র যাও বিনামূল্যে আপনি mallocing করছি. শ্রোতা: ওহ, আপনি mallocing করছি. বক্তা 1: সুতরাং malloc এবং বিনামূল্যে দুটি জিনিস আপনি সবসময় একসাথে থাকা উচিত যে. চ খোলা, চ বন্ধ, দুটি জিনিস আপনি একসাথে থাকা উচিত. উভয় সেসব ক্ষেত্রে, নাল জন্য চেক. হ্যাঁ. শ্রোতা: সুতরাং বিনামূল্যে শুধু হয় অন্য কিছু অনুমতি পরে সেখানে সঞ্চিত যাও এই প্রোগ্রামটি এটি ব্যবহৃত হয়েছে? বক্তা 1: এটা ঠিক বলছে, ঠিক আছে, আমি এই সঙ্গে কাজ করছি. আপনি এটি প্রায় রাখা প্রয়োজন হবে না. অন্যথা আপনার কম্পিউটারের হবে শুধু চেষ্টা চাই এবং এটি সেখানে রাখা. এবং তারপর আপনি এটি রান can't-- পরে মেমরি বিষয়. আপনি সবসময় কারণ এটি মুক্ত করতে চান এটা ঠিক আছে, আমি আছি, আপনার কম্পিউটারের বলে মেমরি এই স্পট সঙ্গে সম্পন্ন. আপনি এটি ফিরে থাকতে পারে আমার জন্য পরে ব্যবহার করার জন্য. কুল? হ্যাঁ. শ্রোতা: আমরা% ঘ ব্যবহৃত শুধু একটি ডবল কারণ যে ফিরে আসছে, বা কেন [শ্রবণাতীত] হচ্ছে ÑÑ. শ্রোতা: আপনি% আমি ব্যবহার করতে পারি? বক্তা 1: আপনি% আমি ব্যবহার করতে পারেন. কোন শেষ মিনিটে প্রশ্নের? এগিয়ে যান. শ্রোতা: আমি শুধু একটি দ্রুত প্রশ্ন আছে. সুতরাং ptr পরিবর্তনশীল, অদূর ভবিষ্যতে ভালো, int- * ptr = malloc সঙ্গে, যে শুধু এটা বলছে মেমরি একটি জায়গায় প্রতি নির্দেশ বক্তা 1: আপনি [শ্রবণাতীত] চান? শ্রোতা: --that এর আকার র কোন, এটা ঠিক আছে. কিন্তু এটি শুধু একটি জায়গায় এর প্রতি নির্দেশ মাত্র চার বাইট মত যে মেমরি. বক্তা 1: রাইট. কোন int বলছেন তাই মাপ malloc, ঠিক আছে, আমি ছুট যেতে চলেছি, আপনার জন্য মেমরির চার বাইট খুঁজে. এটি চারটি যে খুঁজে বের করে যখন মেমরি বাইট, এটা আপনি অঙ্ক ফেরত দেয় এটা শুরু হয় যেখানে, এবং যে সঞ্চিত কি পয়েন্টার, বা ptr মধ্যে. গুড. আপনাকে বলছি সবচেয়ে কম বিভ্রান্ত চেহারা আমি পয়েন্টার সম্পর্কে কথা যখন মানুষ, তাই আমি এই মুহূর্তে বেশ ভাল বোধ করছি. ঠিক আছে. সর্বদা হিসাবে, আপনাকে বলছি সব থাকা উচিত এখন দ্বারা আপনার pset2 বাংলাদেশের অর্জিত. আমি জানি কিছু নড়বড়ে হয়েছে সেখানে এটা বলছেন যেখানে জিনিষ, বৈধ নয় সূত্র বা কিছু. আপনি, যে সব পেয়ে থাকেন তাহলে আপনার বাংলাদেশের আমার দিকে কার্যকর. তাই আমি আপনি পাঠাতে পারেন আপনার বাংলাদেশের স্ক্রিনশট. শুধু আমার হিসাবে ভাল আপনি যদি জানাতে কোন বাংলাদেশের বা কিছু অনুপস্থিত জানার জন্য মনে হয় না. আমার কাছে আসুন. আমি আপনাকে সুপার গর্বিত ছিলাম বলছি ইতিমধ্যে, তাই এটা বজায় রাখা. এবং আপনার সপ্তাহে একটি ভাল বিশ্রাম আছে. আমি কিছু দেখতে পাবেন আমি নিশ্চিত নই অফিস সময়ে আপনি এর.