typedef struct {
real re,im;
} Complex;
canearp=(char*)malloc(2*sizeof(Complex));
上面的canearp如何用new来代替。
说错了,是malloc如何用new来代替。char * canearp;
下面的malloc如何用new来表示
答案:2 悬赏:80 手机版
解决时间 2021-02-07 22:14
- 提问者网友:喧嚣尘世
- 2021-02-07 17:20
最佳答案
- 五星知识达人网友:孤独的牧羊人
- 2021-02-07 18:46
canearp = (char*) new char[2*sizeof(Complex)];
为什么不用(char*) new Complex[2] :因为这样的话,如果Complex有构造函数,那么和你的代码的功能就不完全相同了。
为什么不用(char*) new Complex[2] :因为这样的话,如果Complex有构造函数,那么和你的代码的功能就不完全相同了。
全部回答
- 1楼网友:几近狂妄
- 2021-02-07 19:12
1、new 是c++中的操作符,malloc是c 中的一个函数 2、new 不止是分配内存,而且会调用类的构造函数,同理delete会调用类的析构函数,而malloc则只分配内存,不会进行初始化类成员的工作,同样free也不会调用析构函数 3、内存泄漏对于malloc或者new都可以检查出来的,区别在于new可以指明是那个文件的那一行,而malloc没有这些信息。 4、new 和 malloc效率比较 new 有三个字母, malloc有六个字母 new可以认为是malloc加构造函数的执行。 new出来的指针是直接带类型信息的。 而malloc返回的都是void指针。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯