【发布时间】:2016-10-08 14:01:33
【问题描述】:
我试图避免为 5 个不同的数组重复我的代码。我有 3 个数组(将来可能会更多):
const char *FirstlistOfOptionText[2] = {OPT_1,
OPT_2};
const char *SecondlistOfOptionText[2] = {OPT_1,
OPT_2};
const char *ThirdlistOfOptionText[2] = {OPT_1,
OPT_2};
每个元素中的元素都不相同。现在它们是因为我只是复制和粘贴它们。元素的数量也不会。
我有一个函数,我想根据我作为参数给出的值打印列表的每个元素。另外,我需要用其他颜色打印其中一个元素(除了一个绿色之外,所有元素都是白色的)。
我只想拥有一个代码来打印和选择我现在拥有的颜色。但我想在这样做之前选择正确的数组。我想了想:
const char *listOfOptions[];
if(menu_t.first_level_option == 0) {
listOfOptions = FirstlistOfOptionText;
}
if(menu_t.first_level_option == 1) {
listOfOptions = SecondlistOfOptionText;
}
if(menu_t.first_level_option == 2) {
listOfOptions = ThirdlistOfOptionText;
}
但我收到一些关于“listOfOptions”存储大小未知的错误。或者我不能将 const char** 用于 char* 或类似的东西。
这样做的正确方法是什么?
【问题讨论】:
-
"... 5 个不同数组的代码。我有 3 个数组..." 5? 3?这有点令人困惑
-
请提供minimal reproducible example 和确切的错误消息。 “一些错误”和“或类似的事情”有点太不具体,无法猜测出了什么问题
-
您使用的是 C 还是 C++?
-
顺便说一句。如果您的代码只需要使用 C++(它是标签之一),那么您可以使用 std::array。
-
@Marqin:怎么会这样?数组有不同的维度。他需要
std::vector。