遥远的青苹果

代码人生

 

new 与malloc问题

先从这个C++中new和malloc开始,这个是正常在用的程序中代码一段(不过我总是觉这个程序有问题,虽然它在控制台中正常运行),但是我导出dll提供C#使用。老是有问题,可能是我方法不对,但是总是觉得这个程序在一些方面写的别扭。尤其是这个地方 YG=(double**)new char [(nB)*sizeof(void*)],按照我自己的理解,应该定义成这样下面图哪种

YG=(double**) malloc((nB)*sizeof(double)); 它在这里定义成char[]数组类型,估计是考虑考虑memset使用的缘故吧。但是这样一弄,究竟在系统中如何划分内容反而不清楚了,我的本意是弄个二维的表,表中数据类型是double!这点迷糊问题还请给位看客给予解答!

一,实验证明混搭是错误

出现莫名错误。本来程序是这样写的。(在控制台运行良好)

9V]14~[4%[(99M1_MHU[WU6

 

我采用下面的方式重写了。下面来看看另外一种分配方式(用malloc)

 

 

L~L[Y0BA3Q`K5KX{]9205OO

呵呵!两种方式的用法就是这样来的! 

我自己是有些程序用new 关键字,有些程序用malloc函数去处理。导致的结果如下。image

 

  点击继续就出现了。(我用一个C#工程调用C++写的DLL)

image

  经过定位发现。是这一行代码。

image 

这段代码,很简单啊!不可能出错的!

因此我怀疑很有可能的原因是就是我既用到了C 的malloc 又用到了C++ 的new原因。

 

posted on 2012-08-03 20:18  遥远的青苹果-李院长  阅读(146)  评论(0编辑  收藏  举报

导航