Я все еще изучаю C++. В настоящее время я изучаю массивы и хочу получить длину массива. Я знаю, чтобы получить длину массива, которую я должен ввести:C++ - метод GetLength() для получения длины массива
int length = (sizeof(array)/sizeof(*array));
Это работает очень хорошо. Но, когда я делаю метод для получения длины, которую я назвал getLength(), она не работает. Вот мой код:
#include <iostream>
using namespace std;
int array[5] = {1,2,3,4,5};
int getLength(int arg[]){
return(sizeof(arg)/sizeof(*arg));
}
int main(){
//array length
cout << "Displaying array length" << endl;
cout << getLength(array) << endl;
system("pause");
}
Это должно возвращает 5, но он возвращается 1. Если я использую предыдущий путь, он возвращает 5, даже если они имеют одинаковый код.
Спасибо за помощь.
Также: http://stackoverflow.com/questions/4810664/how-do-i-use-arrays-in-c "5.3 Pitfall" в частности. – user2079303
Ответ на * все * ваши «как использовать массивы в C++» ** не **. В самом деле. Используйте std :: vector. –
Один из способов сделать это, как [std :: end does it] (http://stackoverflow.com/a/33496357/1708801), используя шаблонный параметр типа non-type для вывода размера массива. –