সি-তে ভয়েড পয়েন্টার (void pointer) হলো এমন একটি পয়েন্টার যা যেকোনো ডেটা টাইপের সাথে যুক্ত নয়। এটি স্টোরেজে কিছু ডেটা লোকেশনের দিকে নির্দেশ করে অর্থাৎ ভেরিয়েবলগুলোর অ্যাড্রেসের দিকে নির্দেশ করে। এটাকে জেনারেল পারপাস পয়েন্টারও বলা হয়। সি-তে malloc() এবং calloc() ফাংশনগুলো void * বা জেনেরিক পয়েন্টার রিটার্ন করে।
সীমাবদ্ধতা
- ভয়েড পয়েন্টারের সাথে পয়েন্টার অ্যারিথমেটিক সম্ভব নয় এর কংক্রিট আকারের কারণে।
- এটি ডিয়ারেফারেন্সড (dereferenced) হিসেবে ব্যবহার করা যায় না।
এলগরিদম
Begin
ইন্টিজার ডেটা টাইপের a ঘোষণা করুন
a = 7 ইনিশিয়ালাইজ করুন
ফ্লোট ডেটা টাইপের b ঘোষণা করুন
b = 7.6 ইনিশিয়ালাইজ করুন
void টাইপের একটি পয়েন্টার p ঘোষণা করুন
p পয়েন্টারকে a-তে ইনিশিয়ালাইজ করুন
"Integer variable is" প্রিন্ট করুন
p পয়েন্টার ব্যবহার করে a-এর মান প্রিন্ট করুন
p পয়েন্টারকে b-তে ইনিশিয়ালাইজ করুন
"Float variable is" প্রিন্ট করুন
p পয়েন্টার ব্যবহার করে b-এর মান প্রিন্ট করুন
End.
উদাহরণ কোড
#include <stdlib.h>
int main() {
int a = 7;
float b = 7.6;
void *p;
p = &a;
printf("Integer variable is = %d", *((int*) p));
p = &b;
printf("\nFloat variable is = %f", *((float*) p));
return 0;
}
আউটপুট
Integer variable is = 7 Float variable is = 7.600000