170 похожих чатов

Всем привет! создал свой класс для работы со строками String. создал

два объекта этого класса и присвоил каждому в поле char* str адрес на какой то динамический массив из символов. затем пытаюсь заменить значения в char массиве первого объекта на значения из второго. в чем ошибка?
class String
{
public:
char* m_str;
int m_sizee;

String(const char* str_)
{
m_sizee = strlen(str_);
m_str = new char[m_sizee];

for (int i = 0; i < m_sizee; ++i)
{
m_str[i] = str_[i];
}
}

String() = default;

void print()
{
std::cout << m_str << " size is: " << m_sizee << std::endl;
}

String replaceStr(String str1)
{
for (int i = 0; i < str1.m_sizee; ++i)
{
this->m_str[i] = str1.m_str[i];
}
//this->m_str = str1.m_str;
}

~String()
{
delete[] m_str;
}
};


int main()
{
String str1("aboba");
String str2 = "bababooey";
str1.print();
str2.print();
str1.replaceStr(str2);
str1.print();

return 0;
}

5 ответов

9 просмотров

strlen() - длина строки без учета терминатора.

Второй момент - копирование, которое сейчас double-free дает, поскольку по умолчанию.

Извини, но String() = default; Тут не прокатит

Myrrrca- Автор вопроса
Ilya Zviagin
Извини, но String() = default; Тут не пр...

из за того, что для указателя нет значения по умолчанию?

Myrrrca
из за того, что для указателя нет значения по умол...

Скорее что он не инициализируется согласованно неявно, да.

Похожие вопросы

Обсуждают сегодня

Anyone here suffers from unexplained aural migraines, who would be up for talking for a bit? Doesn't *have* to be aural, but I am not asking about headaches, I mean actual mi...
Martin Rys
55
Вопрос по WIN32: Насколько я понимаю то все функции win32 привязаны к объектам операционной системы. Например консоль, файл, кисть, окна итд. Следовательно функции win32 упра...
Tommy Vercetti
6
кто-то пользуется компонентами rx ? как их лучше ставить, через OPM? (lazarus)
Iluha Companets
15
В смысле более затратная? Общая стоимость владения лошадью меньше, чем автомобиля. В среднем.
Sergej R
10
подскажите пожалуйста, как мне освободить результат записанный в переменную result? в чем проблема подскажите если МОЖЕТЕ?
Михаил Helper
28
есть тут кто-то , кто только начал изучать си? если проходите курс на степике или как-то сами изучаете, пишите, может, скооперируемся?..
Eule
25
Слушайте, ещё такая интересная задачка. Сделан аудит действий пользователей через триггеры в базе, соответственно каждый пользователь имеет свой логин и пароль в базе. Это пре...
Сергей Бычков
12
Скажите, тут нет проблемы? IMyInterface1 = interface function GetInterface2: IInterface2; ... function TMyInterface.GetInterface2: IInterface2; begin Result := TI...
Ruslan aka DUDE
18
я не магистр хаскеля, но разве не может лейзи тип конвертнуться в не-лейзи запросив вычисление содержимого прям при инициализации?
deadgnom32 λ madao
100
Вопрос. Запускаю сонсольное приложение. Читаю из пайпа его вывод. Если данных нет, то на чтении поток зависает. Отправляю в вывод чучуть текста - нифига. Отправляю ещё чучуть...
Serjone
11
Карта сайта