↓
 ↑
Регистрация
Имя/email

Пароль

 
Войти при помощи
Временно не работает,
как войти читайте здесь!
leprechaun
13 августа 2018
Aa Aa
#янепрогерятолькоучусь
Решила я тут, чтоб совсем не заплесневеть мозгом за лето, попробовать написать простенькую игрушку. И я была бы не я, если б всё работало.
Проблема такова:
Есть класс. У него есть три поля: int, int и char*. Так же есть private метод типа void, который по тем двум интам задаёт значение char*. Этот метод вызывается в конструкторе с заданными интами. Только вот на выходе (то есть, в месте, где конструктор и был вызван) получается экземпляр класса, у которого заданы интовые поля, а в char* поле хранится белиберда, которая при вызове деструктора и освобождении памяти вопит, что я лезу не в ту область памяти.
В общем, спасите-помогите: я в упор не понимаю, как это поправить.
(пишется вся эта хрень на плюсах)
13 августа 2018
13 комментариев из 23
ufhhb2018
ни тот конструктор вызываешь, очевидна жы
ufhhb2018
либа делаишь delete вместа free
ufhhb2018
пакажи сись... полний код класса и как ти его визиваишь вместа ентага абрыфка
Не знаю, у меня получилось: https://onlinegdb.com/BJszavJLX
Передвинул *view в public для удобства. Ещё вот эта строка неправильная: view[length + 3] = ''; — тут должен быть пробел, а не пустой литерал.
Styx
вызываю просто вот так: buildView()
а вне класса этот метод, ясен пень, не вызывается
Когда вызывается конструктор по умолчанию, переменные класса не определены, поэтому непонятно, что там вообще будет работать.

Маллок в топку, в C++ есть new.
new тоже в топку и прикрутить STL, который стандартен в плюсе.
Styx
там даже не пробел, там символ конца строки, но фанфикс его упорно удаляет
ufhhb2018
там не хватает разве что деструктора, остальные методы в данном случае не важны

Line::~Line()
{
num = -1;
length = 0;
if (view != NULL)
{
free(view);
view = NULL;
}
}
leprechaun, посмотрите код по ссылке.
Styx
а разве оно не должно было сломаться из-за того, что символа конца строки нет?
leprechaun, а я там пробел вставил :)
Styx
как так? если я про него забывала, у меня глючило решительно всё
leprechaun, ну вот вставил там \\n, работает.
ПОИСК
ФАНФИКОВ











Закрыть
Закрыть
Закрыть