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. - C++ में कॉन्स्ट सदस्य फ़ंक्शंस (Const Member Functions)

    कॉन्स्ट सदस्य फ़ंक्शन क्या है? प्रोग्राम में कॉन्स्ट के रूप में घोषित फ़ंक्शन। इन फ़ंक्शंस द्वारा कॉल किया गया ऑब्जेक्ट मॉडिफाई नहीं किया जा सकता। आकस्मिक परिवर्तनों से बचने के लिए const कीवर्ड का उपयोग करने की सिफारिश की जाती है। नियम कॉन्स्ट सदस्य फ़ंक्शन किसी भी प्रकार के ऑब्जेक्ट (कॉन्स्ट या

  1. - GCC में C++ स्टैंडर्ड्स सपोर्ट

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

  1. - वेरिएबल-लेंथ ऐरे C++ स्टैंडर्ड का हिस्सा क्यों नहीं हैं?

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