用c++调用cplex,在返回计算结果时遇到下面的错误,麻烦大家帮我看下。

chenhua8869 2012-03-10 09:46:11
弹出的框框:
example1.exe 中的 0x7c812afb 处未处理的异常: Microsoft C++ 异常: 内存位置 0x0012fabc 处的 IloAlgorithm::NotExtractedException。

c++的提示:
example1.exe 中的 0x7c812afb 处最可能的异常: Microsoft C++ 异常: 内存位置 0x0012fabc 处的 IloAlgorithm::NotExtractedException。
example1.exe 中的 0x7c812afb 处未处理的异常: Microsoft C++ 异常: 内存位置 0x0012fabc 处的 IloAlgorithm::NotExtractedException。

出现错误的相关语句(把这些语句注释掉就没错误了):
定义y[][]:
NumVar2Matrix y(env,N); //N是y中元素的个数
for(i=1;i<=N;i++)
{
y[i]=IloNumVarArray(env,N);
for(j=1;j<=N;j++)
{
y[i][j]=IloNumVar(env,0,1,ILOINT);
}
}

cplex计算之后返回结果的语句:
IloInt yy[N][N];
for(i=1; i<=N;i++)
{
for(j=1; j<=N; j++)
{
yy[i][j]=cplex.getValue(y[i][j]);
}
}
cout<<"here4"<<endl;
getchar();
...全文
358 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
chenhua8869 2012-03-12
  • 打赏
  • 举报
回复
我后来查了下,那个不是数组,但可以理解为数组,N只是代表数组里面数据的个数,可以从1到N的,也可以从0到N-1
[Quote=引用 2 楼 qyee16 的回复:]
cplex计算之后返回结果的语句:
IloInt yy[N][N]; // 如果这是N的话
for(i=1; i<=N;i++) //这里就是 i=0;i<N ;;;;;;;;;;;;;;;;;;i=N时就越界了。因为数组的下标是从0开始的
{
for(j=1; j<=N; j++)
{
yy[i][j]=cplex.getValue(y[i][j]);
}
}
cout<<……
[/Quote]
xiaohuh421 2012-03-10
  • 打赏
  • 举报
回复
最好还是下个断点调试,单步运行吧.一步步执行,就看容易看出错在哪里了
Qyee16 2012-03-10
  • 打赏
  • 举报
回复
cplex计算之后返回结果的语句:
IloInt yy[N][N]; // 如果这是N的话
for(i=1; i<=N;i++) //这里就是 i=0;i<N ;;;;;;;;;;;;;;;;;;i=N时就越界了。因为数组的下标是从0开始的
{
for(j=1; j<=N; j++)
{
yy[i][j]=cplex.getValue(y[i][j]);
}
}
cout<<"here4"<<endl;
getchar();
quwei197874 2012-03-10
  • 打赏
  • 举报
回复
应该是越界了,设个断点,查看堆栈看在哪崩溃的
chenhua8869 2012-03-10
  • 打赏
  • 举报
回复
这是数组啊,汗。。。。我一直以为里面的N是元素个数
谢谢你
那我再看看

[Quote=引用 2 楼 qyee16 的回复:]
cplex计算之后返回结果的语句:
IloInt yy[N][N]; // 如果这是N的话
for(i=1; i<=N;i++) //这里就是 i=0;i<N ;;;;;;;;;;;;;;;;;;i=N时就越界了。因为数组的下标是从0开始的
{
for(j=1; j<=N; j++)
{
yy[i][j]=cplex.getValue(y[i][j]);
}
}
cout<<……
[/Quote]

3,881

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 其它技术问题
社区管理员
  • 其它技术问题社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧