提问者:小点点

C++中的参数混合问题(代码块)


我试图使用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: 

共1个答案

匿名用户

您定义了0个元素的数组,您需要1个元素的数组才能在没有未定义行为的情况下使用索引0。

不要混淆大小和较高索引的值,即大小减1

所以

char idk[1], front1[1], ...

无论如何,一个只有1个元素的数组并不复杂,可以用

char idk, front1, ...

例如,从那里面出来

front1[0]=''

不是有效的文本字符,因为缺少该字符

相关问题


MySQL Query : SELECT * FROM v9_ask_question WHERE 1=1 AND question regexp '(c++|中|参数|混合|代码|块)' ORDER BY qid DESC LIMIT 20
MySQL Error : Got error 'repetition-operator operand invalid' from regexp
MySQL Errno : 1139
Message : Got error 'repetition-operator operand invalid' from regexp
Need Help?