配列の長さを調べる関数を C++ で作成しました。sizeof
引数で渡された配列を見つけて、それをsizeof
変数の型で割ります。これは機能するはずですが、常に 1 が返されます。明らかな何かが欠けていますか?それとも、これはポインタとメモリに関係していますか? これは私のコードです:
#include <iostream>
using namespace std;
int lengthOf(int arr[]);
int main() {
int x[] = {1,2,3,0,9,8};
int lenX = lengthOf(x);
cout << lenX;
return 0;
}
int lengthOf(int arr[]) {
int totalSize = sizeof arr;
cout << totalSize << endl;
int elementSize = sizeof(int);
return totalSize/elementSize;
}
出力 (1 ではなく 6 にする必要があります):
4
1
私はかなり新しいので、これが悪い質問であればすみません。