Почему x аварийно завершает работу, когда я даю ему const char* в конструкторе классаC++

Программы на C++. Форум разработчиков
Anonymous
Почему x аварийно завершает работу, когда я даю ему const char* в конструкторе класса

Сообщение Anonymous »

Когда я в конструкторе класса «Cow» захотел скопировать строку символов в имя массива переменных символов, программа аварийно завершилась. Я не понимаю, в чем проблема. strcpy нужны char* dist и const char* Source. Я это дал, но это не работает. Что я делаю не так?

Код: Выделить всё

Cow::~Cow() {
delete [] hobby;
}

Код: Выделить всё

Cow::Cow(const char* nm, const char* ho, double wt) {
if (strlen(nm) < 20)
strcpy(name, nm);
else strcpy(name, "FailLenghtName");
hobby = new char[strlen(ho)+1];
strcpy(hobby, ho);
weight = wt;
}

Код: Выделить всё

class Cow {
char name[20];
char* hobby;
double weight;
public:

Cow(const char* nm, const char* ho, double wt);
~Cow();

};

Код: Выделить всё

int main() {

Cow Liza("Liza","Meat",120);
}
Я пытаюсь использовать любую функцию, например printf, но результат тот же

Подробнее здесь: https://stackoverflow.com/questions/793 ... onstructor

Вернуться в «C++»