【每日一C之六】new 与 malloc

时间:2022-04-06 20:38:39

每日一C之new与malloc

       每天一个C语言贝壳厚积薄发积跬步以致千里

 今日贝壳:C/C++中new/deletemalloc/free小辨析
              区别: 1.new/delete是C++运算符,malloc/free是C函数。
                              2.new同时调用构造函数,delete时调用析构函数。
                              3.malloc/free开辟的空间类型为void,需强制转换类型,如
                                  int *p=(int *) malloc ( sizeof (int)*4);
                              4.new开辟的空间带有类型信息,不需再类型转换,如
                                  int *p= new int[4] ;
           共同点:1.两者都是动态内存的方法,均需开发者自行开辟与释放。
                              2.两者开辟的空间都是在堆区。
             小结:C/C++可以说已经融为一体了。程序使用了类的情况下,malloc/free往往不能满足要求,其释放内存前需手动调用析构函数,new/delete可以为开发者减轻不少负担。

                     Have a nice day !