इस खंड में हम देखेंगे कि सी में शून्य सूचक और सी ++ में शून्य सूचक के बीच क्या अंतर हैं। वे दोनों शून्य सूचक हैं लेकिन सी में एक शून्य सूचक को किसी भी सूचक प्रकार को सौंपा जा सकता है, लेकिन सी ++ में, हम ऐसा नहीं कर सकते हैं। C++ में हमें असाइन करने के लिए स्पष्ट रूप से टाइपकास्ट करना पड़ता है।
निम्नलिखित उदाहरण में इन पंक्तियों को तब निष्पादित किया जा सकता है जब हम सी में कुछ कोड लिख रहे हों।
void *p; int *int_ptr = p;
यह सी में ठीक काम करेगा। अब अगर हम कुछ मेमोरी स्पेस आवंटित करने के लिए malloc() का उपयोग करते हैं, तो हम स्पष्ट टाइपकास्ट का उपयोग कर सकते हैं, लेकिन अगर हम ऐसा नहीं करते हैं, तो यह भी ठीक रहेगा। मॉलोक () फ़ंक्शन शून्य सूचक देता है।
int *int_ptr = malloc(sizeof(int) * 10);
यहां लौटा हुआ शून्य सूचक परोक्ष रूप से पूर्णांक प्रकार सूचक में परिवर्तित हो जाता है।
अब अगर हम C और C++ में एक ही प्रोग्राम चलाना चाहते हैं, तो हमें पॉइंटर्स को स्पष्ट रूप से टाइपकास्ट करना चाहिए।
void *p; int *int_ptr = (int *) p; int *arr_ptr = (int *) malloc(sizeof(int) * 10);