首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

用c++调用cplex,在返回计算结果时遇到上面的异常,麻烦大家帮小弟我看上

2013-01-02 
用c++调用cplex,在返回计算结果时遇到下面的错误,麻烦大家帮我看下。弹出的框框:example1.exe 中的 0x7c812

用c++调用cplex,在返回计算结果时遇到下面的错误,麻烦大家帮我看下。
弹出的框框:
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();           
[解决办法]
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(); 
[解决办法]
最好还是下个断点调试,单步运行吧.一步步执行,就看容易看出错在哪里了

热点排行