现在的位置: 首页 > 综合 > 正文

C++ new & delete

2012年02月09日 ⁄ 综合 ⁄ 共 557字 ⁄ 字号 评论关闭

前天偶然将一段在 Win 6.0 的代码,放在 PC 上运行。

可结果出人意科,Debug 时“居然”弹框提示错误。所以将代码拿出来,对比 MSDN 来看看。

代码片段1:
ms-help://MS.VSCC.v90/MS.MSDNQTR.v90.en/dv_vccrt/html/4ae51618-a4e6-4172-b324-b99d86d1bdca.htm
int * i = new int(6);
printf("%d\n", *i);
delete i;

代码片段2:
ms-help://MS.VSCC.v90/MS.MSDNQTR.v90.en/dv_vclang/html/de39c900-3f57-489c-9598-dcb73c4b3930.htm
int* set = new int[100];
//use set[]
delete [] set;

CDialog* MyDialog = new CDialog;
// use MyDialog
delete MyDialog;

如果这样使用会有什么样的结果:
char *pcFloat = new char(iLen + 1);
// user pcFloat
delete[] pcFloat;

说明: 都使用 VS2008 编译:
(1) 在 WinCE 6.0 环境下编译运行都没有出现问题;
(2) 在 PC 上编译是没有问题,运行到 delete 语句时出错。

抱歉!评论已关闭.