Heim  >  Artikel  >  Was sind die Implementierungsmethoden für dynamische Arrays in der C-Sprache?

Was sind die Implementierungsmethoden für dynamische Arrays in der C-Sprache?

小老鼠
小老鼠Original
2024-05-02 09:51:17394Durchsuche

Dynamische Array-C-Sprachimplementierungsmethode: malloc und free: Verwenden Sie malloc(), um Speicher zuzuweisen, realloc(), um die Größe zu ändern, und free(), um Speicher freizugeben. Array-Funktionen in stdlib.h: realloc() ändert die Größe, calloc() erstellt und initialisiert auf 0, reallocarray() gibt die Anzahl der Elemente an.

Was sind die Implementierungsmethoden für dynamische Arrays in der C-Sprache?

Dynamisches Array C-Sprachimplementierungsmethode

Dynamisches Array ermöglicht es uns, die Array-Größe nach Bedarf zur Laufzeit anzupassen und so die Speicherverschwendung oder Überlaufprobleme zu vermeiden, die bei der Verwendung statischer Arrays auftreten. In der C-Sprache gibt es hauptsächlich zwei Möglichkeiten, dynamische Arrays zu implementieren:

malloc und free

malloc und free sind Funktionen in der C-Sprache für die dynamische Speicherzuweisung. Wir können malloc() verwenden, um einen Speicherblock zuzuweisen und darin Array-Elemente zu speichern. Bei Bedarf können Sie auch realloc() verwenden, um die zugewiesene Speichergröße zu ändern. Wenn das Array nicht mehr benötigt wird, sollte free() verwendet werden, um den zugewiesenen Speicher freizugeben.

Beispielcode:

<code class="c">#include <stdlib.h>

int main() {
    // 分配一个包含 10 个整数的动态数组
    int *array = (int *)malloc(10 * sizeof(int));

    // 访问和修改数组元素
    array[0] = 1;
    array[9] = 10;

    // 使用 realloc() 增大数组大小
    array = (int *)realloc(array, 20 * sizeof(int));

    // 释放动态数组
    free(array);

    return 0;
}</code>

Array-Funktionen in stdlib.h

Die C-Standardbibliothek bietet auch mehrere Funktionen für dynamische Arrays:

  • realloc(): Wie oben erwähnt, kann realloc( ) dazu verwendet werden Ändern Sie die zugewiesene Speichergröße.
  • calloc(): calloc() erstellt ein Array der angegebenen Größe und initialisiert alle seine Elemente auf 0.
  • reallocarray(): reallocarray() ist eine spezielle Version von realloc(), die es ermöglicht, die Größe des Arrays (in Anzahl der Elemente) anstelle der Anzahl der Bytes anzugeben.

Beispielcode:

<code class="c">#include <stdlib.h>

int main() {
    // 使用 calloc() 创建一个包含 10 个整数的动态数组,并将其元素初始化为 0
    int *array = (int *)calloc(10, sizeof(int));

    // 使用 reallocarray() 增大数组大小
    array = (int *)reallocarray(array, 20, sizeof(int));

    // 释放动态数组
    free(array);

    return 0;
}</code>

Das obige ist der detaillierte Inhalt vonWas sind die Implementierungsmethoden für dynamische Arrays in der C-Sprache?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn