Void Pointer का परिचय
C प्रोग्रामिंग में, एक void pointer
(जिसे जनरल प्वाइंटर भी कहते हैं) ऐसा प्वाइंटर होता है जो किसी भी डेटा प्रकार को पॉइंट कर सकता है। इसे एक प्रकार का “जनरल प्वाइंटर” कहा जाता है क्योंकि यह किसी विशेष डेटा प्रकार से बंधा नहीं होता है।
Void Pointer की मुख्य विशेषताएँ
- void pointer किसी भी प्रकार के डेटा को स्टोर कर सकता है, लेकिन इसके माध्यम से किसी भी ऑपरेशन (जैसे कि dereferencing) को बिना डेटा को कास्ट किए नहीं किया जा सकता।
- void pointer से डेटा को एक्सेस करने के लिए पहले उसे एक निश्चित डेटा प्रकार में कास्ट (type cast) करना होता है।
- चूंकि
void pointer
किसी प्रकार का डेटा स्टोर नहीं करता, इसलिए कंपाइलर को यह पता नहीं होता कि वह कितनी बाइट्स तक एक्सेस करे। इसलिए इसे किसी निश्चित प्रकार में बदलकर ही उपयोग करना पड़ता है।
#include <stdio.h>
int main() {
int a = 10;
float b = 5.5;
void *ptr;// ptr को integer की ओर इशारा करने के लिए कास्ट किया
ptr = &a;
printf(“Integer value: %d\n”, *(int *)ptr);// ptr को float की ओर इशारा करने के लिए कास्ट किया
ptr = &b;
printf(“Float value: %.2f\n”, *(float *)ptr);return 0;
}
इस उदाहरण में, ptr एक void pointer है जो पहले integer और फिर float डेटा प्रकार की ओर इशारा करता है। *(int *)ptr और *(float *)ptr के माध्यम से हम void pointer को उचित प्रकार में कास्ट कर रहे हैं।
void pointer के उपयोग
- जब हमें किसी ऐसी डेटा स्ट्रक्चर को डिज़ाइन करना होता है जो विभिन्न प्रकार के डेटा को स्टोर कर सके।
- मेमोरी अलोकेशन फंक्शंस जैसे malloc()
void pointer
को रिटर्न करते हैं, जिसे हम किसी भी प्रकार के डेटा में कास्ट कर सकते हैं।