Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > C/C++: Общие вопросы > Динамический массив |
Автор: ekha 24.11.2004, 17:01 |
Прошу прошения. Скажите пожалуйста, как используется динамичекий массив? ![]() |
Автор: dargaard 24.11.2004, 17:17 |
В динамическом массиве память не выделена во время компиляции, а выделяется во время исполнения програмы. Например: (Статический массив) int main() { int massiv[10]; } будет выделена память под массив из 10 чисел. (Динамический массив) int main() { int *massiv; //указатель на будуший массив //какие нибудь действия чтоб установить сколько надо выделить // например мы как то выяснили что размер массива N = 10 // В С massiv = malloc(sizeof(int) * N); // В С++ massiv = new int[10]; //Далее если массив больше не нужен, память можно удалить // В С free(massiv); // В С++ delete [] massiv; } Следовательно динамический массив используется, когда а) не известно количество элементов заранее б) массив нужен только на короткое время |
Автор: val 24.11.2004, 17:42 | ||
Используется обычно, когда заранее не знаешь длины требуемого массива.
|
Автор: Alastis 26.11.2004, 06:11 |
а еще почитай про vector из STL, очень удобная штука. |
Автор: [ss]3L33T@ 27.11.2004, 06:03 | ||
ekha
Ещё посмотри функцию realloc(). Она необходима для расширения массива без потери данных. Т.е., в данном примере я сначала завёл массив из 5 элементов, а потом другой - из 20 элементов, чтобы завести второй, мне нужно было осовободить память из-под первого, при этом все значение первого массива, есесно, были утеряны, а функция realloc() просто расширяет границы массива |
Автор: !Жека! 27.11.2004, 08:12 |
Сначало необходимо выделить память под массив, потом идет работа с массивом как с обыкновенным. По окончании необходимо осободить выделенную память. Пример. int *arr = new int[n]; // выделяем память под n элементов, n - любое, может быть не константой for (int i = 0; i < n; ++i) arr[i] = i+10; // работаем с массивом delete [] arr; // освобождаем память, обрати внимание на скобки [] если их забыть то ошибки не будет, но память полностью не освободится |
Автор: chipset 27.11.2004, 16:24 | ||
АФАИК старо-сишные функции обычно не принято употреблять в С++. |
Автор: Гость_ekha 29.11.2004, 08:39 |
Сначала Всем спасибо за рекомендации. Хочу подсчитать колличество цифры какой нибудь число. помогите пожалуйста. |