Monday 15 June 2015

c - Pointer to an array only working inside main() -


निम्न कोड कैसे काम करता है:

  #include & lt; stdio.h & gt; Int main () {int (* दिन) [13]; Int no_leap_year [13] = {0,31,28,31,30,31,30,31,30,31,30,31,30}; डेटाबेब = & amp; नो_लेप_युअर; प्रणाली ( "रोकें"); वापसी 0; }   

जबकि एक त्रुटि और चेतावनी उत्पन्न करती है:

  #include & lt; stdio.h & gt; इंट (* डेडेट) [13]; Int no_leap_year [13] = {0,31,28,31,30,31,30,31,30,31,30,31,30}; डेटाबेब = & amp; नो_लेप_युअर; Int main () {system ("रोकें"); वापसी 0; }   

त्रुटि संदेश इस प्रकार हैं:

  त्रुटि C2040: 'daytab': 'int' 'int (*) से indirection के स्तर में अलग है [13] 'चेतावनी C4047:' आरंभ ':' इंट '' इंट (*) [13] '[/]> से   

indirection के स्तरों में अलग है, मुझे यह समझ में नहीं आता है कि इन घोषणाओं के बाहर क्यों है मुख्य () कोई फर्क पड़ता है daytab और no_leap_year स्थानीय या बाहरी उनके डेटा प्रकार को कैसे प्रभावित करता है?

यह कथन:

  daytab = & amp; no_leap_year;   

(और अन्य सभी बयान) फ़ंक्शन संदर्भ से बाहर की अनुमति नहीं है कुछ मामूली पुनर्व्यवस्था आपके लिए इसे ठीक कर देगा:

  int no_leap_year [13] = {0,31,28,31,30,31,30,31,30,31,30,31, 30}; इंट (* डेडेट) [13] = & amp; no_leap_year;    

No comments:

Post a Comment