Хелпикс

Главная

Контакты

Случайная статья





Динамические массивы



Динамические массивы

Все динамические массивы создаются с помощью идентификаторов массивов и операции new, при этом необходимо указать тип и размерность. Динамические массивы нельзя инициализировать при создании, и они не обнуляются.

Под идентификатором массива понимается константный указатель на его нулевой элемент. Для массива из предыдущего листинга имя mas — это то же самое, что &mas[0], а к i-му элементу массива можно обратиться, используя выражение *(mas+i).

Можно описать указатель, присвоить ему адрес начала массива и работать с массивом через указатель.

Пример 4. Использование указателей для работы с массивами. // программа копирует все элементы массива a в массив b int а[100], b[100]; int *pa = а; // или int *pа = &а[0]; int *pb = b; for(int i=0; i<100; i++) *pb++ = *pa++; // или pb[i] = pa[i];

 

Пример 5. Создание динамического массива. int n = 100; float *рtr = new float [n];

Применительно к примеру выше, создание динамического массива проходит в три шага:

    1. создание указателя на float;
    2. в динамической памяти отводится непрерывная область, для размещения 100 элементов вещественного типа;
    3. адрес её начала записывается в указатель ptr.

Доступ к элементам динамического массива осуществляется точно также, как к статическим. например, к элементу номер 5 приведенного выше массива можно обратиться как р[5] или *(р+5).

Второй способ создания динамического массива заключается в использовании функции malloc.

Пример 6. Создание динамического массива с помощью функции malloc. int n = 100; float *q = (float *) malloc(n * sizeof(float));

Здесь операция преобразования типа, записанная перед обращением к функции malloc ((float *)), требуется потому, что функция возвращает значение указателя тина void*, а инициализируется указатель на float.



  

© helpiks.su При использовании или копировании материалов прямая ссылка на сайт обязательна.