आपके प्रश्न के वास्तव में 2 भाग हैं।
1 / मैं सरणी के बाहर सरणी का निरंतर आकार कैसे घोषित कर सकता हूं?
आप या तो एक मैक्रो का उपयोग कर सकते हैं
#define ARRAY_SIZE 10
...
int myArray[ARRAY_SIZE];
या एक स्थिरांक का उपयोग करें
const int ARRAY_SIZE = 10;
...
int myArray[ARRAY_SIZE];
यदि आपने सरणी को आरंभीकृत किया है और आपको उसका आकार जानना है तो आप कर सकते हैं:
int myArray[] = {1, 2, 3, 4, 5};
const int ARRAY_SIZE = sizeof(myArray) / sizeof(int);
दूसरा sizeof
आपके सरणी के प्रत्येक तत्व के प्रकार पर है, यहाँ int
।
2 / मेरे पास एक सरणी कैसे हो सकती है जो आकार गतिशील है (यानी रनटाइम तक ज्ञात नहीं है)?
उसके लिए आपको गतिशील आवंटन की आवश्यकता होगी, जो Arduino पर काम करता है, लेकिन आमतौर पर इसकी सलाह नहीं दी जाती क्योंकि इससे "हीप" खंडित हो सकता है।
आप कर सकते हैं (सी तरीका):
// Declaration
int* myArray = 0;
int myArraySize = 0;
// Allocation (let's suppose size contains some value discovered at runtime,
// e.g. obtained from some external source)
if (myArray != 0) {
myArray = (int*) realloc(myArray, size * sizeof(int));
} else {
myArray = (int*) malloc(size * sizeof(int));
}
या (C ++ तरीका):
// Declaration
int* myArray = 0;
int myArraySize = 0;
// Allocation (let's suppose size contains some value discovered at runtime,
// e.g. obtained from some external source or through other program logic)
if (myArray != 0) {
delete [] myArray;
}
myArray = new int [size];
ढेर विखंडन के साथ समस्याओं के बारे में अधिक जानकारी के लिए, आप इस प्रश्न का उल्लेख कर सकते हैं ।