开发者社区> 问答> 正文

matlab里调用C++,while循环处理vector导致崩溃

matlab里调用C++,while循环处理vector导致崩溃。
我在matlab里调用C++ ,VS2010,用mex x.cpp,运行一次之后能出来结果,但接着重复运行一下就容易死机,也就是每次打开就能运行一次。有时运行几次没问题,但之后还是导致matlab崩溃。
是不是c ++代码最后要有一个释放资源什么的操作,求大神相助!
有时候报错
Unexpected Standard exception from MEX file.
What() is:bad allocation
C++代码见http://pan.baidu.com/s/1pJ0ZJzd。万分感谢!

展开
收起
a123456678 2016-03-05 17:04:59 3045 0
1 条回答
写回答
取消 提交回答
  • 你好,根据你的描述,你是不是在网上下载的代码直接运行或者修改后运行的,这很可能是你的matlab版本与以前的不同,某些定义会发生变化,也会导致在运行后,出现这种异常;我当时在大学的时候,就出现过你这样的错误,当时是某个变量定义问题,导致资源耗尽,具体解决方案你可以参考这边文章,关于C++与Matlab混合编程错误???希望对你有所帮助!其实c++中,特别是工程性质的代码,你需要非常小心的处理变量的边界。比如:
    vector Y (N+1,0); 这里的N+1如果小于0时vector就会出错了。这里你的本意是该vector里边初始化了N+1个int型elements,值为0。
    再比如:vector ri (K-1,0); 万一K小于1呢?
    你如果想调试的话,最好的办法是在这些定义前后把变量的边界值printf出来看看

    2019-07-17 18:53:50
    赞同 展开评论 打赏
问答分类:
C++
问答地址:
问答排行榜
最热
最新

相关电子书

更多
使用C++11开发PHP7扩展 立即下载
GPON Class C++ SFP O;T Transce 立即下载
GPON Class C++ SFP OLT Transce 立即下载