1. Если есть возможность использовать STL, используйте list<...>. Там уже всё учтено (если, конечно то, что в угловых скобках грамотно написано, т.е. имеет конструкторы и деструктор). В делфи 5 и далее есть динамический массив, основанный на особенности выделения страничной памяти в Windows. Задаётся размер адресного пространства, занимаемый массивом и защищается NO_ACCESS. При попытке записать в защищённую память она автоматически выделяется.
2. Например list<list<list<double> > >. Непонятно, зачем это может понадобиться, тем не менее - это дин.спис. из дин.спис. из дин.спис. из вещественных.
В STL в любом контейнерном классе есть возможность расти в объёме. Можно наример сделать так:
Код:
![Выделить весь код](images/misc/selectcode.png)
void foo() {
vector<auto_ptr<TListBox> > listboxes;
listboxes.resize(10);
for(int i=0; i<listboxes.size(); i++) listboxes[i].reset(new TListBox);
listboxes.resize(20);
for(int i=10; i<listboxes.size(); i++) listboxes[i].reset(new TListBox);
}
...
foo();
// здесь все listbox-ы самоуничтожатся
// указателей на указатели не используется
// выгодно для доступа, но тормозит при добавлении и удалении в середине списка