Dans quels cas utiliser malloc et dans quels cas utiliser new en C++ ?
Bonjour, collègues ! J'apprends le C++ et j'en suis arrivé à la gestion de la mémoire. J'ai à peu près compris que malloc est une fonction du C, tandis que new est un opérateur du C++. Mais dans la pratique, je suis confus.
Supposons que je veuille allouer de la mémoire pour un objet de la classe `Person`. Voici deux méthodes que je comprends :
```cpp
#include // pour malloc
#include
class Person {
public:
Person(const std::string& name) : name_(name) {
std::cout << "Person created: " << name_ << std::endl;
}
~Person() {
std::cout << "Person destroyed: " << name_ << std::endl;
}
void greet() { std::cout << "Hi, I'm " << name_ << std::endl; }
private:
std::string name_;
};
// Option 1 : malloc
Person* p1 = (Person*)malloc(sizeof(Person));
// Option 2 : new
Person* p2 =