#include<cstdio>
#include<stdlib.h>
int main()
{
char* ptr=NULL;
printf("%s",ptr);
return 0;
}
यह आउटपुट के रूप में प्रिंट करता है (शून्य)। उपर्युक्त नमूना कोड है। वास्तविक कोड में मुझे एक समारोह की वापसी के रूप में char * मिलता है और मैं लॉगिंग के लिए वर्ण स्ट्रिंग मुद्रित करना चाहता हूं। हालांकि, एनयूएलएल उस समारोह का वैध वापसी मूल्य भी है और इसलिए मैं सोच रहा हूं कि चरित्र स्ट्रिंग को मुद्रित करने से पहले एक शून्य जांच की आवश्यकता है या नहीं?निम्नलिखित सी कोड सुरक्षित है?
char* ptr=someFuncion();
// do i need the following if statement?
if(ptr!=NULL)
{
printf("%s",ptr);
}
मैं बस यह सुनिश्चित करें कि उत्पादन एक ही यानी हो सकता है अगर ptr = शून्य तो उत्पादन सभी प्लेटफार्मों और संकलनकर्ता और इसके बाद के संस्करण कोड (बिना अगर बयान) पर (शून्य) होना चाहिए किसी पर दुर्घटना नहीं होगा होना चाहता हूँ सी मानक संगत मंच।
संक्षेप में, उपरोक्त कोड (यदि कथन के बिना) मानक संगत है?
आपकी मदद और धैर्य :)
सादर
संदेह आप कार्यान्वयन विवरण पर निर्भर नहीं होना चाहिए और एक अतिरिक्त (ptr != NULL)
प्रदर्शन के मामले में लाली
आपके कोड को प्रदान करने वाला '' हेडर क्या है? आपका कोड एक ऐसे फ़ंक्शन को शून्य पॉइंटर पास करके अपरिभाषित व्यवहार का आह्वान करता है जो किसी की अपेक्षा नहीं करता है। कुछ भी हो सकता है - इसमें यह गलती से काम कर सकता है, ज्यादातर। –
ठीक है, मुझे मिल गया। इस तरह के "रीयलटाइम" मदद के लिए सभी को धन्यवाद :)) – ghayalcoder