C-Sprache – flexibles Array

C-Sprache – flexibles Array

Flexibles Array (Flexible Array) ist eine Funktion in der C-Sprache, die es ermöglicht, dass die Größe des letzten Mitglieds des Arrays 0 oder unbekannt ist, beim Definieren des Arrays keine bestimmte Länge angibt und den erforderlichen Speicherplatz zur Laufzeit dynamisch zuweist .

Durch die Verwendung flexibler Arrays können Datenstrukturen variabler Länge effizient verarbeitet werden, z. B. das Speichern von Daten variabler Länge in einer Struktur.

Hier ist ein Beispiel für die Verwendung flexibler Arrays:

#include <stdio.h>
#include <stdlib.h>

struct MyStruct {
    
    
    int size;
    int data[];
};

int main() {
    
    
    int n = 5;
    struct MyStruct* myStruct = malloc(sizeof(struct MyStruct) + n * sizeof(int));
    myStruct->size = n;

    for (int i = 0; i < n; i++) {
    
    
        myStruct->data[i] = i;
    }

    printf("Size: %d\n", myStruct->size);
    for (int i = 0; i < myStruct->size; i++) {
    
    
        printf("Data[%d]: %d\n", i, myStruct->data[i]);
    }

    free(myStruct);
    return 0;
}

Im obigen Beispiel ist ein flexibles Array data[] in der MyStruct-Struktur definiert, das Daten variabler Länge darstellt. Weisen Sie zur Laufzeit den erforderlichen Speicherplatz nach Bedarf zu und verwenden Sie die malloc-Funktion für die dynamische Speicherzuweisung.

Durch flexible Arrays können wir je nach Bedarf bequem Daten unterschiedlicher Länge speichern. Geben Sie bei der Speicherzuweisung einfach die Länge des Arrays dynamisch an, wodurch die Datenstruktur flexibler und effizienter wird. Es ist zu beachten, dass nach der Verwendung die Free-Funktion verwendet werden muss, um den dynamisch zugewiesenen Speicherplatz freizugeben, um Speicherlecks zu verhindern.

Supongo que te gusta

Origin blog.csdn.net/m0_58235748/article/details/131939639
Recomendado
Clasificación