程序编译没有问题,但是在运行中出错!出错提示struct individual
{
double fitness;
double *variable;
};//结构体声明individual BEST;
//程序其他部分,BEST赋值(variable是数组指针 也new空间 并进行了赋值)
.........
//
CString str;
str.Format("当前算法优化的最大函数值是:%e",BEST.fitness);
CFile f;
f.open("txt\\数据.txt",CFile::modeCreate|CFile::modeWrite);
f.Write(str,str.GetLengh());//
..其他代码
//运行是报错strex.cpp line672之类的错误跟踪就是在str.Format出错,而且有的地方就是有的时候报错 有的时候不报错!
百思不得其解!
大虾和高手多帮忙啊!

解决方案 »

  1.   

    str.Format("当前算法优化的最大函数值是:%Lf", BEST.fitness);
      

  2.   

    更详细的就是这个str其实是类成员变量,我是在mfc的对话框程序中 有一个类的函数中用的str.Format而且很多
    在程序的这个位置我替换为
    str.Format("%d",100);
    居然也报错 把代码注释起来,不添代码 ,程序居然运行的很好!当然前边我也用了str.Format这样的东东 没问题,但是跟踪就是这里错误,这个是怎么回事呢,难道是前边有问题?但是str.Format("%d",100)和程序是没有关系啊,代码的前边有问题?
      

  3.   

    BEST.fitness=0;
    BEST.variable=new double[20];
    程序的fitness肯定有值因为开始我就初始化为0了!
      

  4.   

    是会出现断言,还是内存访问错误!
    str.Format("当前算法优化的最大函数值是:%Lf", BEST.fitness); 这样试试怎么样!~
      

  5.   

    运行是报错strex.cpp line672 是断言!我回去试试!请问一下,程序跟踪位置报错,有没有可能是前边得代码有问题呢(在数组不越界,指针初始化前提下)
      

  6.   

    str.Format("当前算法优化的最大函数值是:%le",BEST.fitness); 
      

  7.   

    >>请问一下,程序跟踪位置报错,有没有可能是前边得代码有问题呢(在数组不越界,指针初始化前提下)当然有可能
      

  8.   


    应该不是Format函数的问题,可能是前面有缓冲区越界的操作。重点检查一下对variable数组指针的操作是否越界。