सी में, विरासत कोड में "शून्य लंबाई की सरणी" स्थिति का सामना किया जा सकता है। इसमें शून्य की लंबाई वाली सरणियों वाली संरचनाएं शामिल हैं। जबकि चेतावनियों को प्राग्मा द्वारा दबा दिया जाता है, ऐसे सरणियों वाले नए ढांचे बनाने से त्रुटि 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