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 :

Matrice de pointeur à initialiser..


Sujet :

C

  1. #1
    Membre régulier
    Homme Profil pro
    Inscrit en
    Avril 2011
    Messages
    75
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Avril 2011
    Messages : 75
    Points : 76
    Points
    76
    Par défaut Matrice de pointeur à initialiser..
    Bonjour,
    Je reviens aux bases car je m'aperçois qu'il y a quelques notions qui me font défaut. Voilà pour simplifier j'ai une structure avec un tableau dedans que je vais allouer dynamiquement. Mon pb n'est pas dans l'allocation mais dans l'initialisation --' :

    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
    struct s_test{
    char *tab[DIM1][DIM2];
    };
     
    extern struct s_test test; //avec la déclaration dans le .c (au niveau de la structure pas de pb)
     
    //Puis plus loin, au début du main, je veux l'initailiser, alors je fais d'une certaine façon mais j'ai bien peur que ca ne soit pas très juste.Ca compile hein mais bon je trouve qu'il y a bcp de boucle pour une initialisation...
     
    int k, l;
     
    for(k=0;k<DIM1;k++){
         for(l=0;l<DIM2;l++){
              test.tab[k][l] = NULL;
         }
    }
     
    // J'arrive pas à me satisfaire de ça, où est le pb? Et comment je dois faire pour vmt tout mettre à NULL?
     
    //Merci d'avance

  2. #2
    Membre expérimenté Avatar de Ngork
    Homme Profil pro
    Barbare IT
    Inscrit en
    Avril 2009
    Messages
    160
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Barbare IT
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2009
    Messages : 160
    Points : 1 372
    Points
    1 372
    Par défaut OK
    Tel que je lis ton code, je ne vois pas de faute a priori : tu es bien obligé de faire deux boucles imbriquées si tu veux initialiser un par un les pointeurs de ton tableau à deux dimensions.

    Maintenant, si cette initialisation se fait avec le pointeur NULL systématique, cela revient à remplir ton tableau de DIM1 * DIM2 pointeurs avec des zéros, ce qui peut se faire plus rapidement par un memset(test.tab,0,DIM1*DIM2*sizeof(char *)), à mon avis ...

  3. #3
    Membre régulier
    Homme Profil pro
    Inscrit en
    Avril 2011
    Messages
    75
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Avril 2011
    Messages : 75
    Points : 76
    Points
    76
    Par défaut
    Nickel, c'est ce genre de fonction que je cherchais! Merci beaucoup!

  4. #4
    Modérateur

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2009
    Messages
    1 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2009
    Messages : 1 395
    Points : 2 002
    Points
    2 002
    Par défaut
    Citation Envoyé par Ngork Voir le message
    ce qui peut se faire plus rapidement par un memset(test.tab,0,DIM1*DIM2*sizeof(char *))
    Ceci doit fonctionner aussi et est plus lisible:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    memset(test.tab,0, sizeof(test.tab))
    En revanche cela ne fonctionnera que si test.tab est un tableau statique et pas un tableau dynamique...
    Documentation officielle GTK+ 3:
    GTK en C, GTK en Python

    Tutoriels GTK+ 3:
    GTK en C, GTK en Python

    Tutoriels par l'exemple (platform-demos):
    GTK (tous langages)

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. matrice et pointeur en c
    Par khaoula aluoahk dans le forum C
    Réponses: 1
    Dernier message: 21/04/2011, 07h14
  2. matrice et pointeurs
    Par z.rhita dans le forum C
    Réponses: 7
    Dernier message: 28/11/2010, 13h09
  3. Réponses: 3
    Dernier message: 31/05/2010, 17h18
  4. structure, matrice et pointeurs
    Par Margatthieu dans le forum C
    Réponses: 15
    Dernier message: 13/01/2008, 23h17
  5. Matrice de pointeurs de fonctions
    Par sebduth dans le forum C
    Réponses: 15
    Dernier message: 18/07/2003, 14h03

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