सी/सी में दांतेदार सरणी को समझना
जबकि दांतेदार सरणी की अवधारणा, जहां पंक्तियों की लंबाई अलग-अलग हो सकती है, सीधे तौर पर समर्थित नहीं है मानक सी/सी, समान कार्यक्षमता प्राप्त करने की तकनीकें हैं।
सी/सी में एक दांतेदार सरणी घोषित करने का प्रयास करने पर नीचे दिखाया गया है:
int jagged[][] = { {0,1}, {1,2,3} };
कंपाइलर त्रुटियों को उजागर करता है, की आवश्यकता पर प्रकाश डालता है पहले को छोड़कर सभी आयामों के लिए सीमाएं निर्दिष्ट करना। इस सीमा को दूर करने के लिए, एक वैकल्पिक दृष्टिकोण पॉइंटर्स की एक सरणी का उपयोग कर रहा है। सूचकों की एक श्रृंखला. इस सरणी का प्रत्येक तत्व एक गतिशील रूप से आवंटित उपसरणी की ओर इशारा करता है, जहां प्रत्येक उपसरणी की अपनी अलग-अलग लंबाई होती है।
उदाहरण के लिए:
int *jagged[5]; // प्रत्येक उपसरणी को मेमोरी असाइन करें दांतेदार [0] = मॉलोक (आकार (int) * 10); दांतेदार [1] = मॉलोक (आकार (int) * 3); //तत्वों तक पहुँचना *दांतेदार[0] = 0; *(जंजीर[0] 1) = 1; *दांतेदार[1] = 1; *(दांतेदार[1] 1) = 2; *(दांतेदार[1] 2) = 3; // उपयोग के बाद मुफ्त मेमोरी मुफ़्त(जंजीर[0]); free(jagged[1]);यह विधि एक दांतेदार सरणी के व्यवहार का अनुकरण करते हुए, विभिन्न आकारों की पंक्तियों के साथ सरणियों के निर्माण की अनुमति देती है। यह ध्यान रखना महत्वपूर्ण है कि प्रत्येक उपसरणी के लिए मेमोरी को गतिशील रूप से आवंटित किया जाना चाहिए और मेमोरी लीक से बचने के लिए मैन्युअल रूप से मुक्त किया जाना चाहिए।अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3