在C++中malloc/free和new/delete都可以动态申请内存
区别是new/delete在底层还是借助malloc/free申请的内存空间,然后调用类的构造函数(先申请内存空间,然后调用构造函数创建对象),进行成员变量的初始化等一系列工作,最后返回对象的指针,delete会调用析构函数,malloc/free仅仅是申请内存空间,然后返回所申请内存空间的指针(没有类型的指针)。malloc/free不对调用类的构造函数和析构函数。
所有在使用malloc为含有string对象的结构体申请内存空间时,没有调用 string的构造函数,编译就会出错。
可以改用new关键字为结构体申请空间