Массив из TStringList
От: pepsicoca  
Дата: 20.07.11 11:14
Оценка:
Добрый день.

Есть BCB60 на Win2000.

Есть такая конструкция (тестовая):


TStringList* t1=new TStringList;
TStringList* t2=new TStringList[1];


Трансляция проходит без ошибок.

Первая строка нормально выполняется.
Вторая строка обваливает приложение с диагностикой:

Project a.exe raised exeption class EAccessViolation
with message 'Access violation at address 015E2FA6. Read of address FFFFFFFF'.
Process stopped. Use Step or Run to continue.

Вопросы:

1. Почему TStringList не хочет быть массивом?

Спасибо.
Re: Массив из TStringList
От: avp_  
Дата: 20.07.11 11:45
Оценка:
pepsicoca wrote:

>

> 1. Почему TStringList не хочет быть массивом?

Потому что он наследник от TObject.
Posted via RSDN NNTP Server 2.1 beta
Re[2]: Массив из TStringList
От: pepsicoca  
Дата: 20.07.11 12:24
Оценка:
Здравствуйте, avp_, Вы писали:

_>pepsicoca wrote:


>>

>> 1. Почему TStringList не хочет быть массивом?

_>Потому что он наследник от TObject.


Странно, если есть конструктор без параметров для TStringList, то как они могут запретить создавать массив объектов?

Не говоря уже о том, что почему бы и не создать массив объектов TStringList. Чему противоречит массив TStringList?
Re[3]: Массив из TStringList
От: avp_  
Дата: 21.07.11 07:43
Оценка:
pepsicoca wrote:

> _>Потому что он наследник от TObject.

>
> Странно, если есть конструктор без параметров для TStringList, то как
> они могут запретить создавать массив объектов?
>
> Не говоря уже о том, что почему бы и не создать массив объектов
> TStringList. Чему противоречит массив TStringList?

Потому что это объект VCL, для которых компилятор генерирует иной код.
Например такие объекты нельзя создать на стэке.
Posted via RSDN NNTP Server 2.1 beta
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.