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

Ваш аккаунт

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

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

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

Массив структур...

323
10 мая 2004 года
Sergun
228 / / 20.09.2000
делаю так:

struct sss {
AnsiString a;
AnsiString b;
} *bcd;

bcd = (sss*)malloc(sizeof(sss)*10);
bcd[5].a="aaaaaa";
free(bcd);



почему в BCB5 на строчке bcd[5].a = ... вылетает исключение??????? X)- :???: :{
310
12 мая 2004 года
fellow
853 / / 17.03.2003
Потому что AnsiString - это класс. Чтобы иметь доступ к экземпляру AnsiString, необходимо сначала его создать. Создание экземпляра класса производится с помощью конструктора. Вы же конструктор не вызываете, а просто выделяете низкоуровневой функцией фрагмент памяти. Хотите массив структур, размещённый динамически, тогда используйте, на худой конец, что-нибудь наподобие sss *bcd = new sss[10];
А ещё лучше, используйте vector<sss>
5.6K
12 мая 2004 года
UserPro
15 / / 28.04.2004
Цитата:
Originally posted by fellow
Потому что AnsiString - это класс. Чтобы иметь доступ к экземпляру AnsiString, необходимо сначала его создать. Создание экземпляра класса производится с помощью конструктора. Вы же конструктор не вызываете, а просто выделяете низкоуровневой функцией фрагмент памяти. Хотите массив структур, размещённый динамически, тогда используйте, на худой конец, что-нибудь наподобие sss *bcd = new sss[10];
А ещё лучше, используйте vector<sss>



Может все проще...
bcb->a="qweqw";
все ж bcb - это указатель...
Хотя конечно с конструктором класса не хорошо получается

487
16 мая 2004 года
ddnh_bc
301 / / 16.09.2003
Цитата:
Originally posted by UserPro

Может все проще...
bcb->a="qweqw";
все ж bcb - это указатель...
Хотя конечно с конструктором класса не хорошо получается



Не проще. bcb->a это доступ к элементам текущего указателя на структуру. А человек работает с массивом так что запись bcb[5].a абсолютно правильная. А вот дело действительно в том, что человек пытается обратиться к НЕ СОЗДАННОМУ экземпляру класса AnsiString.

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог