Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Industrial programming >> Язык C

Использование realloc() в C: синтаксис, лучшие практики и пример

Что такое realloc()

realloc() — функция стандартной библиотеки C, изменяющая размер уже выделенного блока памяти. Она расширяет или сужает блок, сохраняя его содержимое. Это делает управление динамической памятью более эффективным, когда требуемый размер меняется во время выполнения.

Синтаксис

ptr = realloc(ptr, newSize);

ptr указывает на ранее выделенный блок, newSize — новый размер в байтах. После вызова ptr указывает на начало нового блока. Функция копирует данные в новое место и освобождает старый блок при успехе.

Важные моменты

Пример — изменение размера строкового буфера

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(void) {
    char *buf = malloc(10);
    if (!buf) { perror("malloc"); return EXIT_FAILURE; }
    strcpy(buf, "Programming");
    printf("%s\n", buf);
    char *tmp = realloc(buf, 20); // увеличение буфера
    if (!tmp) { free(buf); perror("realloc"); return EXIT_FAILURE; }
    buf = tmp;
    strcat(buf, " in C");
    printf("%s\n", buf);
    free(buf);
    return EXIT_SUCCESS;
}

Пример — выделение и изменение массива целых

#include <stdio.h>
#include <stdlib.h>
int main(void) {
    int *arr = malloc(10 * sizeof(int));
    if (!arr) { perror("malloc"); return EXIT_FAILURE; }
    /* ... использование массива ... */
    int *tmp = realloc(arr, 50 * sizeof(int));
    if (!tmp) { free(arr); perror("realloc"); return EXIT_FAILURE; }
    arr = tmp;
    printf("Array resized successfully\n");
    free(arr);
    return EXIT_SUCCESS;
}

Практические советы

Язык C

  1. Как молибден формирует современную промышленность: применение, преимущества и динамика поставок
  2. Использование Azure DevOps: проверенные практики для ускоренной доставки
  3. Освоение функций VHDL: практическое руководство по эффективному дизайну
  4. Превратите собранный пазл в вечный шедевр с эпоксидной смолой
  5. calloc() в C: выделение обнулённой памяти и практический пример
  6. Освоение функции free() в C: практическое руководство и пример
  7. Основное руководство: когда и как безопасно использовать огнетушитель
  8. Мастерство работы с краскопультами: профессиональное руководство для равномерного и безопасного покрытия
  9. Использование термистора: пошаговое руководство для Arduino
  10. Освоение техник шлифовального станка для режущих инструментов: практическое руководство