none
Création tableau dynamique en c RRS feed

  • Question

  • Bonjour à tous, voilà mon problème.

    J'aimerais créer un tableau dont la taille serait 3 fois plus grande qu'une variable dont je connais la valeur.

    Du genre,   

    variable=5;

    char tableau[3*variable];

    Je suppose qu'il faut utiliser les pointeurs, j'ai essayé différentes choses mais j'ai toujours des problèmes à la compilation.

    Merci d'avance pour votre aide

    Gourou961
    mardi 14 octobre 2008 14:47

Réponses

  • Bonjour,

     

    En langage C, il n'est pas possible de créer des tableaux dynamiquement via la syntaxe que vous avez évoqué.

    Il faut allouer votre tableau dans le tas via la fonction "malloc" (et ne pas oublier de la libérer via la fonction "free").

     

    Code Snippet

    char* tableau

    tableau = (char*)malloc(sizeof(char) * 3 * variable);  //Allouer une zone mémoire de 3 * variable * taille d'un char.

     

    tableau[0] = ....;

    ... = tableau[4];

     

    free(tableau); //Détruire le tableau

     

     

    Cordialement

    mardi 14 octobre 2008 19:57
    Modérateur

Toutes les réponses

  • Bonjour,

     

    En langage C, il n'est pas possible de créer des tableaux dynamiquement via la syntaxe que vous avez évoqué.

    Il faut allouer votre tableau dans le tas via la fonction "malloc" (et ne pas oublier de la libérer via la fonction "free").

     

    Code Snippet

    char* tableau

    tableau = (char*)malloc(sizeof(char) * 3 * variable);  //Allouer une zone mémoire de 3 * variable * taille d'un char.

     

    tableau[0] = ....;

    ... = tableau[4];

     

    free(tableau); //Détruire le tableau

     

     

    Cordialement

    mardi 14 octobre 2008 19:57
    Modérateur
  • Ok, j'ai réussi à faire ce que je voulais

    Merci

    Gourou961
    mercredi 15 octobre 2008 13:37