char* 配列の要素数を知る方法はありますか?
私のコードは:
char* inputOptions[]={
NULL,
"first sentence",
"second sentence"}
for(int j=0;j<3;j++)
cout<<inputOptions[j]<<endl;
「3」を「arr」に依存する表現に変更したいと思います。そうする方法はありますか?
はい、あなたは書くことができます
std::distance(std::begin(inputOptions), std::end(inputOptions));
C++03 では、
sizeof inputOptions / sizeof inputOptions[0]
ただし、C++11 では、range for を使用して配列にアクセスする方が適切です。
for (auto option: inputOptions)
cout << option << endl;
const char * inputOptions[] = {
NULL,
"first sentence",
"second sentence" };
const int numOptions = sizeof(inputOptions) / sizeof(inputOptions[0]);
静的配列で使用できsizeof()
ます。サイズがバイト単位で表示されます。それをポインターのサイズで割ると、配列のサイズが得られます。
siz = sizeof(inputOptions)/sizeof(char*);