"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > C++ में शून्य-लंबाई वाली सारणी 2233 त्रुटि का कारण क्यों बनती है, और मैं इसे कैसे ठीक कर सकता हूँ?

C++ में शून्य-लंबाई वाली सारणी 2233 त्रुटि का कारण क्यों बनती है, और मैं इसे कैसे ठीक कर सकता हूँ?

2024-12-21 को प्रकाशित
ब्राउज़ करें:850

Why Does a Zero-Length Array in C   Cause Error 2233, and How Can I Fix It?

सी में "शून्य लंबाई की सरणी" से निपटना

सी में, विरासत कोड में "शून्य लंबाई की सरणी" स्थिति का सामना किया जा सकता है। इसमें शून्य की लंबाई वाली सरणियों वाली संरचनाएं शामिल हैं। जबकि चेतावनियों को प्राग्मा द्वारा दबा दिया जाता है, ऐसे सरणियों वाले नए ढांचे बनाने से त्रुटि 2233 हो सकती है। ऐसा क्यों हो रहा है, और इसे हल करने के लिए क्या किया जा सकता है?

शून्य-लंबाई सरणियों का उपयोग करने का कारण एक ऐतिहासिक है सी हैक जो सरणियों के गतिशील आवंटन की अनुमति देता है। लंबाई 1 या पॉइंटर की सरणी का उपयोग करने के बजाय, डेवलपर्स शून्य-लंबाई सरणी के साथ एक संरचना बनाएंगे। यह उन्हें संरचना के nData सदस्य का उपयोग करके गतिशील रूप से सरणी के आकार की गणना करने की अनुमति देगा।

इस समस्या को सुधारने के लिए, एक सी-हैक को नियोजित किया जा सकता है। फ़ंक्शन MallocSomeData को एक निर्दिष्ट लंबाई की सरणी को गतिशील रूप से आवंटित करने के लिए बनाया जा सकता है:

struct someData* mallocSomeData(int size)
{
    struct someData*  result = (struct someData*)malloc(sizeof(struct someData)   size * sizeof(BYTE));
    if (result)
    {    result->nData = size;
    }
    return result;
}

इस फ़ंक्शन का उपयोग करके, आप वांछित लंबाई की एक सरणी के साथ कुछ डेटा का एक ऑब्जेक्ट बना सकते हैं, जो "शून्य लंबाई की सरणी" मुद्दे को प्रभावी ढंग से संबोधित करता है।

नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3