IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

Initialiser un Tableau 2D de taille variable


Sujet :

C

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2015
    Messages : 5
    Points : 3
    Points
    3
    Par défaut Initialiser un Tableau 2D de taille variable
    Bonjour,

    Voici le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
     
    int main()
    {
       int i, j;
       int tailleX = 5, tailleY = 3;
       int num1[tailleX][tailleY] = {{0,0,1},
                                          {0,0,1},
                                          {0,0,1},
                                          {0,0,1},
                                          {0,0,1}};
       for (i = 0; i > tailleX; i++)
       {
          num1[i][];
          for(j = 0; j > tailleX; j++)
          {
            num1[][j];
          }
     
       }
     
     
    return 0;
     
    }
    J'aimerais que de base mon tableau soit de 5*3 comme le montre tailleX et tailleY
    mais que ces 2 variables puissent être modifiées par un calcul,
    ce qui fera varier la taille du tableau en "agrandissant" aussi le contenue du tableau.
    Comment faire ?

  2. #2
    Membre averti
    Homme Profil pro
    Inscrit en
    Juillet 2012
    Messages
    200
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Bénin

    Informations forums :
    Inscription : Juillet 2012
    Messages : 200
    Points : 342
    Points
    342
    Par défaut
    1) Utiliser un pointeur
    2) Récupérer la taille du tableau
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    scanf("%d %d", &tailleX, &tailleY);
    3) Allouer la mémoire nécessaire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    p = malloc((tailleX * tailleY) * sizeof(int));
    4) Utiliser ton pointeur comme un tableau...

  3. #3
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2015
    Messages : 5
    Points : 3
    Points
    3
    Par défaut
    Ok donc si j'agrandis mon tableau genre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    int relation = 1.5;
    tailleX = tailleX * relation;
    tailleY = tailleY * relation;
    la colonne des 1 qui est à droite va s'agrandir aussi ?

  4. #4
    Membre averti
    Homme Profil pro
    Inscrit en
    Juillet 2012
    Messages
    200
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Bénin

    Informations forums :
    Inscription : Juillet 2012
    Messages : 200
    Points : 342
    Points
    342
    Par défaut
    Non !
    En langage C, la taille d'un tableau est définie lors de da déclaration et elle ne peut plus varier. Par exemple avec la déclaration
    tab représente un tableau de 10 entiers. Le nombre d'éléments de tab ne peut plus être modifié.
    Dans ton cas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    int tailleX= 5, tailleY = 3;
    int num1[tailleX][tailleY] = {...};
    int relation = 1.5;
    tailleX = tailleX * relation;
    tailleY = tailleY * relation;
    Modifier la valeurs des variables tailleX et tailleY n'a aucun effet sur la taille du tableau qui est définitivement fixé.
    Si tu veux utiliser des tableaux de taille variable, il te faudra faire joujou avec les pointeurs.

  5. #5
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2015
    Messages : 5
    Points : 3
    Points
    3
    Par défaut
    Ca tombe bien j'adore les pointeurs :p
    Ca s'annonce plus difficile que prévu...
    Et ca peut marcher si je crée un nouveau tableau plus grand avec le même calcul
    mais tout ça à partir d'un tableau de référence ?

Discussions similaires

  1. Classe pour tableau d'entiers à taille variable
    Par Jéjé34 dans le forum Débuter
    Réponses: 15
    Dernier message: 28/03/2013, 20h27
  2. Réponses: 4
    Dernier message: 28/11/2011, 08h57
  3. Réponses: 1
    Dernier message: 14/09/2006, 10h53
  4. [TP] Tableau de taille variable
    Par Ripley dans le forum Turbo Pascal
    Réponses: 4
    Dernier message: 30/01/2006, 15h36
  5. Comment obtenir un tableau à taille variable ?
    Par marsupilami34 dans le forum Langage
    Réponses: 6
    Dernier message: 27/06/2005, 15h03

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo