这是一段从用户输入中获取一些
double
,然后打印它们的代码。1 2 3 4.5 x
,其中 x
是任意非 double
,用于打破第一个 for
循环。#include<iostream>
#include<vector>
using namespace std;
int main()
{
vector<double> *b;
for (double i; cin >> i;)
{
b->push_back(i);
}
for (double j:(*b))
{
cout << j << endl;
}
return 0;
}
它会出现段错误,因为
b
指针没有指向任何东西。取消引用未初始化的指针会导致未定义的行为,其中可能包括分段错误。
放下指针,只使用向量。
#include<iostream>
#include<vector>
using namespace std;
int main()
{
vector<double> b;
for (double i; cin >> i;)
{
b.push_back(i);
}
for (double j : b)
{
cout << j << endl;
}
return 0;
}