程序是从数据库中取值,并添加入一个文件中去我的代码是:
block=new char[BLOCK_LENGTH*(bLength+1)]; //bLength为记录集的记录个数
strcpy(block,"");
tRecord=0;
while(!m_pRecordset->adoEOF){ //从数据库中取值
取到的值记录在line[4]中
//在取到值后将点记录入折点文件中去
//我记录的是一条折线上的所有折点坐标
if(tRecord==0){
sprintf(temp,"%f %f\r\n",line[0],line[1]);
strcat(block,temp);
tRecord++;
}
sprintf(temp,"%f %f\r\n",line[2],line[3]);
strcat(block,temp);
m_pRecordset->MoveNext();
}//while end...
points->append_block(block,bLength+1); //将block字段写入到折点文件中去
//delete block;
//free(block);
delete[] block;程序如此,主要是在程序段前申请了一个block字符串,在我向block写入值并在程序段后释放block时,程序出错,出错语句就是在delete[] block上,从程序度中大家可以看到,我试过了delete block,free(block)都不行。请问这是怎么一回事呢?如果我不释放block,程序又会因为内存泄漏的问题而无法全部执行,郁闷ing
block=new char[BLOCK_LENGTH*(bLength+1)]; //bLength为记录集的记录个数
strcpy(block,"");
tRecord=0;
while(!m_pRecordset->adoEOF){ //从数据库中取值
取到的值记录在line[4]中
//在取到值后将点记录入折点文件中去
//我记录的是一条折线上的所有折点坐标
if(tRecord==0){
sprintf(temp,"%f %f\r\n",line[0],line[1]);
strcat(block,temp);
tRecord++;
}
sprintf(temp,"%f %f\r\n",line[2],line[3]);
strcat(block,temp);
m_pRecordset->MoveNext();
}//while end...
points->append_block(block,bLength+1); //将block字段写入到折点文件中去
//delete block;
//free(block);
delete[] block;程序如此,主要是在程序段前申请了一个block字符串,在我向block写入值并在程序段后释放block时,程序出错,出错语句就是在delete[] block上,从程序度中大家可以看到,我试过了delete block,free(block)都不行。请问这是怎么一回事呢?如果我不释放block,程序又会因为内存泄漏的问题而无法全部执行,郁闷ing
解决方案 »
- 求助,想要画一个圆边的矩形窗口,应该如何实现?
- edit里的提示汉字
- dll中创建对话框,分割窗口出错
- 华为4面全部通过了,不过谁能介绍一下中研软件部和固网软件部哪个更有发展前途啊。
- 关于数据转换问题
- 感谢 fz_zhou(vcfan) ,请领分
- 用MFC向导创建了一个程序,怎么在CLASS一栏中并没看见CView、CDoc那四个书上说的基本类?
- 关于CWnd::Create(......)
- 为什么我在基于对话框程序中的菜单更新函数不起作用?
- 向vc高手提出一个模糊的问提.
- 关于使用微软MSCOMM串口控件的问题
- debug的时候,程序结束后visual stidio.net的输出框出现如下的提示
调试跟踪,看看block这个地址有没有发生变化
确定长度没有超过
BLOCK_LENGTH*(bLength+1)
然后将这段内存初始化为 0
再用的时候没有错,就是内存访问越界了。