Я хочу удалить массив char *, который должен быть простым, верно? char * = new char[length];
затем используйте delete[] char;
?
Кроме того, я не могу использовать std::string
для этого упражнения.
Я получаю эту ошибку:
ОБНАРУЖЕНА КОРРУПЦИЯ КАРТЫ: после блока Normal (# 137) 0x00794B50.
CRT обнаружил, что приложение записало в память после завершения буфера кучи.
Вот мой код:
class myClass
{
char * myString;
...
public:
myClass::myClass( const char * tempStr);
};
myClass::myClass( const char * tempStr)
{
int length = strlen(tempStr);
myString = new char(length + 1); //+1 for null char
strcpy(myString, tempStr);
myString[length] = '\0';
delete[] myString; //error occurs here
}
Теперь, я знаю, этот код совершенно непрактичен, однако он по-прежнему выдает ту же ошибку, которую я пытаюсь решить, поэтому, если мы сможем решить эту проблему, тогда я буду радостно идти своим путем. Из того, что я прочитал, это должно быть в порядке? Я повторюсь, для этого упражнения я не могу использовать std::string
.