Указатели и массивы Указатели



бет10/12
Дата06.01.2022
өлшемі1,96 Mb.
#15493
түріУказатель
1   ...   4   5   6   7   8   9   10   11   12
Динамические массивы создают с помощью операции new, при этом необходимо указать тип и размерность, например:

int п = 100:


float *р = new float [n];


  1. этой строке создается переменная-указатель на float, в динамической памяти отводится непрерывная область, достаточная для размещения 100 элементов ве­ щественного типа, и адрес ее начала записывается в указатель р. Динамические массивы нельзя при создании инициализировать, и они не обнуляются.

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


Альтернативный способ создания динамического массива — использование функции mall ос библиотеки С:
int п = 100;
float *q - (float *) malloc(n * sizeof(float)):
Операция преобразования типа, записанная перед обращением к функции mal 1ос, требуется потому, что функция возвращает значение указателя тина void*, а ини­ циализируется указатель на float.
Память, зарезервированная под динамический массив с помощью new [], должна освобождаться оператором delete [], а память, выделенная функцией mall ос — посредством функции free, например:
delete [ ] р: free (q):
При несоответствии способов выделения и освобождения памяти результат не определен. Размерность массива в операции delete не указывается, но квадрат­ ные скобки обязательны.


Достарыңызбен бөлісу:
1   ...   4   5   6   7   8   9   10   11   12




©emirsaba.org 2024
әкімшілігінің қараңыз

    Басты бет