请教delete堆空间,在线等! 我先使用整体new,然后delete其中部分不用的多余空间,结果不对呀,代码是这样的: myWbstruc1=new Wbstruc[100]; ... for (int kk=50; kk<100) delete &myWbstruc1[kk]; //这是我定义的结构体,为什么执行到这里不行呀?struct Wbstruc { char *ss1; char *ss2;} 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 你定义了 myWbstruc1=new Wbstruc[100]; 就必须 delete []myWbstruc1; 完全释放 呵呵,在堆上申请了数据要delete []myWbstruc1C * p = new C[xx]xx表示数组的长度要和delete []p对应的 for这句没写全,要么没释放完全 既然这样的话,那有没有好的办法可以在最后确定数组长度的情况下写入另一个new出来的数组中呀?,能不能拷贝指定个数的结构体数据拷贝,比如: strxcpy(temp,dest, count); 如果这样的话,拷贝的是否成了共用原来的dest地址呢?这里头总有些易混淆的东东!! 还有,我需要将表中取出的日期和时间值进行加减运算,该如何转换呢? 比如: float ss; dt=rs->getcollect("date"); rt=rs->getcollect("time"); ss= dt.date+rt.date; //我测试了一下发现这些值是类似-8.2999e+061的值,这应该是不对的!! 那该如何取到这个日期值呢? int pi = new int(10) ; delete pi ; int pi = new int[100] ; delete [] pi ; 我的dt,rt是_variant_t类型,主要是为了和_RecordsetPtr等取数据的类型匹配,就是不知道取日期字段的数据后的.date属性能不能得到正确的日期值? 问题已经解决,使用COleDateTime类型即可. 还有一个问题,使用_ConnectionPtr指针多次执行Execute命令时总会出错,部分代码如下: for ( int s=0; s<totalsess; s++) { strSQL.Format("insert into ttt values('%s')",Pgtemp[s]); try { m_pCon->Execute(_bstr_t(strSQL),&RecsAffected,adCmdText); } catch(...) { AfxMessageBox("写表失败,请确认表ttt是否存在!"); //执行了部分循环后程序就跳到这里来了! if (m_pCon->State) m_pCon->Close(); return; } } 大家有没有碰到这个问题的,是怎么解决的?先谢谢了!!! for (int kk=50; kk<100) delete &myWbstruc1[kk]; //这是我定义的结构体,为什么执行到这里不行呀?堆上分配的内存不能这样释放delete []myWbstruc1; 为什么删除用户的消息其他用户接收不到? 如何判断对RichEdit内字符进行了什么操作? 请问该界面用什么控件或方法解决 在线程中调用CDocument的UpdateAllViews,出现异常! 哪位高手能帮我改进我的快速平移BMP图片(大型)的算法?进来看看?万分感谢! 如何在程序中自己生成一个GUID?? 定时器的问题,请高人帮忙! 关于包络矩形的问题,请大家帮忙!!! 我使用CAsy....File这个异步下载类,问几个问题! 关于绘图程序的问题(欢迎有绘图软件及CAD编程经验的大侠指点) 我的MFC库里为什么没有CRichEditView类? 请教一个头文件
要delete []myWbstruc1C * p = new C[xx]
xx表示数组的长度
要和delete []p
对应的
既然这样的话,那有没有好的办法可以在最后确定数组长度的情况下写入另一个new出来的数组中呀?,能不能拷贝指定个数的结构体数据拷贝,比如:
strxcpy(temp,dest, count);
如果这样的话,拷贝的是否成了共用原来的dest地址呢?这里头总有些易混淆的东东!!
还有,我需要将表中取出的日期和时间值进行加减运算,该如何转换呢?
比如:
float ss;
dt=rs->getcollect("date");
rt=rs->getcollect("time");
ss= dt.date+rt.date; //我测试了一下发现这些值是类似-8.2999e+061的值,这应该是不对的!!
那该如何取到这个日期值呢?
int pi = new int(10) ; delete pi ;
int pi = new int[100] ;
delete [] pi ;
我的dt,rt是_variant_t类型,主要是为了和_RecordsetPtr等取数据的类型匹配,就是不知道取日期字段的数据后的.date属性能不能得到正确的日期值?
问题已经解决,使用COleDateTime类型即可.
还有一个问题,使用_ConnectionPtr指针多次执行Execute命令时总会出错,部分代码如下:
for ( int s=0; s<totalsess; s++)
{
strSQL.Format("insert into ttt values('%s')",Pgtemp[s]);
try
{
m_pCon->Execute(_bstr_t(strSQL),&RecsAffected,adCmdText);
}
catch(...)
{
AfxMessageBox("写表失败,请确认表ttt是否存在!"); //执行了部分循环后程序就跳到这里来了!
if (m_pCon->State)
m_pCon->Close();
return;
}
}
大家有没有碰到这个问题的,是怎么解决的?先谢谢了!!!
delete &myWbstruc1[kk]; //这是我定义的结构体,为什么执行到这里不行呀?堆上分配的内存不能这样释放delete []myWbstruc1;