If (!ptr) // условие логического отрицания
{printf("Out of memory. Press any key:\n"); getch(); exit(1);} Здесь число 10 – размер одномерного массива с вещественными данными (типа double). В случае выделения памяти для двухмерного массива размера N * M строчка с функцией calloc() перепишется так: ptr = (double *) (calloc(N*M, sizeof(double))); При этом двухмерный массив рассматривается как аналог одномерного массива размера N * M. Использование явного приведения типов (double) сделано для того, чтобы гарантировать переносимость программы, в первую очередь для обеспечения совместимости с языком программирования С++.
9.2. Функция malloc() Прототип функции с необходимой библиотекой имеет вид #include <stdlib.h> void *malloc(size_t size); Функция malloc() возвращает указатель на первый байт области памяти размера size, которая была выделена из динамически распределяемой области памяти [3]. Если для удовлетворения запроса в динамически распределяемой области памяти нет достаточного объема, возвращается нулевой указатель NULL. При этом следует иметь в виду, что попытка использовать нулевой указатель обычно приводит к полному отказу системы. Выделенная область памяти не инициализируется [2]. Приведем фрагмент программного кода динамического распределения памяти для массивов заданного размера: double *ptr; ptr = (double *) (malloc(10*sizeof(double)));
|