在C++中,应该尽量避免直接使用malloc来分配内存空间,尤其是对于包含非内置类型 (如std::string)的结构体或类对象。malloc是C语言的函数,它只负责分配一块原始的内 存空间,而不会调用构造函数进行对象的初始化。 相比之下,new运算符在分配内存空间的同时会调用对象的构造函数,确保对象的正确初始化。 同样地,对于释放内存,应使用delete来释放通过new分配的内存。 下面是一些关于malloc和new的注意事项: 对于内置类型(如int、char等),可以使用malloc和free,但需要注意手动调用构造函数和 析构函数。 对于类对象或包含非内置类型成员的结构体,应使用new和delete,它们会自动调用构造函 数和析构函数。 使用new分配内存后,应确保在合适的时机使用delete来释放内存,避免内存泄漏。 |
|