用C++寫的一段代碼,運行的時候出錯,但是單步追蹤的時候卻又能得到正確結果。
#include <iostream>
#include<vector>
#include<array>
using namespace std;
int main()
{
double a1[4] = {1.1, 1.2, 1.3, 1.4};
vector<double>a2(4);
a2[0] = 1.0 / 3;
a2[1] = 1.0 / 5;
a2[3] = 1.0 / 7;
a2[4] = 1.0 / 9;
array<double, 4> a3 = {3.14, 2.72, 1.62, 1.64};
array<double, 4>a4 ;
cout << "a1[2] = " << a1[2] << " at " <<&a1[2]<<endl;
cout << "a2[2] = " << a2[2] << " at " << &a2[2] << endl;
cout << "a3[2] = " << a3[2] << " at " << &a3[2] << endl;
cout << "a4[2] = " << a4[2] << " at " << &a4[2] << endl;
return 0;
}
運行結果

單步追蹤結果
uj5u.com熱心網友回復:
我也遇到相同的問題,求解決uj5u.com熱心網友回復:
沒有環境,有點看法,樓主自己看看對不1、a2的定義 vector<double>a2(4); 改成 vector<double>a2[4];試試
2、a2的下標,0、1、3、4是不是超限了
uj5u.com熱心網友回復:
vector<double> a2(4);a2被初始化為,4個默認值為0的元素
a2[4],越界。。。。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/29283.html
標籤:基礎類
上一篇:為什么C++初始程式會報錯
