2010-11-14 7 views
5

मैं यह देखने के लिए कैसे जांच सकता हूं कि सी में सरणी में कोई तत्व खाली है या नहीं?सी में किसी सरणी में कोई तत्व शून्य नहीं है या नहीं?

if(array[i] == NULL) 

काम नहीं लग रहा है।

+2

क्या काम नहीं करता है? कोड की एक पंक्ति बहुत मदद नहीं है। 'सरणी' क्या है, इसे कहां शुरू किया गया है? – casablanca

+3

कृपया परिभाषित करें कि "काम नहीं करता" से आपका क्या मतलब है - क्या यह संकलित नहीं होता है? क्या रनटाइम व्यवहार आपके अपेक्षा से अलग है? (हो सकता है कि आप सरणी सामग्री को पहले NULL में प्रारंभ करना भूल गए?) – cdhowie

+0

मुझे लगता है कि यह समस्या है cdhowie जैसा कि मैं जावा के लिए उपयोग किया जाता है सबकुछ शून्य हो गया है। सी – Alex

उत्तर

13

खाली के साथ आपका क्या मतलब है?

जब कोई सी प्रोग्राम निष्पादित किया जाता है, तो वे चर जिन्हें आप स्पष्ट रूप से प्रारंभ नहीं करते हैं उन्हें अप्रत्याशित मान प्राप्त हुए हैं।

आप (या 0 करने के लिए, या करने के लिए जो कुछ भी मूल्य अपने कार्यक्रम तर्क में emptyness प्रतिनिधित्व करता है) शून्य करने के लिए अपने सरणी कोशिकाओं के सभी निर्धारित करने की आवश्यकता है और फिर आप जिस तरह से तुमने में यह जांच कर सकते हैं:

int *array[3] = { NULL, NULL, NULL }; // array of three "empty" pointers 

... 

for(i = 0; i < 3; ++ i) { 
    if(array[i] == NULL) { 
    // i-th cell is "empty" 
    } 
} 
+2

+1 - शायद यहां क्या हो रहा है। –

+2

'int * array [3] = {NULL} 'सभी सरणी तत्वों को निरस्त करने के लिए पर्याप्त होना चाहिए। – Uila

+0

@Uila: अभ्यास में हाँ, लेकिन मुझे लगता है कि यह कम स्पष्ट और भ्रामक हो सकता है, क्योंकि यह केवल एक सरणी को 0 तक प्रारंभ करने के लिए काम करता है। आप सरणी के सभी तत्वों को 1 से प्रारंभ करने के लिए ऐसे शॉर्टकट का उपयोग नहीं कर सकते हैं, और इसके अलावा 'NULL '0 से अलग हो सकता है। – peoro

1

सवाल का जवाब:

क्या आप पोस्ट सही कोड है।

विस्तार:

यह "काम करने के लिए प्रतीत नहीं होता है", तो शायद समस्या अपने कोड में इस स्थान पर झूठ नहीं है। यदि आप अपने पास क्या है, कोड का अपेक्षित व्यवहार और वास्तविक व्यवहार का एक और पूरा उदाहरण पोस्ट करेंगे, तो हम आपकी मदद कर सकते हैं।

1

यह मानते हुए कि array वास्तव में पॉइंटर्स की एक सरणी है, प्रदान की गई कोड की एक पंक्ति वास्तव में सत्यापित करनी चाहिए कि सूचकांक i पर तत्व शून्य है।

नोट तथापि है कि यदि आप सरणी ठीक से प्रारंभ नहीं किया गया है (यानी: एक प्रारंभिक मूल्य प्रत्येक कोशिका को प्रदान करते हैं), सरणी सबसे शायद कचरा होता है और अपनी हालत सबसे शायद गलत जा रहा है खत्म हो जाएगा।

संबंधित मुद्दे