const char Snames[] = {"Spring", "Summer", "Fall", "Winter"}; // error C2078: too many initializers
const char Snames[] 被推導為一維字符數組(單一字符串),初始化列表提供了 4 個字符串字面量,導致「初始化器過多」。
const char Snames[][7] = {"Spring", "Summer", "Fall", "Winter"};
// 第二維長度需 ≥ 最長字符串長度+1(含結束符 '\0'),"Summer" 6 字符,故 7 足夠
const char *Snames[] = {"Spring", "Summer", "Fall", "Winter"};
// 每個元素是指向字符串常量區的指針,長度自適應
#include <array>
#include <string>
const std::array<std::string, 4> Snames = {"Spring", "Summer", "Fall", "Winter"};
// 或
const std::vector<std::string> Snames = {"Spring", "Summer", "Fall", "Winter"};
char Snames[][7](去掉 const)。const char *Snames[] 或 std::array<std::string>。