Код IT
← Каталог

Основы языка С — Ручное управление памятью — malloc и free

Фрагмент из «Основы языка С»: Ручное управление памятью — malloc и free.

C main.c
int *zeros = calloc(10, sizeof(int));
if (zeros == NULL) {
    return 1;
}

zeros[0] = 42; /* остальные элементы уже равны 0 */

int *bigger = realloc(zeros, 20 * sizeof(int));
if (bigger == NULL) {
    free(zeros);
    return 1;
}
zeros = bigger;

free(zeros);
zeros = NULL;
int *zeros = calloc(10, sizeof(int));
if (zeros == NULL) {
    return 1;
}

zeros[0] = 42; /* остальные элементы уже равны 0 */

int *bigger = realloc(zeros, 20 * sizeof(int));
if (bigger == NULL) {
    free(zeros);
    return 1;
}
zeros = bigger;

free(zeros);
zeros = NULL;