Process returned -10737341818<oxc0000005>错误原因及解决办法

5 篇文章 0 订阅

hmmmmm之前很多bug自己没有总结,从今天开始慢慢把自己的bug记录一下

好的贴代码

int main(int argc, char* argv[])
{
using namespace std;
///无量纲测试
    ofstream fout("testRungeKutta.dat");
    const scalar _deltT =0.01;
    const scalar _mStar = 2.4;
    const scalar _dampRatio = 0.0059;
    const scalar _uStar =5;
    rungeKutta object_test(_mStar,_dampRatio,_uStar,_deltT);

    scalar amplitude = 0.5;
    scalar frequency = 0.5;
    scalar omega = 2*PI*frequency;
    struct movements
    {   scalar time_i;
        scalar yDisplacement;
        scalar yVelocity;
        scalar yAccelaration;
        //scalar Cl = amplitude*(omega*_deltT);
    };

//    vector<movements> m_move;
//    vector<scalar> time;
//    vector<scalar> Cl;


scalar* y_displacement = new scalar [1000];
scalar* y_velocity = new scalar[1000];
scalar* y_Acceleration = new scalar[1000];
scalar* time_i =new scalar [1000];
scalar* force_Cl = new scalar[1000];
y_displacement[0] = 0.0;
y_velocity[0] = 0.0;
y_Acceleration[0] = 0.0;
for(int i =0;i<1000;i++)
{
    time_i[i] = i*_deltT;
    force_Cl[i] = amplitude*sin(omega*time_i[i]);
object_test.Set(force_Cl[i]);
object_test.CalculateDisplacement(y_velocity[i],y_displacement[i]);
    y_velocity[i+1]=object_test.Velocity();
    y_displacement[i+1]=object_test.Displacement();
    y_Acceleration[i+1]=object_test.Displacement();
    time_i[i+1] = (i+1)*_deltT;
    cout<<time_i[i]<<setw(15)<<y_displacement[i+1]<<setw(15)
    <<y_velocity[i+1]<<setw(15)<<y_Acceleration[i+1]<<setw(15)
    <<force_Cl[i]<<endl;
    fout<<time_i[i]<<setw(15)<<y_displacement[i+1]<<setw(15)
    <<y_velocity[i+1]<<setw(15)<<y_Acceleration[i+1]<<setw(15)
    <<force_Cl[i]<<endl;
}

delete [] time_i;
delete [] y_displacement;
delete [] y_velocity;
delete [] y_Acceleration;
delete [] force_Cl;
}

主程序段,我cout和fout的时候应该是把数组的下标搞越界了。在for()循环里面吧改成i<999,返回就没有这个错误了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值