C++ では、配列を単純にパラメーターとして渡すことはできません。次のような関数を作成した場合の意味:
void doSomething(char charArray[])
{
// if I want the array size
int size = sizeof(charArray);
// NO GOOD, will always get 4 (as in 4 bytes in the pointer)
}
配列へのポインターしかないため、配列の大きさを知る方法はありません。
メソッドのシグネチャを変更せずに、配列のサイズを取得してそのデータを反復処理するには、どのような方法がありますか?
編集:ソリューションに関する追加です。具体的には、char 配列が次のように初期化された場合:
char charArray[] = "i am a string";
は\0
すでに配列の末尾に追加されています。この場合、回答(承認済みとしてマーク)は、いわばそのままで機能します。