Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Industrial programming >> C Sprache

realloc() in C: Syntax, Best Practices & Beispiel

Was ist realloc()?

realloc() ist eine C-Standardbibliotheksfunktion, die einen bestehenden Speicherblock in der Größe verändert. Sie erweitert oder verkleinert den Block, wobei der Inhalt erhalten bleibt. Dies macht dynamisches Speichermanagement effizienter, besonders wenn sich die benötigte Größe zur Laufzeit ändert.

Syntax

ptr = realloc(ptr, newSize);

Hier zeigt ptr auf einen zuvor allokierten Block, und newSize ist die gewünschte Größe in Bytes. Nach dem Aufruf zeigt ptr auf das erste Byte des neuen Blocks. Die Funktion kopiert die Originaldaten an den neuen Speicherort und gibt den alten Block frei, falls die Reallokation gelingt.

Wichtige Hinweise

Beispiel – String-Puffer vergrößern

#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); // Puffer vergrößern
    if (!tmp) {
        free(buf); // Originalblock noch gültig
        perror("realloc");
        return EXIT_FAILURE;
    }
    buf = tmp;
    strcat(buf, " in C");
    printf("%s\n", buf);
    free(buf);
    return EXIT_SUCCESS;
}

Beispiel – Integer-Array allokieren und vergrößern

#include <stdio.h>
#include <stdlib.h>
int main(void) {
    int *arr = malloc(10 * sizeof(int));
    if (!arr) {
        perror("malloc");
        return EXIT_FAILURE;
    }
    /* ... Array nutzen ... */
    int *tmp = realloc(arr, 50 * sizeof(int));
    if (!tmp) {
        free(arr);
        perror("realloc");
        return EXIT_FAILURE;
    }
    arr = tmp;
    printf("Array erfolgreich vergrößert\n");
    free(arr);
    return EXIT_SUCCESS;
}

Praktische Tipps

C Sprache

  1. Wie Molybdän die moderne Industrie formt: Nutzung, Vorteile und Versorgungsdynamik
  2. Azure DevOps nutzen: Bewährte Practices für beschleunigte Delivery
  3. VHDL-Funktionen meistern: Praktischer Leitfaden für effizientes Design
  4. Verwandeln Sie Ihr fertiges Puzzle in ein zeitloses Meisterwerk mit Epoxidharz
  5. calloc() in C: Null-initialisierte Speicherallokation mit praktischem Beispiel
  6. C's free() Funktion meistern: Praktischer Leitfaden & Beispiel
  7. Wesentlicher Leitfaden: Wann und wie man einen Feuerlöscher sicher einsetzt
  8. Farbsprayer meistern: Profi-Leitfaden für gleichmäßige, sichere Beschichtung
  9. Thermistor (NTC) einfach nutzen: Schritt-für-Schritt Arduino-Anleitung
  10. Schleiftechniken für Werkzeugschleifmaschinen meistern: Praktischer Leitfaden