मैं कुछ वर्षों से सी ++ का उपयोग कर रहा हूं, और आज मैंने कुछ कोड देखा, लेकिन यह पूरी तरह कानूनी कैसे हो सकता है?गतिशील आवंटन के बिना रन टाइम पर ऐरे आकार की अनुमति है?
int main(int argc, char **argv)
{
size_t size;
cin >> size;
int array[size];
for(size_t i = 0; i < size; i++)
{
array[i] = i;
cout << i << endl;
}
return 0;
}
जीसीसी के तहत संकलित।
आकार new
या malloc
के बिना रन-टाइम पर आकार कैसे निर्धारित किया जा सकता है?
बस दोबारा जांच करने के लिए, मैंने कुछ और सभी समान कोडों को गुमराह किया है, भंडारण आकार त्रुटि देने का दावा किया जाता है।
यहां तक कि डीटेल का सी ++ कार्यक्रम कैसे करें पी। सामान्य प्रोग्रामिंग त्रुटि के तहत 261 राज्य 4.5:
केवल स्थिरांक का उपयोग स्वचालित और स्थैतिक सरणी के आकार की घोषणा करने के लिए किया जा सकता है।
मुझे प्रकाशित करें।
ध्यान दें कि डीएमए "प्रत्यक्ष स्मृति पहुँच" का अर्थ है - मुझे लगता है कि आप गतिशील आवंटन –
सी या सी ++ के बारे में पूछ रहे हैं? एक चुनें_। –
फिर से, एक चुनें: सी या सी ++। यह सवाल स्पष्ट रूप से और केवल सी के बारे में है; एक सी ++ टैग नहीं होना चाहिए। –