[সঙ্গীত বাজাচ্ছি]
>> ডগ লয়েড: ঠিক আছে, তাই একটি প্রস্তাব এখানে শুরু করার আগে.
আপনি ভিডিওতে দেখা না করে থাকেন আপনাকে প্রথমে তার চাইতে পারেন পয়েন্টার.
এই ভিডিওটি কারণ অন্য পয়েন্টার সঙ্গে কাজ করার উপায়.
>> সুতরাং এটি কথা বলার যাচ্ছে কিছু ধারণা সম্পর্কে
আমরা যে আবরণ ভিডিও পয়েন্টার, এবং আমরা করছি
এখন তাদের অংশগুলোকে যাচ্ছে, তারা ইতিমধ্যেই অভিমানী
সাজানোর বোঝা.
সুতরাং যে শুধু আপনার ন্যায্য সতর্কবার্তা যে আপনি এই ভিডিও দেখা করছি
এবং যদি দেখা যায় নি পয়েন্টার ভিডিও, এটা হতে পারে সাজানোর
আপনার মাথার উপর একটি সামান্য বিট উড়ে.
আর তাই এটি কার্যকর হতে পারে যাতে এটি পাহারা.
>> সুতরাং আমরা ইতিমধ্যে এক দেখা যায় পথ, পয়েন্টার সাথে কাজ করতে
যা আমরা একটি ঘোষণা হয় পরিবর্তনশীল, এবং তারপর আমরা
একটি পয়েন্টার অন্য ভেরিয়েবল ডিক্লেয়ার পরিবর্তনশীল, এটা স্থানটিকে.
সুতরাং আমরা তৈরি করেছি একটি একটি নামের সাথে পরিবর্তনশীল, আমরা করেছি
একটি নামের সঙ্গে দ্বিতীয় পরিবর্তনশীল তৈরি এবং আমরা দ্বিতীয় পরিবর্তনশীল যে নির্দেশ
যে প্রথমে.
এই ধরণের একটি সমস্যা যদিও, তবে তা এ জন্যে
ঠিক জানা আমাদের প্রয়োজন কত স্মৃতি আমরা আছেন
মুহূর্তে প্রয়োজন যাচ্ছে আমাদের প্রোগ্রাম কম্পাইল করা হয়.
>> কেন হল?
আমরা নাম দিতে সক্ষম হতে হবে, কারণ অথবা সম্ভব ভেরিয়েবল সব চিহ্নিত
আমরা সম্মুখীন হতে পারে.
আমরা হতে পারে যে একটি অ্যারের থাকতে পারে তথ্য অনেক ধরে রাখতে সক্ষম,
কিন্তু এটি এখনও নয় যথেষ্ট ঠিক সুনির্দিষ্ট.
আমরা কি জানি না, যদি, আমরা কি কোন ধারণা আছে
কত আমরা কম্পাইল সময়ে হবে?
অথবা কি আমাদের প্রোগ্রাম যদি আমি ইচ্ছা করতাম সত্যিই একটি দীর্ঘ সময় জন্য চালানো,
বিভিন্ন ব্যবহারকারীর গ্রহণ তথ্য, এবং আমরা করতে পারেন না সত্যিই
আমরা কিনা অনুমান 1,000 ইউনিট প্রয়োজন যাচ্ছে?
>> এটা আমরা করতে পারেন চাই না কমান্ড লাইন থেকে বলতে
কতগুলি আইটেম লিখুন আপনি আপনার প্রয়োজন হবে মনে.
ভাল যে অনুমান ভুল কি তাহলে?
ডাইনামিক মেমরি বরাদ্দ সাজানোর আমাদের পথ পারবেন
এই বিশেষ সমস্যা কাছাকাছি পেতে.
আর ভাবে এটা আছে পয়েন্টার ব্যবহার করে হয়.
>> আমরা পয়েন্টার ব্যবহার করতে পারেন পরিবর্তনশীল এক্সেস পাবেন
যে বরাদ্দ মেমরি, মেমরি আপনার প্রোগ্রাম হিসেবে বরাদ্দ চলছে.
এটা কম্পাইল সময়ে বরাদ্দ না.
যখন আপনি পরিবর্তনশীল বরাদ্দ মেমরি এটি একটি পুল থেকে আসে
মেমরি গাদা হিসেবে পরিচিত.
আমরা করেছি পূর্বে সমস্ত মেমরির কোর্সে সঙ্গে কাজ করা
একটি পুল থেকে আসছে হয়েছে মেমরি স্ট্যাকের হিসাবে পরিচিত.
একটি ভালো উপায় সাধারণত যাও mind-- এবং এই নিয়ম রাখা
সবসময় সত্য না রাখা কিন্তু অনেক সুন্দর প্রায়
সবসময় true-- কোন যে ঝুলিতে সময় আপনি একটি পরিবর্তনশীল নাম এটা দিতে
সম্ভবত স্ট্যাক বসবাস.
এবং যে কোনো সময় আপনি না একটি ভেরিয়েবলের একটি নাম দিতে,
আপনি ডাইনামিক মেমরি সঙ্গে কাজ করতে পারেন যা বরাদ্দ, গাদা উপর বসবাস.
>> এখন আমি ধরনের হিসাবে এই উপস্থাপন করছি মেমরি এই দুটি পুল আছে তাহলে.
কিন্তু আপনি এই দেখা হতে পারে সাধারণত যা ডায়াগ্রাম,
একটি উপস্থাপনা কি মেমরি, দেখে মনে হচ্ছে
এবং আমরা সম্পর্কে সব যত্ন যাচ্ছেন না উপরের এবং নীচের অংশে কাপড়.
কি আমরা যত্নশীল এই অংশ এখানে মাঝখানে, গাদা এবং স্ট্যাকের.
আপনি দেখতে পারেন এই চিত্রটি এ খুঁজছেন,
এইসব আসলে দুটি নয় মেমরি পৃথক পুল.
এটি মেমরি এক শেয়ার্ড পুলের যেখানে আপনি এই চাক্ষুষ মধ্যে, শুরু
আপনি নীচে শুরু এবং আপ ভর্তি শুরু
স্ট্যাকের সঙ্গে নীচে, এবং আপনার কাছ থেকে উপরের শুরু এবং আপ ভর্তি শুরু
গাদা সঙ্গে উপর থেকে নিচে.
কিন্তু এটি সত্যিই হয় একই পুল, এটা ঠিক
বিভিন্ন দাগ, বিভিন্ন স্থানে মেমরি বরাদ্দ করা হচ্ছে যে.
এবং যদি আপনি রান আউট করতে পারেন হয় না থাকার মেমরি
গাদা সব পথ যেতে নীচে, অথবা আছে
স্ট্যাক, উপরের সব পথ যেতে বা গাদা এবং স্ট্যাকের হচ্ছে
একে অপরের বিরুদ্ধে মিলিত হন.
যারা সব শর্ত হতে পারে যে আপনার প্রোগ্রাম কারণ
মেমরি ফুরিয়ে.
সুতরাং, এটা মনে রেখো.
আমরা সম্পর্কে কথা বলতে হলে গাদা এবং স্ট্যাকের
আমরা সত্যিই বিষয়ে কথা হয় মেমরি একই সাধারণ খণ্ড, শুধু
যে মেমরি বিভিন্ন অংশ.
>> তাই আমরা পরিবর্তনশীল কিভাবে পেতে পারি প্রথমেই মেমরি বরাদ্দ?
আমাদের প্রোগ্রাম পেতে কীভাবে এটি চলমান হিসাবে মেমরি?
পাশাপাশি সি নামক একটি ফাংশন প্রদান malloc, মেমরি নির্দিষ্টকারীর, যা
আপনি একটি কল করতে, এবং যে আপনি পাস কতগুলি আপনি চান যে মেমরি বাইট.
আপনার প্রোগ্রাম চালানো সম্ভব হলে তাই এবং আপনি একটি পূর্ণসংখ্যা রানটাইম চান,
আপনি চার বাইট mallock পারে মেমরি, যদি malloc চার বন্ধনী.
>> mallock মধ্য দিয়ে যেতে হবে গাদা মাধ্যমে খুঁজছেন,
আমরা পরিবর্তনশীল কারণ মেমরি বণ্টন,
এবং এটি আপনি ফিরে আসতে হবে যে মেমরি একটি পয়েন্টার.
এটা আপনি যে মেমরি দিতে না এটি একটি নাম দিতে না,
এটা যদি আপনি এটি একটি পয়েন্টার দেয়.
আবার আমি বলেন, কেন এবং যাতে এটা হতে পারে যে গুরুত্বপূর্ণ
পয়েন্টার ভিডিওটি দেখেছেন আমরা এই মধ্যে খুব বেশী দূরে পেতে আগে.
সুতরাং malloc যাচ্ছে একটি পয়েন্টার আপনাকে ফেরত দিতে.
>> Mallock আপনি কোন দিতে না পারেন, তাহলে মেমরি আপনি রান আউট করেছি, কারণ,
এটি একটি নাল পয়েন্টার আপনি ফিরিয়ে দিবে.
আমরা তাহলে কী মনে করবেন না চেষ্টা করুন এবং একটি নাল পয়েন্টার dereference?
আমরা ঠিক আছে, একটি seg দোষ ভোগে?
যে সম্ভবত ভাল না.
>> তাই প্রত্যেক সময় আপনি একটি কল করা সবসময় সবসময় আপনি malloc করতে
পরীক্ষা করতে হবে কিনা বা না আপনার ফিরে নাল দিয়েছেন পয়েন্টার.
যদি তা না হয়, আপনি আপনার প্রোগ্রাম শেষ করতে হবে আপনি ডি-রেফারেন্স চেষ্টা এবং যদি কারণ
আপনি যাচ্ছেন নাল পয়েন্টার একটি সেগমেন্টেশন ফল্ট ভোগে করতে
এবং আপনার প্রোগ্রাম যাহাই হউক না কেন বিপর্যস্ত যাচ্ছে.
সুতরাং কিভাবে স্ট্যাটিক্যালি আমরা না একটি পূর্ণসংখ্যা প্রাপ্ত?
>> int x এর.
আমরা সম্ভবত যে কাজ করেছি বার একটি গুচ্ছ, ডান?
এই নামে একটি ভেরিয়েবল তৈরি করে স্ট্যাকের উপর বসবাস যে এক্স.
কিভাবে আমরা পরিবর্তনশীল একটি পূর্ণসংখ্যা প্রাপ্ত না?
Int তারকা px এর malloc 4 সমান.
>> বা আরো সঠিকভাবে আমরা int তারকা px এর বলতে চাই
, int এর malloc আকার সমান শুধু কিছু কম নিক্ষেপ
আমাদের প্রোগ্রাম প্রায় ম্যাজিক সংখ্যার.
এটি আমাদের জন্য প্রাপ্ত যাচ্ছে গাদা থেকে মেমরির চার বাইট,
এবং পয়েন্টার আমরা পেতে তা ফিরে px এর বলা হয়.
এবং তারপর আমরা করেছি, ঠিক যেমন আমরা পূর্বে সম্পন্ন
পারেন px এর ডি-রেফারেন্স করতে যে মেমরি অ্যাক্সেস.
কিভাবে আমরা ব্যবহারকারী থেকে একটি পূর্ণসংখ্যা পেতে পারি?
আমরা int x int- পেতে সমান বলতে পারেন.
যে বেশ সহজবোধ্য.
আমরা একটি অ্যারের তৈরি করতে চান তাহলে কি স্ট্যাকের উপর যে বাস ফ্লোট X?
যে নাম stack_array-- ভাসা আমাদের অ্যারে বর্গাকার বন্ধনী x এর.
যে আমাদের একটি অ্যারের জন্য তৈরি হবে স্ট্যাকের উপর যে বাস ফ্লোট এক্স.
আমরা floats একটি অ্যারের তৈরি করতে পারেন যে খুব, গাদা উপর বসবাস.
সিনট্যাক্স একটি চেহারা হতে পারে , আরো কষ্টকর সামান্য
কিন্তু আমরা ভাসমান বলতে পারেন তারকা heap_array সমান
যদি malloc X বার float এর সাইজ.
আমি রাখা যথেষ্ট রুম দরকার X বিন্দু মান ভাসমান.
তাই আমি এটা 100 প্রয়োজন বলে ফ্লোট, বা 1,000 ফ্লোট.
সুতরাং যে ক্ষেত্রে এটি হবে 100 ফ্লোট জন্য 400 বাইট,
বা 1,000 ফ্লোট জন্য 4,000 বাইট, প্রতিটি ভাসমান লাগে কারণ
স্থান চার বাইট.
>> এই কাজ করার পর আমি ব্যবহার করতে পারেন heap_array চৌকো বন্ধনী সিনট্যাক্স.
শুধু আমি stack_array যেভাবে আমি পৃথকভাবে তার উপাদান অ্যাক্সেস করতে পারেন
ব্যবহার heap_array শূন্য, heap_array এক.
কিন্তু আমরা তা করতে পারে কারণ প্রত্যাহার কারণ সি একটি অ্যারের নাম
সত্যিই একটি পয়েন্টার যে অ্যারে এর প্রথম উপাদান.
আমরা একটি ঘোষণা করছি যে তাই এখানে স্ট্যাকের উপর floats অ্যারে
আসলে একটু বিভ্রান্তিকর.
আমরা সত্যিই আছে সেখানে কোড দ্বিতীয় লাইন
এছাড়াও একটি খণ্ড একটি পয়েন্টার তৈরি আমরা তখন সঙ্গে কিছু কাজ যে স্মৃতি.
>> এখানে বড় সমস্যা সাথে এর পরিবর্তনশীল যদিও মেমরি বরাদ্দ,
এটা সত্যিই কেন এবং এই হল কিছু ভাল অভ্যাস বিকাশ গুরুত্বপূর্ণ
যখন আপনি এটি দিয়ে কাজ করছি.
স্ট্যাটিক্যালি ঘোষণা ভিন্ন মেমরি, আপনার মেমরি
স্বয়ংক্রিয়ভাবে ফিরে না হয় আপনার ফাংশন সম্পন্ন করা হয় যখন আপনি সিস্টেম.
আমরা প্রধান আছে, এবং যদি তাই হয় প্রধান একটি ফাংশন কল
F, F শেষ এটা যখন করছেন যাই হোক না কেন এবং প্রোগ্রাম নিয়ন্ত্রণ ফেরৎ
ফিরে, প্রধান সব মেমরি ব্যবহৃত যে চ ফিরিয়ে দেওয়া হয়.
এটি পুনরায় ব্যবহার করা যাবে অন্য কিছু প্রোগ্রাম দ্বারা
বা অন্য কিছু ফাংশন যে প্রধান পরে বলা হয়.
এটা আবার সেই একই মেমরি উপর ব্যবহার করতে পারেন.
>> আপনি যদি পরিবর্তনশীল যদিও মেমরি বরাদ্দ
আপনি স্পষ্টভাবে জানাতে হবে আপনি এটি সঙ্গে সম্পন্ন যে সিস্টেম.
এটা যা করতে পারে, এটা আপনার জন্য সম্মুখের রাখা হবে আপনি চলমান আউট একটি সমস্যা হতে
মেমরি.
এবং আসলে আমরা কখনো কখনো পড়ুন একটি মেমরি লিক এই হিসাবে.
এবং কখনও কখনও এই মেমরি তথ্য ফাঁসের আসলে সত্যিই বিধ্বংসী হতে পারে
সিস্টেমের কর্মক্ষমতা জন্য.
>> আপনি একটি ঘন ইন্টারনেট ব্যবহারকারী হন তাহলে আপনি, নির্দিষ্ট ওয়েব ব্রাউজার ব্যবহার করতে পারে
এবং আমি এখানে নাম নাম, কিন্তু না করতে কিছু ওয়েব ব্রাউজার আছে আউট আছে
আসলে থাকার জন্য কুখ্যাত হয় সংশোধন না যে মেমরি তথ্য ফাঁসের.
আর যদি আপনার ব্রাউজার সাপোর্ট খোলা ছেড়ে যদি একটা সময় খুব দীর্ঘ সময়ের জন্য, দিন
এবং দিন, অথবা সপ্তাহের, আপনি মাঝে মাঝে আপনার সিস্টেম যে লক্ষ্য করা হতে পারে
সত্যিই ধীরে ধীরে, সত্যিই চলমান হয়.
আর এর কারণ যে হয় ব্রাউজার, মেমরি বরাদ্দ করেছে
কিন্তু তারপর সিস্টেম বলা না যে এটা দিয়ে কাজ করে.
আর তাই যে কম মেমরি ছেড়ে আপনার অন্য সব প্রোগ্রামের জন্য উপলব্ধ
কারণ আপনি, শেয়ার আছে যে ওয়েব ব্রাউজার leaking--
প্রোগ্রাম মেমরি লিক করছে.
আমরা ফিরে মেমরি দিতে না কিভাবে আমরা এটা দিয়ে পেরেছ?
ওয়েল সৌভাগ্যবশত এটি একটি এটা খুব সহজ উপায়.
আমরা শুধু এটা বিনামূল্যে.
ফ্রি নামক একটি ফাংশন আছে, এটি মেমরি থেকে একটি পয়েন্টার গ্রহণ
এবং আমরা যেতে ভাল.
>> সুতরাং আসুন আমরা এ করছি বলা যাক আমাদের প্রোগ্রাম মাঝখানে,
আমরা 50 অক্ষর malloc করতে চান.
আমরা যে একটি অ্যারের malloc করতে চান 50 অক্ষর ধারণ করতে সক্ষম.
আর আমরা ফিরে একটি পয়েন্টার পেতে হলে যে, যে পয়েন্টার এর নামের শব্দ হয়.
আমরা যাই হোক না কেন না শব্দ দিয়ে কি করতে যাচ্ছি,
এবং তারপর আমরা যখন আমরা শুধু এটা বিনামূল্যে সম্পন্ন.
আর এখন আমরা যারা 50 ফিরে আছে ফিরে সিস্টেম মেমরি বাইট.
অন্য কিছু ফাংশন ব্যবহার করতে পারেন.
আমরা একটি সহন সম্পর্কে চিন্তা করতে হবে না মেমরি লিক আমরা শব্দ মুক্ত করেছে.
আমরা ফিরে মেমরি দিয়েছি, তাই আমরা এটা নিয়ে কাজ সম্পন্ন করেছেন.
সুতরাং তিনটি আছে যে উচিত গোল্ডেন নিয়ম
আপনি যখনই মনে রাখতে হবে পরিবর্তনশীল মেমরি বণ্টন
malloc সঙ্গে.
মেমরি প্রতি ব্লক যে আপনি malloc মুক্ত করা হবে
আপনার প্রোগ্রাম আগে চলমান সম্পন্ন না.
এখন আবার, গৃহ বা এ আইডিই এই ধরণের জন্য যাইহোক ঘটবে
পৌছে দিতে যখন এই যে কোনভাবে ঘটবে আপনার প্রোগ্রাম বাতিল করা হলে,
সব স্মৃতি প্রকাশ করা হবে.
কিন্তু এটা সাধারণত ভাল কোডিং এর অনুশীলন সবসময়, যখন আপনি কাজ করছেন,
আপনি mallocd আছে কি মুক্ত.
>> তাই বলা হয়, শুধুমাত্র কিছু যে আপনি mallocd মুক্ত করা উচিত করেছি.
আপনি স্ট্যাটিক্যালি ঘোষণা করে একটি পূর্ণসংখ্যা, int x এর সেমিকোলন,
যে স্ট্যাকের উপর বসবাস, আপনি তারপর X মুক্ত করতে চাই না.
আপনি করেছি, যাতে কিছু mallocd মুক্ত করতে হবে.
>> এবং সর্বশেষে, দুইবার না ফ্রি কিছু না.
যে হতে পারে অন্য অদ্ভুত পরিস্থিতি.
আপনি করেছি, যাতে সবকিছু mallocd মুক্ত করা হয়েছে.
আপনি করেছি যে শুধু কিছু যদি malloc মুক্ত করতে হবে.
এবং দুইবার না ফ্রি কিছু না.
>> সুতরাং আসুন এখানে একটি উদাহরণ দিয়ে যেতে দেওয়া কিছু পরিবর্তনশীল বরাদ্দ কি
মেমরি মিশ্র অনুরূপ হতে পারে কিছু স্ট্যাটিক মেমরির মধ্যে.
এখানে কি ঘটতে পারে?
আপনি অনুসরণ করতে পারেন দেখুন বরাবর এবং কি অনুমান
হিসাবে আমরা যেতে ঘটতে যাচ্ছে কোড সব এই লাইনের মাধ্যমে.
>> তাই আমরা int এম বলতে.
এখানে কি হয়?
আচ্ছা এই বেশ সহজবোধ্য.
আমি এম নামক একটি পূর্ণসংখ্যা পরিবর্তনশীল তৈরি.
আমি এটি সবুজ রঙ যে রঙ কারণ
আমি কথা বলছি যখন আমি ব্যবহার করে সম্পর্কে পূর্ণসংখ্যা ভেরিয়েবল.
এটি একটি বক্স.
এটা আপনি করতে পারেন এম বলা হয়, এবং এর এটি ভেতরে দোকান ইন্টিজার.
>> আমি তখন একটি int তারকা বলি?
ভাল যে প্রায় অনুরূপ.
আমি একটি বাক্সে একটি বলা তৈরি করছি.
এটি ধারণ কোন int করতে সক্ষম বড়, ইন্টিজার পয়েন্টার.
তাই আমি পাশাপাশি এটা সবুজ পর ভাব করছি.
>> আমি এটা কিছু আছে জানি একটি পূর্ণসংখ্যা সঙ্গে কাজ করতে,
কিন্তু এটি একটি পূর্ণসংখ্যা না নিজেই.
কিন্তু এটা অনেক সুন্দর একই ধারণা.
আমি একটি বাক্স তৈরি করেছি.
এই অধিকার উভয় এখন স্ট্যাক বাস.
আমি তাদের উভয় নাম দিয়েছি.
>> কোন int তারকা বি int এর malloc আকার সমান.
এই এক একটি সামান্য চতুর হতে পারে.
কয়েক সেকেন্ড সময় নিন এবং আপনি কি আমার মনে হয় এই চিত্রটি উপর ঘটতে আশা করবে.
কোন int তারকা বি int এর malloc আকার সমান.
>> আচ্ছা এই মাত্র এক বাক্স তৈরি করে না.
এটি আসলে দুটি বক্স তৈরি করে.
এবং এটা এছাড়াও স্থাপন, বন্ধন একটি সম্পর্কের মধ্যে একটি বিন্দু.
আমরা এক ব্লক বরাদ্দ করেছি গাদা মেমরি.
লক্ষ্য করুন উপরের ডান বক্সে যে একটি নাম আছে তা নয়.
>> আমরা এটা mallocd.
গাদা উপর বিদ্যমান.
কিন্তু বি একটি নাম আছে.
এটি বি নামক একটি পয়েন্টার পরিবর্তনশীল.
যে স্ট্যাকের উপর বসবাস.
>> সুতরাং এটি একটি মেমরি টুকরা অন্য যে এক পয়েন্ট.
বি অঙ্ক রয়েছে মেমরি যে ব্লক.
এটা অন্যথায় একটি নাম নেই.
কিন্তু এটা স্থানটিকে.
তাই আমরা int তারকা বি সমান বলে যখন int এর malloc আকার, ঠিক আছে যে,
popped আপ যে তীর সেখানে ডান দিকে, যে গোটা ব্যাপারটাই,
আমি এটি প্রদর্শিত হবে আবার কি ঘটবে.
যে সব ঘটবে কোড যে একক লাইন.
এখন আমরা একটু বেশি পাবেন আবার সহজবোধ্য.
একটি এম্পারসেন্ড এম সমান.
আপনি কি একটি প্রত্যাহার না এম্পারসেন্ড মিটার সমান?
এটা একটা এম এর ঠিকানা পায়.
অথবা, আরও diagrammatically করা এম একটি পয়েন্ট.
>> একটি বি সমান.
ঠিক আছে, তাই এখানে অন্য এক.
একটি বি সমান.
কি ঘটতে যাচ্ছে চিত্রটি এই সময়?
>> ওয়েল প্রত্যাহার নিয়োগ অপারেটর কাজ
মান বরাদ্দ করে ডান বাম মান.
মি সুতরাং পরিবর্তে একটি নির্দেশ, একটি এখন বি পয়েন্ট যে একই জায়গায় স্থানটিকে.
একটি, একটি বো দিকে নির্দেশ করে না যেখানে বি পয়েন্ট পয়েন্ট.
>> একটি সরু যে বো তাহলে would একটি এম্পারসেন্ড বি সমান হয়েছে.
কিন্তু এর পরিবর্তে একটি মাত্র বি সমান এর মানে হল যে ও বি এখন
একই ঠিকানায় কারণ ইশারা বি ভেতরে শুধু একটি ঠিকানা থাকে.
এবং এখন একটি ভেতরে একই ঠিকানা.
এম সম্ভবত, 10 সমান সবচেয়ে সহজবোধ্য জিনিস
আমরা অল্প কাজ করেছি.
বক্সে 10 রাখুন.
রাশি বি এম সমান প্লাস 2, থেকে প্রত্যাহার আমাদের পয়েন্টার ভিডিও কি তারকা বি মানে.
আমরা dereference B এবং রাখা চলুন যে মেমরি অবস্থানে কিছু মান.
এই ক্ষেত্রে 12 সালে.
>> সুতরাং যখন আমরা একটি বিন্দু ডি-রেফারেন্স আমরা শুধু তীর নিচে ভ্রমণ প্রত্যাহার.
বা অন্য উপায় করা, আমরা যে মেমরি ঠিকানায় যান
এবং আমরা কিছু উপায়ে তা নিপূণভাবে.
আমরা সেখানে কিছু মান করা.
এই ক্ষেত্রে তারা বি ইন এম সমান প্লাস 2 শুধু হয়
পরিবর্তনশীল যান, বি দ্বারা জোরাল মেমরি যান, বি দ্বারা জোরাল
এবং 12, সেখানে এম প্লাস 2 করা.
>> এখন আমি বি মুক্ত.
আমি বি মুক্ত হলে কি হবে?
আমি ফ্রি মানে আমি কি বলেছিলাম.
আমি বি মুক্ত যখন আমি কি বলার অপেক্ষা রাখে না?
>> আমি এটা দিয়ে কাজ আছে, কাজ করছি?
আমি মূলত মেমরি ছেড়ে দিতে.
আমি সিস্টেমে এটি ফিরিয়ে দিতে.
আমি এই আর প্রয়োজন হয় না কি আমি ঠিক আছে, তাদের বলছি?
>> এখন আমি যদি বলি তারা একটি 11 আপনি সম্ভবত পারেন সমান
ইতিমধ্যে খারাপ যে কিছু বলতে ঠিক আছে, এখানে ঘটতে যাচ্ছে?
আর আমি যে সম্ভবত চেষ্টা প্রকৃতপক্ষে যদি একটি সেগমেন্টেশন ফল্ট ভুগতে হবে.
এখন যেহেতু, যদিও মেমরি পূর্বে যে তাল
আমি ছিল যে ছিল কিছু এই সময়ে অ্যাক্সেস,
এখন আমি মেমরি অ্যাক্সেস করছি যে আমার অ্যাক্সেস করার জন্য আইনি নয়.
>> এবং হিসাবে আমরা সম্ভবত হবে আমরা মেমরি অ্যাক্সেস যখন, প্রত্যাহার
আমরা স্পর্শ করতে অনুমিত করছি না যে, যে সবচেয়ে সাধারণ কারণ হচ্ছে
একটি সেগমেন্টেশন এর দোষ. আর তাই আমার প্রোগ্রাম
আমি এই কাজ করতে চেষ্টা যদি বিপর্যস্ত হবে.
তাই আবার এটা ভাল পেতে একটা ভাল ধারণা অনুশীলন এবং ভাল অভ্যাস বদ্ধমূল
malloc এবং বিনামূল্যে সঙ্গে যখন কাজ, তাই আপনি সেগমেন্টেশন ভোগেন না যে
আপনি ব্যবহার, এবং যে ফল্ট আপনার পরিবর্তনশীল বরাদ্দ
মেমরি দায়িত্বের.
>> আমি ডগ লয়েড আছি এই CS50.