malloc/free 不会调用类的构造/析构函数

Posted jobshunter

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了malloc/free 不会调用类的构造/析构函数相关的知识,希望对你有一定的参考价值。

 1 #include <iostream>
 2 #include <cstdlib>
 3 using namespace std;
 4 
 5 class A
 6 
 7 public:
 8     A()
 9     
10         cout << "A";
11     
12     ~A()
13     
14         cout << "~A";
15     
16 ;
17 
18 int main()
19 
20     void *p = malloc(sizeof(A));
21     
22     A *a = new(p) A;
23     
24     free(p);
25     return 0;
26 

以上代码的输出结果是A

malloc单纯地申请一块内存,不会调用类的构造函数

同样,free释放那块内存,不会调用类的析构函数

 

至于new的用法,待续

以上是关于malloc/free 不会调用类的构造/析构函数的主要内容,如果未能解决你的问题,请参考以下文章

new/malloc

C++动态内存常见面试题解析

Luweir大厂面试准备:每日五题(C++)

malloc 和 new 的区别

C++面试题

C++面试宝典