为什么cout输出输出反斜杠和数字当我再次使用它时
Why is cout outputting outputting backslashes and digits when I use it again?
我有这段代码(我试图在我尝试编写的国际象棋程序中隔离一个奇怪的错误
): #include <vector>
#include <iostream>
class piece{
public:
piece() : COLOUR('C'){}
const char COLOUR;
};
std::vector<piece*> makeEmptyLine(){
std::vector<piece*> emptyLine;
piece null;
emptyLine.push_back(&null);
return emptyLine;
}
int main(){
std::vector<piece*> emptyLine = makeEmptyLine();
std::cout << (*emptyLine[0]).COLOUR;
std::cout << (*emptyLine[0]).COLOUR;
std::cout << (*emptyLine[0]).COLOUR;
return 0;
}
输出C367367
第一个std::cout << (*emptyLine[0]).COLOUR;
始终打印"C"(预期结果)。但是当它再次使用时,它会输出反斜杠和三个数字,这些数字会根据我在程序中使用 cout 的次数而变化。
你有一个未定义的行为,因为你使用了一个局部变量的地址,null
一旦你的函数返回makeEmptyLine()
就会被销毁。
当您尝试使用最高警告级别编译编译器时,编译器是否会抱怨?
相关文章:
- 在将数字随机生成为数组期间从内存输出随机数的数组
- 如何将输出数字划分为奇数和偶数
- 输出错误,问题是找到总和5000位数字cpp
- 遇到此问题时遇到困难:允许用户输入数组的值并使用 for,而循环也输出输入的最大数字
- 以C++输出一个数字三角形
- C++输出奇怪的字符而不是数字 (Windows)
- 一个C++程序,用于在输入位数时输出具有特定位数的 .txt 文件中的所有数字
- 反向输出数字 - c++
- 为什么当我输入一个大数字时,输出会一遍又一遍地重复?
- 未来值公式显示疯狂巨大数字的输出
- 输出一个数字,该数字可能是三种类型之一
- 编写一个程序,提示用户输入一个整数,然后输出数字的单个数字和数字的总和
- C++ cout 对齐输出数字
- 我同时使用了莱布尼茨和瓦利斯公式来估算π但输出数字错误,我不知道我哪里出错了
- C++文件输入/输出输出数字而不是字符
- 如何设置时间以差 1 秒输出数字
- c++将输出(数字)保存到一个数组中.一次两个数字
- c++输出数字而不是字符串
- 输出数字分组(1000000作为1,000,000,依此类推)
- C++ 覆盖 For 循环中的输出数字