C++ 为什么我的文本数组在我用另一个覆盖它后不会改变?

标签 c++ character-arrays

char* Text[16] = { "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N"};
struct Test{
     byte TextID;
} Test;

void TextOverrider(char* Text){
     Test.TextID < 14 ? Test.TextID++ : Test.TextID = 0;
     Text[Test.TextID] = { Text };
}

在我的主要部分

void main(){
     printf("%s\n\n", Text[0]);
     TextOverrider("Hello");
     TextOverrider("Whats");
     TextOverrider("Up");
     TextOverrider("Dude");
     TextOverrider("Playing");
     TextOverrider("Xbox");
     TextOverrider("Lol");
     TextOverrider("XD");
     TextOverrider("5EVR");
     TextOverrider("Anyonmoose");
     TextOverrider("Hoora");
}

我在 rider 的文本中的 Text[Test.TextID] = { Text }; 处收到错误。我不确定如何修复它,我尝试了一切。

最佳答案

您有一个包含 16 个指针的数组。这是不寻常的(在 C++ 中,您可能想要使用 std::string),但不是问题的直接原因。然后您尝试巫术:您传递一个名为Text 的函数参数,并期望编译器猜测您指的是两个Text 中的哪一个。不起作用,该参数隐藏了全局。重命名函数参数。

关于C++ 为什么我的文本数组在我用另一个覆盖它后不会改变?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26017919/

相关文章:

c++ - 消息系统的观察者模式+访客模式

C++ 使用指针合并文本

c - 如何实现一个循环来读取名称数组并检查大写字母的数量等?

java - 如何在不使用和额外的特殊字符的情况下初始化 6*5 二维矩阵中的 26 个字符

c++ - 未在此范围内声明的函数

c++ - glm::lookAt 给出了 2D 轴的意外结果

Java切换二维数组中的char元素

c - 如何创建一个接口(interface)来为 fortran 转换 c 字符数组

C++运算符重载无法输出+运算

c++ - 在 C/++ 中的函数之间传递具有动态大小的二维数组