为什么我在此代码中出现分段错误

时间:2014-02-10 07:20:34

标签: c++ vector

这是一个简单的代码,对我不起作用。 我可以不在像Matlab这样的循环中保存矢量元素。我也 需要x以后增大。

#include<stdio.h>
#include <iostream>
#include <cmath>
#include <vector>

using namespace std;

int main()
{
    int nxr,i;
    double dxr,ll;

    nxr = 2400;
    lr = 0.6;
    dxr = lr/nxr;
    std::vector<double> x;

    for (i=0;i<6;i++)
    {
        x[i]=(i+1)*dxr;
    }

}

2 个答案:

答案 0 :(得分:1)

在这里出界:

x[i]=(i+1)*dxr;

您的向量的大小为0.请调用push_back或将其初始化为正确的大小:

x.push_back((i+1)*dxr);

std::vector<double> x(6);

答案 1 :(得分:1)

std::vector<double> x;创建一个空向量,您必须使用push_back添加元素或预先分配元素 - std::vector<double> x(6);,然后使用operator []