Почему 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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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