const charの配列の非常に単純な例と、それらを出力することになっている1つの関数があります(選択したものを繰り返し処理します)。私のすべての期待に反して、それは議論として渡されたものだけでなく、それらすべてを繰り返しています。
#include <iostream>
const char* oranges[] = {
"ORANGE",
"RED ORANGE"
};
const char* apples[] = {
"APPLE"
};
const char* lemons[] = {
"LEMON"
};
void printFruit(const char** fruit){
int i =0;
while (fruit[i] != '\0'){
std::cout << "---------------------\n";
std::cout << fruit[i] << "\n";
i++;
}
}
int main (int argc, const char * argv[])
{
printFruit(oranges);
return 0;
}
私が期待する結果は、引数としてオレンジが指定された関数printFruitがORANGEとRED ORANGEを出力する一方で、次のように(他の配列から)定義されたすべてのフルーツを出力することです。
---------------------
ORANGE
---------------------
RED ORANGE
---------------------
APPLE
---------------------
LEMON
私の無知で申し訳ありませんが、なぜこれが起こっているのですか?
編集:私はこの質問に従いました:私のものと同様のcの文字列の配列を定義して反復します。