Добрый день. Хотелось бы узнать, в чем проблема. Есть простой (ужасный) код для примера
class STRING_REPLACE
{
private:
char* stringObj;
int length=0;
public:
STRING_REPLACE()
{
cout << "Creating STRING_REPLACE object\n";
char* stringObj = new char[5];
strcpy(stringObj, "FFFF\0");
length = 5;
cout << stringObj << endl;
}
int getLength()
{
return this->length;
}
void setString(std::string obj,int length)
{
delete[] stringObj;
//stringObj = new char[length+1];
//strcpy(this->stringObj, obj.c_str());
}
void getString()
{
cout << stringObj << endl;
}
};
};
Почему в данном примере программа вылетает при вызове функций setString,getString?
Прошу не кидаться камнями за такой код. Такая реализация сделана умышленно.
Потому что в конструкторе вы изволите выделять память, и полученный указатель совать в локальную переменную.
char* stringObj = new char[5];
А надо:
stringObj = new char[5];
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости