जेन्स ने जो पहले ही कहा है, उसे दोहराने के लिए, {0}
किसी भी प्रकार के लिए काम करता है। सी में यह "सार्वभौमिक शून्य प्रारंभकर्ता" है C11 ड्राफ्ट, 6.7.9 Initialization देखें।
तो, 3 डी सरणी शुरू करने के लिए या तो {0}
या {{{0}}}
का उपयोग किया जा सकता है। व्यक्तिगत रूप से मैं {0}
का उपयोग करता हूं क्योंकि यह टाइप करना और पढ़ना आसान है और हर प्रकार के लिए काम करता है। इसका मतलब है, अनुसरण कर रहे हैं सभी वैध initializations:
int main(void)
{
int x = {0,};
int *p = {0,};
int *q = {0};
int arr[3][3][3][3] = {0};
}
इससे भी महत्वपूर्ण बात, यदि आप एक तीसरे पक्ष के पुस्तकालयों, तो केवल पोर्टेबल रास्ता प्रारंभ करने में उन्हें है से उदाहरण के लिए, किसी अज्ञात/अपारदर्शी प्रकार है के लिए हो {0}
का उपयोग कर। इसे शून्य करने का कोई अन्य तरीका (जैसे memset()
या सीधे some_type_t state = 0;
) का उपयोग करने वाले प्रकार के कुछ आंतरिक ज्ञान और गैर-पोर्टेबल होने का जोखिम आवश्यक होगा।
स्रोत
2016-11-14 14:43:36
[एक मूल्य के साथ पूरे 2 डी सरणी को शुरू करना] (http://stackoverflow.com/questions/15520880/initializing-entire-2d-array-with-one-value) का जवाब देना चाहिए कि क्यों {{0} 'काम करता है। – Lundin