我在这里有一个代码:(忽略friends_name
,这很好)
char friend_sex [1];
cout << "Please enter m if your friend is male or f if your friend is female\n";
cin >> friend_sex;
if (friend_sex == "m") cout << "If you see " << friends_name << "! please ask him to call me\n";
if (friend_sex == "f") cout << "If you see " << friends_name << "! please ask her to call me\n";
当我运行时,它说
运行时检查失败#2 - 堆叠变量&#39; friend_sex&#39;已经腐败了。
答案 0 :(得分:1)
两种解决方案:
char friend_sex[1]
更改为char friend_sex
,将"m"
更改为'm'
,将"f"
更改为'f'
。char friend_sex[1]
更改为char friend_sex[2]
。并将==
判断更改为strcmp
。答案 1 :(得分:1)
如果我说你使用Visual Studio(由于错误信息),我认为我是正确的。
发生的事情被称为“缓冲区溢出”,它包括写入内存中缓冲区位置后的位置
为避免这种情况,您可以将friend_sex
的数据类型更改为std::string
,这样可以解决您的问题