Caloc এবং malloc এর মধ্যে পার্থক্য

সুচিপত্র:

Caloc এবং malloc এর মধ্যে পার্থক্য
Caloc এবং malloc এর মধ্যে পার্থক্য

ভিডিও: Caloc এবং malloc এর মধ্যে পার্থক্য

ভিডিও: Caloc এবং malloc এর মধ্যে পার্থক্য
ভিডিও: W4_3 - Heap 2024, জুলাই
Anonim

মূল পার্থক্য – কলক বনাম ম্যালোক

প্রোগ্রামিং-এ তথ্য সংরক্ষণ করা প্রয়োজন। ডেটা মেমরিতে সংরক্ষণ করা হয়। এই মেমরি অবস্থানগুলি ভেরিয়েবল হিসাবে পরিচিত। প্রতিটি পরিবর্তনশীল একটি নির্দিষ্ট ধরনের আছে. এগুলি পূর্ণসংখ্যা, ফ্লোট, দ্বৈত, অক্ষর ইত্যাদি হতে পারে৷ এছাড়াও ডেটা স্ট্রাকচার রয়েছে যা একই ধরণের উপাদানগুলির একটি নির্দিষ্ট-আকারের অনুক্রমিক সংগ্রহ সংরক্ষণ করতে পারে৷ এটি একটি অ্যারে। প্রোগ্রামারকে অ্যারের আকার ঘোষণা করতে হবে। যদি প্রোগ্রামার পাঁচটি উপাদানের জন্য পূর্ণসংখ্যার একটি অ্যারে ঘোষণা করে, তবে ঘোষিত আকারের চেয়ে বেশি একটি সূচকে একটি মান নির্ধারণ করা সম্ভব নয়। মেমরি বরাদ্দ স্থির করা হয়েছে, এবং এটি চালানোর সময় পরিবর্তন করা যাবে না।অন্যান্য মেমরি বরাদ্দ পদ্ধতি হল গতিশীল মেমরি বরাদ্দ। ডায়নামিক মেমরি বরাদ্দ প্রয়োজন হলে আরও মেমরি বরাদ্দ করতে এবং প্রয়োজনে ছেড়ে দিতে সহায়তা করে। হেডার ফাইলে গতিশীল মেমরি বরাদ্দের জন্য চারটি ফাংশন রয়েছে। calloc এবং malloc দুটি যেমন ফাংশন. calloc এবং malloc এর মধ্যে মূল পার্থক্য হল যে calloc মেমরি বরাদ্দ করে এবং বরাদ্দ করা মেমরি ব্লকগুলিকে শূন্যতে আরম্ভ করে যেখানে malloc মেমরি বরাদ্দ করে কিন্তু সেই বরাদ্দ করা মেমরিকে শূন্যে আরম্ভ করে না। calloc-এ কন্টেন্ট অ্যাক্সেস করা শূন্য দেবে, কিন্তু malloc একটি আবর্জনা মান দেবে।

caloc কি?

মেমোরি অ্যালোকেশন হল এক্সিকিউটিং প্রোগ্রামের জন্য মেমরি বরাদ্দ করার প্রক্রিয়া। কখনও কখনও মেমরির আকার পরিবর্তন করা প্রয়োজন। অতএব, গতিশীল মেমরি বরাদ্দ ব্যবহার করা হয়। এটি পয়েন্টার ব্যবহার করে করা হয়। পয়েন্টার হল রেফারেন্স ভেরিয়েবল যা অন্য ভেরিয়েবলের ঠিকানা ধরে রাখে।

কলক এবং ম্যালোকের মধ্যে পার্থক্য
কলক এবং ম্যালোকের মধ্যে পার্থক্য

চিত্র 01: calloc এবং malloc

calloc মানে "সংলগ্ন বরাদ্দ"। এটি একই আকারের সাথে মেমরির একাধিক ব্লক বরাদ্দ করে। Caloc জন্য বাক্য গঠন নিম্নরূপ। দুইটা যুক্তি লাগে। সেগুলো হল ব্লকের সংখ্যা এবং প্রতিটি ব্লকের আকার। কলক ফাংশন একটি অকার্যকর পয়েন্টার প্রদান করে, তাই একটি কাস্ট অপারেটর প্রয়োজনীয় ডেটা টাইপ অনুযায়ী পয়েন্টার টাইপ ফেরাতে ব্যবহৃত হয়।

voidcalloc(size_t num, size_t size);

নীচের সাধারণ সি প্রোগ্রামটি পড়ুন।

অন্তর্ভুক্ত

অন্তর্ভুক্ত

int main(){

int ptr=(int) calloc(20, sizeof(int));

if (ptr==NULL){

printf("মেমরি বরাদ্দ নেই");

}

অন্য{

printf("মেমরি বরাদ্দ করা হয়েছে");

}

রিটার্ন 0;

}

উপরের প্রোগ্রাম অনুসারে, মেমরির একটি সংলগ্ন ব্লক যা 20 টি উপাদান ধরে রাখতে পারে। প্রতিটির একটি পূর্ণসংখ্যার আকার থাকবে। sizeof(int) ব্যবহার করা হয় কারণ পূর্ণসংখ্যার ধরন কম্পাইলার থেকে কম্পাইলারে পরিবর্তিত হয়।

যদি মেমরি বরাদ্দ সফল হয়, এটি মেমরি ব্লকের বেস অ্যাড্রেস ফিরিয়ে দেবে। এর মানে হল যে পয়েন্টার ptr এখন সেই মেমরি ব্লকের বেস ঠিকানা নির্দেশ করছে। সমস্ত বরাদ্দকৃত অঞ্চলগুলিকে শূন্যে আরম্ভ করা হয়েছে৷ এটি মেমরি অ্যালোকেটেড মেসেজ প্রিন্ট করবে। মেমরি বরাদ্দ ব্যর্থ হলে, এটি নাল পয়েন্টার ফিরিয়ে দেবে। অতএব, এটি প্রিন্ট করবে মেমরি বার্তা বরাদ্দ নয়।

malloc কি?

Malloc ফাংশনটি মেমরিতে প্রয়োজনীয় পরিমাণ বাইট বরাদ্দ করতে ব্যবহৃত হয়। malloc-এর সিনট্যাক্স নিম্নরূপ। আকারটি বাইটে প্রয়োজনীয় মেমরির প্রতিনিধিত্ব করে৷

void malloc(size_t_size);

ফাংশন malloc একটি অকার্যকর পয়েন্টার প্রদান করে, তাই একটি কাস্ট অপারেটর প্রয়োজনীয় ডেটা টাইপ অনুযায়ী পয়েন্টার টাইপ ফেরাতে ব্যবহৃত হয়।

ম্যালক ফাংশন সহ নীচের সহজ সি প্রোগ্রামটি পড়ুন।

অন্তর্ভুক্ত

অন্তর্ভুক্ত

int main(){

int ptr=(int) malloc (10sizeof(int));

if (ptr==NULL){

printf("মেমরি বরাদ্দ নেই");

}

অন্য{

printf("মেমরি বরাদ্দ করা হয়েছে");

}

রিটার্ন 0;

}

উপরের প্রোগ্রাম অনুসারে, মেমরির ব্লক বরাদ্দ করা হবে। পয়েন্টারটি বরাদ্দ করা মেমরির শুরুর ঠিকানা নির্দেশ করছে। ফিরে আসা পয়েন্টার একটি পূর্ণসংখ্যা টাইপ রূপান্তরিত হয়. মেমরি বরাদ্দ করা হলে এটি মেমরি বরাদ্দ বার্তা প্রিন্ট হবে. মেমরি বরাদ্দ না হলে, একটি নাল পয়েন্টার ফিরে আসবে। অতএব, মেমরি বরাদ্দ না বার্তা প্রিন্ট করা হবে।

caloc এবং malloc এর মধ্যে মিল কি?

  • এই দুটি ফাংশনই হেডার ফাইলে ঘোষণা করা হয়। এটি স্ট্যান্ডার্ড লাইব্রেরি হেডার ফাইল৷
  • উভয় ফাংশন ডায়নামিক মেমরি বরাদ্দের জন্য ব্যবহৃত হয়।
  • caloc এবং malloc দ্বারা প্রত্যাবর্তিত পয়েন্টারটি নির্দিষ্ট প্রকারে কাস্ট করা উচিত।
  • সফল মেমরি বরাদ্দকরণে, উভয় ফাংশনই মেমরি ব্লকের মূল ঠিকানা সহ একটি পয়েন্টার ফেরত দেবে।
  • যদি মেমরি বরাদ্দ ব্যর্থ হয়, একটি নাল পয়েন্টার ফেরত দেওয়া হবে।

caloc এবং malloc এর মধ্যে পার্থক্য কি?

calloc বনাম malloc

calloc হল সি ল্যাঙ্গুয়েজ stdlib.h হেডার ফাইলে ডাইনামিক মেমরি বরাদ্দের জন্য একটি ফাংশন যা একটি নির্দিষ্ট সংখ্যক বাইট বরাদ্দ করে এবং সেগুলোকে শূন্য করে শুরু করে। malloc হল সি ল্যাঙ্গুয়েজ stdlib.h হেডার ফাইলে ডাইনামিক মেমরি বরাদ্দের জন্য একটি ফাংশন যা একটি নির্দিষ্ট সংখ্যক বাইট বরাদ্দ করে।
অর্থ
calloc মানে সংলগ্ন বরাদ্দ। malloc মানে মেমরি বরাদ্দ।
সিনট্যাক্স
calloc void calloc(size_t_num, size_t size); এর অনুরূপ একটি সিনট্যাক্স অনুসরণ করে malloc একটি সিনট্যাক্স অনুসরণ করে void malloc(size_t_size);।
আর্গুমেন্টের সংখ্যা
calloc দুটি আর্গুমেন্ট নেয়। এগুলি প্রতিটি ব্লকের বেশ কয়েকটি ব্লক এবং আকার৷ malloc একটি যুক্তি নেয়। এটি একটি বাইট সংখ্যা।
গতি
calloc malloc থেকে একটু বেশি সময় নেয়। এটি বরাদ্দকৃত মেমরিকে শূন্য দিয়ে আরম্ভ করার অতিরিক্ত পদক্ষেপের কারণে। ম্যালোক কলক থেকে দ্রুত।

সারাংশ – calloc বনাম malloc

স্ট্যাটিক মেমরি অ্যালোকেশনে যেমন আমাদের অ্যারে ব্যবহার করে, মেমরি ঠিক করা হয়। যদি কিছু উপাদান সংরক্ষণ করা হয়, তবে বাকি মেমরি নষ্ট হয়ে যায়। বরাদ্দ করা মেমরি প্রয়োজনীয় মেমরির চেয়ে ছোট হলে এটি ত্রুটির কারণ হতে পারে। অতএব, গতিশীল মেমরি বরাদ্দ ব্যবহার করা হয়। C ভাষায়, calloc এবং malloc গতিশীল মেমরি বরাদ্দ প্রদান করে। calloc এবং malloc এর মধ্যে পার্থক্য হল যে calloc মেমরি বরাদ্দ করে এবং বরাদ্দ করা মেমরি ব্লকগুলিকে শূন্যতে আরম্ভ করে যখন malloc মেমরি বরাদ্দ করে কিন্তু মেমরি ব্লকগুলিকে শূন্যে আরম্ভ করে না। Malloc দুটি আর্গুমেন্ট নেয় যখন calloc দুটি আর্গুমেন্ট নেয়।

calloc vs malloc এর PDF ডাউনলোড করুন

আপনি এই নিবন্ধটির পিডিএফ সংস্করণ ডাউনলোড করতে পারেন এবং উদ্ধৃতি নোট অনুসারে অফলাইন উদ্দেশ্যে এটি ব্যবহার করতে পারেন। দয়া করে এখানে PDF সংস্করণ ডাউনলোড করুন: calloc এবং malloc এর মধ্যে পার্থক্য

প্রস্তাবিত: