यह मेरे पास question की निरंतरता है।स्ट्रिंग सरणी प्रारंभिकरण
निम्नलिखित कोड पर विचार करें:
char *hi = "hello";
char *array1[3] =
{
hi,
"world",
"there."
};
यह मेरे आश्चर्य संकलन नहीं है (जाहिरा तौर पर मैं और साथ ही मैंने सोचा था कि सी वाक्य रचना पता नहीं है) और निम्न त्रुटि उत्पन्न करता है:
error: initializer element is not constant
अगर मैं चार में चार * बदल [] यह ठीक संकलित:
char hi[] = "hello";
char *array1[3] =
{
hi,
"world",
"there."
};
किसी ने मुझसे क्यों करने के लिए व्याख्या कर सकते हैं?
धन्यवाद। क्या कोड का पहला टुकड़ा बनाने के लिए कॉन्स्ट कीवर्ड का उपयोग करने का कोई तरीका है? – lang2
@ lang2 उस दायरे में नहीं है। इसे देखें [सी अकसर किये गए सवाल] (http://c-faq.com/ansi/constasconst.html)। 'Char * const hi' के साथ भी नहीं (चार को स्थिर सूचक)। – cnicutar
बस कुछ जोड़ा, 'मुझे यकीन नहीं है कि यह काम करेगा ... आपका पहला संस्करण सी ++ में ठीक है - जब मैं एक पल प्राप्त करता हूं तो मैं एक सी कंपाइलर के साथ प्रयास करूंगा :) – icabod