Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

динамический массив структур

3.3K
07 апреля 2011 года
eugrita
24 / / 26.02.2006
пытался обойтись без vector на C++
Создал динамический массив структур. А на 1-же изменении размера - ошибка.
ниже -кусок хэдера, где объявлен указатель на структуру
и код где после выделения памяти sm=new smv[m] происходит облом
public: // User declarations
__fastcall TForm1(TComponent* Owner);
typedef struct SMV {
char c; float p; char kd[20];
} smv;
smv *sm;
redim();
---------------------
TForm1::redim()
{
m=csN->Value;
delete [] sm;
sm=new smv[m];
...
}
277
07 апреля 2011 года
arrjj
1.7K / / 26.01.2011
В конструкторе формы (или OnCreate) добавить sm=NULL; а перед delete [] sm; вставить строку if(sm)

да и необязательно структуру объявлять так можно просто:
struct smv {
char c; float p; char kd[20];
};
3.3K
08 апреля 2011 года
eugrita
24 / / 26.02.2006
все сделал. По прежнему вылетает access violation при запуске в оболочке.
А при запуске exe этого нет - все работает.
Где-то читал, что Builder в случае динамических массивов глючит в debug -
g\правда здесь не совсем то...
360
08 апреля 2011 года
P*t*
474 / / 15.02.2007
csN->Value - это что? Может так получиться, что при первом запуске redim() там мусор записан?
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог