Maison  >  Article  >  Quelles sont les méthodes d’implémentation du tableau dynamique en langage C ?

Quelles sont les méthodes d’implémentation du tableau dynamique en langage C ?

小老鼠
小老鼠original
2024-05-02 09:51:17445parcourir

Méthode d'implémentation du langage C du tableau dynamique : malloc et free : utilisez malloc() pour allouer de la mémoire, realloc() pour modifier la taille et free() pour libérer de la mémoire. Fonctions de tableau dans stdlib.h : realloc() modifie la taille, calloc() crée et initialise à 0, reallocarray() spécifie le nombre d'éléments.

Quelles sont les méthodes d’implémentation du tableau dynamique en langage C ?

Méthode d'implémentation du langage C du tableau dynamique

Le tableau dynamique nous permet d'ajuster la taille du tableau selon les besoins au moment de l'exécution, évitant ainsi les problèmes de gaspillage de mémoire ou de débordement rencontrés lors de l'utilisation de tableaux statiques. En langage C, il existe deux manières principales d'implémenter des tableaux dynamiques :

malloc et free

malloc et free sont des fonctions en langage C pour l'allocation dynamique de mémoire. Nous pouvons utiliser malloc() pour allouer un bloc de mémoire et y stocker les éléments du tableau. Si vous le souhaitez, vous pouvez également utiliser realloc() pour modifier la taille de la mémoire allouée. Lorsque le tableau n'est plus nécessaire, free() doit être utilisé pour libérer la mémoire allouée.

Exemple de code :

<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>

Fonctions de tableau dans stdlib.h

La bibliothèque standard C fournit également plusieurs fonctions pour les tableaux dynamiques :

  • realloc() : Comme mentionné ci-dessus, realloc() peut être utilisée pour modifier la taille de la mémoire allouée.
  • calloc() : calloc() crée un tableau de la taille spécifiée et initialise tous ses éléments à 0.
  • reallocarray() : reallocarray() est une version spéciale de realloc() qui permet de spécifier la taille du tableau (en nombre d'éléments) au lieu du nombre d'octets.

Exemple de code :

<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>

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn