2010-09-22 10 views
41

मेरे प्रोफेसर और कुछ छात्र इस बारे में बहस कर रहे हैं कि argv शून्य समाप्त हो गया है या नहीं। मेरे दोस्त ने एक छोटा सा कार्यक्रम लिखा और इसे null मुद्रित किया लेकिन एक और बच्चे ने कहा कि वह शायद खाली स्मृति में पढ़ रहा है। क्या कोई इस चर्चा को हल कर सकता है?argv [argc] ==?

उत्तर

76

स्टैंडर्ड से:

5.1.2.2.1 कार्यक्रम स्टार्टअप
...
- argv [argc] एक अशक्त सूचक होगा।

तो, हाँ; argv शून्य समाप्त हो गया है

+6

इससे अधिक स्पष्ट नहीं होता है;) – caf

+1

वाह, मुझे यह नहीं पता था। फिर भी तर्क क्यों? –

+5

मुझे नहीं पता ** क्यों **। लेकिन यह तर्कों की गिनती करने के लिए 'argv' सरणी पर चलने से बचकर कुछ कार्यक्रमों को थोड़ा आसान बनाता है। – pmg

40

मानक के मुताबिक, "argv [argc] एक शून्य सूचक होगा" (5.1.2.2.1)।

+0

यह मानक क्यों और कैसे बन गया? कोई उपाय? – Reigel

+12

@Reigel: 1 9 7 9 से 'exec' के लिए मैन पेज (http://plan9.bell-labs.com/7thEdMan/v7vol1.pdf) दिखाता है कि यह मानक को थोड़ा सा पूर्व निर्धारित करता है, और इसमें एक संभावित संकेत है यह इस तरह क्यों है: "Argv सीधे किसी अन्य execv में प्रयोग योग्य है क्योंकि argv [argc] 0 है।" – bk1e

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