Добрый день.
Есть 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 не хочет быть массивом?
Спасибо.
pepsicoca wrote:
>
> 1. Почему TStringList не хочет быть массивом?
Потому что он наследник от TObject.
Posted via RSDN NNTP Server 2.1 beta
pepsicoca wrote:
> _>Потому что он наследник от TObject.
>
> Странно, если есть конструктор без параметров для TStringList, то как
> они могут запретить создавать массив объектов?
>
> Не говоря уже о том, что почему бы и не создать массив объектов
> TStringList. Чему противоречит массив TStringList?
Потому что это объект VCL, для которых компилятор генерирует иной код.
Например такие объекты нельзя создать на стэке.
Posted via RSDN NNTP Server 2.1 beta