c - Getting a stack overflow exception when declaring a large array -
निम्न कोड मेरे लिए एक स्टैक अतिप्रवाह त्रुटि उत्पन्न कर रहा है
int main (int argc , चार * argv []) {इंटी चावल [2000000]; वापसी 0; } मैं इस के आसपास कैसे प्राप्त करूं? मैं टर्बो सी ++ का उपयोग कर रहा हूं, लेकिन अपना कोड सी में रखना चाहूंगा
संपादित करें:
सलाह के लिए धन्यवाद उपरोक्त कोड केवल उदाहरण के लिए था, मैं वास्तव में एक समारोह में सरणी को घोषित करता हूं और उप मुख्य में नहीं। इसके अलावा, मुझे सरणी की ज़रूरत होती है ताकि शून्य पर इनिशियलाइज किया जा सके, इसलिए जब मैंने मॉलोक को गोल किया तो मुझे पता चला कि कॉलोक मेरे उद्देश्यों के लिए एकदम सही था।
मॉलोक / कॉलोक के पास मुझे अनुमति देने के स्टैक पर आवंटित करने का फायदा भी है एक चर का उपयोग करके आकार को घोषित करने के लिए।
आपकी सरणी स्टैक में फिट करने के लिए बहुत बड़ी है, विचार करें ढेर का उपयोग:
int * चलनी = मॉलोक (2000000 * आकार (* चलनी)); यदि आप वास्तव में स्टैक आकार को बदलना चाहते हैं, तो
टिप : - अपनी गतिशील आवंटित स्मृति को मुक्त करने के लिए मत भूलना अब जरूरत नहीं है।
Comments
Post a Comment