কম্পিউটার টিউটোরিয়াল

সি এবং সি++-তে "void *" পয়েন্টারের পার্থক্য


এই সেকশনে আমরা দেখব সি-তে void পয়েন্টার এবং সি++-তে void পয়েন্টারের মধ্যে পার্থক্য। উভয়টিই void পয়েন্টার হলেও, সি-এ একটি void পয়েন্টার যেকোনো পয়েন্টার টাইপে অ্যাসাইন করা যায়, কিন্তু সি++-এ এটি করা যায় না। সি++-এ এক্সপ্লিসিট টাইপকাস্ট করে অ্যাসাইন করতে হয়।

নিচের উদাহরণে এই লাইনগুলো সি-এ লিখলে এক্সিকিউট হবে:

void *p;
int *int_ptr = p;

এটি সি-এ ঠিকমতো কাজ করবে। এখন যদি আমরা malloc() ব্যবহার করে মেমরি অ্যালোকেট করি, তবে এক্সপ্লিসিট টাইপকাস্ট ব্যবহার করতে পারি, কিন্তু না করলেও চলবে। malloc() ফাংশন void পয়েন্টার রিটার্ন করে।

int *int_ptr = malloc(sizeof(int) * 10);

এখানে রিটার্ন করা void পয়েন্টার ইমপ্লিসিটলি ইন্টিজার টাইপ পয়েন্টারে রূপান্তরিত হয়।

এখন যদি আমরা একই প্রোগ্রাম সি এবং সি++-এ চালাতে চাই, তবে আমাদের স্পষ্টভাবে পয়েন্টারগুলো টাইপকাস্ট করতে হবে।

void *p;
int *int_ptr = (int *) p;
int *arr_ptr = (int *) malloc(sizeof(int) * 10);
  1. WPS কী এবং এটি কীভাবে কাজ করে? সম্পূর্ণ গাইড

  2. Dropbox Paper কী এবং প্রতিযোগীদের সাথে কীভাবে তুলনা হয়?

  3. C++-এ কম্বিনেশন এবং পারমিউটেশন কীভাবে গণনা করবেন?

  4. Void Linux কী এবং কীভাবে ইনস্টল করবেন