アプリ版:「スタンプのみでお礼する」機能のリリースについて

C++で2次元配列をループするプログラムを書いてみました。
コンパイルエラー「array must be initialized with a brace-enclosed initializer」が発生します。

const char ss[][5] {"neco", "nyan", "kuro"};
int main() {
// 正常に出力される。
for (size_t i = 0; i < sizeof(ss) / sizeof(*ss); i++) {
cout << ss[i] << endl;
}

// コンパイルエラー。
cout << "----------" << endl;
for (char* s: ss) {
cout << s << endl;
}

return 0;
}

vectorであれば以下のように記述可能と思いますが、2次元配列の場合は上記の書き方は無理なのでしょうか。
std::vector<std::string> list;
list.push_back("a");
list.push_back("b");
for (std::string s: list) {
cout << s << endl;
}

よろしくお願いいたします

A 回答 (1件)

試してないけど最低限 const は必要だろう.

    • good
    • 0
この回答へのお礼

constつけたところ動きました!
char ss[][5]{ "neco", "nyan", "kuro" };であれば
for (char* s: ss) {でも動作しました。

ありがとうございました。

お礼日時:2020/10/11 08:15

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!