1

char* 配列の要素数を知る方法はありますか?

私のコードは:

char* inputOptions[]={
    NULL,     
    "first sentence",
    "second sentence"}

for(int j=0;j<3;j++)
   cout<<inputOptions[j]<<endl;  

「3」を「arr」に依存する表現に変更したいと思います。そうする方法はありますか?

4

3 に答える 3

5

はい、あなたは書くことができます

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;
于 2012-09-19T09:15:43.713 に答える
2
const char * inputOptions[] = {
    NULL,     
    "first sentence",
    "second sentence" };

const int numOptions = sizeof(inputOptions) / sizeof(inputOptions[0]);
于 2012-09-19T09:14:17.360 に答える
1

静的配列で使用できsizeof()ます。サイズがバイト単位で表示されます。それをポインターのサイズで割ると、配列のサイズが得られます。

siz = sizeof(inputOptions)/sizeof(char*);
于 2012-09-19T09:14:57.833 に答える