Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> C++

C++ सरणियों को वापस करने वाले कार्यों का समर्थन क्यों नहीं करता है


आइए हम इस निम्नलिखित कार्यक्रम पर विचार करें,

#include <iostream>
using namespace std;
int* Array() {
   int a[100];
   a[0] = 7;
   a[1] = 6;
   a[2] = 4;
   a[3] = 3;
   return a;
}
int main() {
   int* p = Array();
   cout << p[0] << " " << p[1]<<" "<<p[2]<<" "<<p[3];
   return 0;
}

इस कार्यक्रम में, हमें चेतावनी मिलती है,

आउटपुट

In function 'int* Array()':
warning: address of local variable 'a' returned [-Wreturn-local-addr]
int a[100];

हम स्थानीय चर का पता लौटाते हैं लेकिन यह संभव नहीं है क्योंकि फ़ंक्शन कॉल के अंत के बाद स्थानीय चर स्मृति में मौजूद नहीं हो सकता है। इसलिए, C++ फ़ंक्शन रिटर्निंग एरेज़ का समर्थन नहीं करता है।


  1. सी ++ में कॉन्स्ट सदस्य कार्य करता है

    कॉन्स सदस्य कार्य वे कार्य हैं जिन्हें कार्यक्रम में स्थिर घोषित किया जाता है। इन कार्यों द्वारा बुलाई गई वस्तु को संशोधित नहीं किया जा सकता है। कॉन्स्टेबल कीवर्ड का उपयोग करने की अनुशंसा की जाती है ताकि ऑब्जेक्ट में आकस्मिक परिवर्तन से बचा जा सके। किसी भी प्रकार के ऑब्जेक्ट द्वारा एक कॉन्स्ट सदस्य

  1. जीसीसी में सी ++ मानक समर्थन

    GCC कई प्रकाशित ISO मानकों के अनुरूप C++ की विभिन्न बोलियों का समर्थन करता है। यह किस मानक को लागू करता है -std=कमांड-लाइन विकल्प का उपयोग करके चुना जा सकता है। C++98 - जीसीसी को 1998 के सी++ मानक के लिए पूर्ण समर्थन प्राप्त है, जैसा कि 2003 में संशोधित किया गया था और इसका नाम बदलकर सी++03 कर दिया

  1. चर-लंबाई वाले सरणियाँ C++ मानक का हिस्सा क्यों नहीं हैं?

    स्टैक पर एक संभावित बड़ी सरणी बनाना, जिसमें आमतौर पर केवल बहुत कम जगह उपलब्ध हो, अच्छा नहीं है। यदि आप पहले से आकार जानते हैं, तो आप एक स्थिर सरणी का उपयोग कर सकते हैं। और यदि आप पहले से आकार नहीं जानते हैं, तो आप असुरक्षित कोड लिखेंगे। चर-लंबाई वाले सरणियों को मूल रूप से C++ में शामिल नहीं किया जा