malloc(256)和new char[256]有什么不一样? new char[256]虽然也是调用malloc,但是它添加很多MFC自己定义的东西在里面和其他操作,new为操作符,如:在debug下,会加入该内存的各种标志,用来判断该内存是否泄漏,还有该内存的(是否为对象)类型等等 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 when malloc() the object can not use construct function but new() can.CPen* myPen;myPen=new Cpen(PS_SOLID,3,RGB(0,0,255)); malloc只返回你所要求的大小的一段内存区域的指针,因为它不知道这段内存做何用处,所以它返回一个void类型的指针,但new是C++的操作符,它知道所要开辟的内存区域作何用处,另外,如果new一个类的话,会自动调用构造函数,但malloc函数不会自动调用构造函数,所以,用malloc会绕过构造函数,它破坏了类的封装机制,不推荐使用。 同意 codewarrior 的说法。在Debug模式下,new被重定义为DEBUG_NEW,不再是简单的分配内存,还可以帮你看看是否存在内存泄漏。 malloc 是 C 语言的使用方式,new 是C++下扩充的,所以用 new 比较好!! 学习,学习!好象还有new和delete配对使用,malloc和free配对使用,千万不要搞错,否则将导致不可预知的问题! VS2005做的MFC应用打包方法? 消息映射是否会“冲突”--内详 请问如何设置光标? 如何使用TreeView和ListView 对话框程序中的线程如何关闭这个对话框? 请高手来探讨 [求助版主]我的分不对啊?? datagrid控件中怎么样设置列宽? 请教关于richedit中关于设置字体的问题 这个算法是怎么设计的 如何通过CToolBar类对象创建一个工具条? 谁可以帮我,超级大送分!!!
CPen* myPen;
myPen=new Cpen(PS_SOLID,3,RGB(0,0,255));
在Debug模式下,new被重定义为DEBUG_NEW,不再是简单的分配内存,还可以帮你看看是否存在内存泄漏。