И вообще realloc не самый лудший
>способ создания динамических массивов в плане производительности. Лучше выделять доп. куски
>памяти размером в страницу. Так куда эффективнее получитса. Насчет эффективности я так рассуждал - любой вызов new\malloc\etc порождает системный вызов. Только new() еще дополнительно выполняет некий код. Плюс еще такой момент - если памяти не хватает, то что делать если пользуешся new()? Делать delete и затем еще один new()? Или складывать массив из связанного списка кусочков памяти? Тогда всю эффективность адресации при одном куске памяти нахрен придется послать.
Насчет кол-ва единовременно выделяемой памяти - сколько водки не бери все равно два раза бегать :-). Собственно говоря, страницы памяти под массив указателей возможно это очень много (смотря какая у вас страница). Размер указателя не очень большой. Однако это зависит от того для чего массивы использовать. Мне например нужно разместить результаты выборки из DВ. Там может быть и 5 строк и 100005. Так какой размер выбрать для единовременного выделения?
Короче, я решил, что нужно задавать шаг выделения памяти при создании массива. Он задается в конструкторе, в массиве он держится в nstep. Не самый лучший способ, но зато гибкий :-).
Есть идеи лучше? Поделитесь :-)