我试图使用MinGW-W64项目中的GCC/G++/GFortran编译器和GDB调试器在C++代码块中创建一些东西,但有些奇怪的事情正在发生。参数之间的值被混合了。(Front10]取值IDK0).我试图更改参数的名称,但还是发生了同样的情况。我该怎么做??
代码:
char idk[0],front1[0],front2[0],front3[0],front4[0];
front1[0]='';front2[0]='';front3[0]='';front4[0]=''; cout<<endl; cout<<" front:"<<front1[0];idk[0]=' ';cout<<" front:"<<front1[0]<<endl; cout<<endl;
控制台输出:
front:*
front:
您定义了0个元素的数组,您需要1个元素的数组才能在没有未定义行为的情况下使用索引0。
不要混淆大小和较高索引的值,即大小减1
所以
char idk[1], front1[1], ...
无论如何,一个只有1个元素的数组并不复杂,可以用
char idk, front1, ...
例如,从那里面出来
front1[0]=''
不是有效的文本字符,因为缺少该字符