Многие люди упоминали лекарство от немедленной проблемы, с которой вы столкнулись. Тем не менее, они почти оказали вам медвежью услугу. Если у вас нет действительно веской причины поступить иначе, вероятно, вам следует определить имя как и std::string
и использовать его оператор присваивания для правильной обработки задания.
Если у вас есть действительно веская причина избегать использования std::string
, то вам следует создать собственный класс строки и использовать его вместо этого. По крайней мере, на мой взгляд, написание кода, как у вас, с динамическим распределением и strcpy
повсюду - просто плохая идея. Даже в лучшем случае его трудно читать, он подвержен множеству глупых ошибок, и по существу невозможно сделать что-либо, близкое к исключению, безопасным.