destructor/freeing 内存问题

Issues with destructor/freeing memory

所以我是 c++ 的新手,我正在尝试一些基本的动态内存分配,我已经 运行 遇到了一些问题。我不太确定我做错了什么,但我不能 运行 以下代码:

Class声明:

class Car {
    double maxSpeed;
    bool isNew;
    char* manufacturerName;

public:
    Car(double = 0, bool = true, char* = "Unknown");
    ~Car();
    Car& operator=(const Car&);


};

构造函数实现:

Car::Car(double maxSpeed, bool isNew, char* manufacturerName) {
    this->maxSpeed = maxSpeed;
    this->isNew = isNew;
    this->manufacturerName = new char[strlen(manufacturerName)];
    strcpy(this->manufacturerName, manufacturerName);
}

析构函数实现:

Car::~Car() {
    delete [] manufacturerName;
}

主要:

int main() {

    Car C(250.0, true, "Name1");
    Car C1(180.0, false, "Name2");
    Car C2;    
    cout << C << C1 << C2;

    return 0;
}

我收到的错误消息:

您必须在构造函数中为您的字符串分配 strlen(...)+1 个字节以容纳结尾的零字节。你现在多写了 1 个字节。