C++ में ऐरे की लंबाई कैसे पाएं? sizeof और पॉइंटर्स के साथ समस्या
सभी को नमस्ते! मैं एक शुरुआती C++ डेवलपर हूं और एक बहुत ही अजीब समस्या का सामना किया है। मुझे यह जानना है कि ऐरे में कितने एलिमेंट हैं, लेकिन मेरे प्रयास विफल हो रहे हैं।
मैं इस तरह लिखता हूं:
```cpp
int arr[] = {10, 20, 30, 40, 50};
int size = sizeof(arr) / sizeof(arr[0]);
cout << "ऐरे की लंबाई: " << size; // 5 आउटपुट करता है — बिल्कुल सही
```
लेकिन जब मैं फंक्शन के अंदर ऐसा ही करने की कोशिश करता हूं, ऐरे को पैरामीटर के रूप में पास करके, तो मुझे बकवास मिलती है:
```cpp
void printArrayLength(int arr[]) {
int size = sizeof(arr) / sizeof(arr[0]);
cout << "ऐरे की लंबाई: " << size; // 1 या 2 आउटपुट करता है, लेकिन 5 नहीं!
}
int main() {
int myArray[] = {10, 20, 30, 40, 50};
printArrayLength(myArray);
return 0;
}
```
ऐसा क्यों होता है? फंक्शन के अंदर sizeof(arr) पूरे ऐरे का साइज़ नहीं देता, बल्कि क्या देता है?