Как выделить память?

yulya

Есть класс C++, называется он Port. Я хочу создать массив из numports указателей на различные Port, не создавая их. Вот что делаю:

Port **Ports;
Ports=new Port*[numports];

Каждый из портов создаю так:

i=0;
Ports[i]=new Port;

Что-то мне подсказывает (сегфолты что здесь ошибка. Как надо правильно выделять память?

skyformstd

у меня компилится твой код.покажи полностью код с классом который не компилируется или поподробней о ошибке..

evgen5555

>сегфолты

Уверен, что валится именно тут?
gdb на это дело натравливал?

yulya

Суть в том, что после простых действий с классами в них начинается портиться содержимое полей, доступа к которым не производилось. Вот я ищу место, где может быть ошибка. Но это место, вроде, правильно. Нашёл в книжке подобное, но для int'а.
Гдб натравливал, да вот только не могу поймать момент, когда происходят такие казусы - знаю только, что где-то после 75 запусков функции . Кстати, мне очень поможет, если кто-нибудь расскажет, как в гдб откатывать только что произведённые операции. Хотя, это невозможно, наверное - не будет же он все изменения в памяти хранить.
Какой графический фронтенд к gdb, кроме ddd, самый удобный?

okunek

а можно на сам класс взглянуть? и на то, как он используется?

kokoc88

Покажи кусок кода побольше.

yulya

Завтра покажу - нет сети, пишу с чужого компа. Гонят меня уже отсюда:)

skyformstd

да,в гдб отката нету

Missi4ka

+1

yulya

Вспомнил про valgrind. Оказалось, что происходил выход за пределы массива. Всем спасибо!
Оставить комментарий
Имя или ник:
Комментарий: