C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
Динамическое указание размера массива, Возможно ли это?
Smart
Отправлено: 10.12.2005, 21:16


Дежурный стрелочник

Группа: Участник
Сообщений: 35



Приветствую Вас, господа!
В проекте решено использовать трехмерный массив типа:
AnsiString S [A] [B] [C].
Размеры [A] и [B] заранее известны и могут быть установлены при инициализации.
Размер [C] в зависимости от входящих данных может колебаться в весьма широких пределах: от 300 до 3000.
Возможно ли динамическое указание размера массива?
Или не заморачиваться и поставить максимальный размер [C], да еще и с запасом?
И как в этом случае размер запаса отразится на ресурсах?
Grigoriy
Отправлено: 10.12.2005, 22:14


Мастер участка

Группа: Участник
Сообщений: 381



Вот как бы сделал я...
CODE

const A=23;//Фиксированная граница первого измерения
const B=78;//Фиксированная граница второго измерения
AnsiString* S[A][B];/*Двумерный Массив указателей на одномерные массивы объектов AnsiString*/
//........
S[12][45]=new AnsiString [7];/*Выделим, например, память для нескольких объектов (7 объектов), на которую ссылается указатель S[12][45]*/
//........//Использование памяти
AnsiString w;
char dd;
w=S[12][45][7];/*Например такое использование — присвоение строки*/
dd=S[12][45][7][5];/*Присвоение символа*/
Георгий
Отправлено: 11.12.2005, 14:57


Почетный железнодорожник

Группа: Модератор
Сообщений: 874



вы шо творите?
CODE
#include <vector>
using namespace std;
vector< vector<vector < string> > > megaVector;
Smart
Отправлено: 11.12.2005, 16:32


Дежурный стрелочник

Группа: Участник
Сообщений: 35



Сколько не напрягался, про мегавектор ничего не понял.
Наверное слабый мозк.
За идею с массивами указателей — спасибо, попробую.
И, может кому-нибудь интересно будет:
сравнил захват оперативки при инициализации AnsiString[10][20][100] и AnsiString[10][20][3000] — разницы никакой, пока массив не заполнишь.
Георгий
Отправлено: 12.12.2005, 00:31


Почетный железнодорожник

Группа: Модератор
Сообщений: 874



что там понимать? берём банальный stl контейнер и используем

Вернуться в Вопросы программирования в C++Builder