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