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 :

Tableau de pointeurs de structures


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 2
    Par défaut Tableau de pointeurs de structures
    Bonjour,

    mon but est d'avoir un tableau à deux dimensions de structures.
    donc usersasc[1][2] accède à la 2e structure de l'ascenseur 1.
    J'ai iNbasc threads qui représentent chacun un ascenseur. Chaque thread accède à ce tableau (sans conflits rassurez-vous). Je réserve donc la mémoire comme ceci :

    SUser** usersasc;

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    if((usersasc = (SUser**)malloc(iNbasc*sizeof(SUser*))) == NULL)
          {
    	perror
    	  ("Erreur dans la fonction main : Erreur d'allocation memoire infoasc");
    	exit(EXIT_FAILURE);
          }
        for(i = 0; i<iCapacite; i++) {
          if((usersasc[i] = (SUser*)malloc(iCapacite*sizeof(SUser))) == NULL)
    	{
    	  perror
    	    ("Erreur ds la fonction main : allocation memoire usersasc");
    	  exit(EXIT_FAILURE);
    	}
        }
    Ce qui compile et fonctionne bien pour 1 seul ascenseur. Je peux accéder à usersasc[0][i < iCapacite] sans probleme.
    Si je lance le programme pour + que 1 ascenseur avec capacite = 1 et si j'essaie d'accéder à usersasc[1][i < iCapacite](ce qui arrive souvent ds le prog), le programme se fige (même pas de seg fault).

    Voyez-vous une erreur dans mon malloc ? La faute vient de là j'ai fini par la localiser mais je ne vois pas ce qui cloche.

    Merci

  2. #2
    Rédacteur
    Avatar de Vincent Rogier
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    2 373
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 373
    Par défaut
    Cela ne serait pas plutôt ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    for(i = 0; i<iNbasc; i++) 
    {
    }
    Vincent Rogier.

    Rubrique ORACLE : Accueil - Forum - Tutoriels - FAQ - Livres - Blog

    Vous voulez contribuer à la rubrique Oracle ? Contactez la rubrique !

    OCILIB (C Driver for Oracle)

    Librairie C Open Source multi-plateformes pour accéder et manipuler des bases de données Oracle

  3. #3
    Nouveau candidat au Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 2
    Par défaut
    merci en effet

    voilà ce qui arrive quand on ne fait pas de pause sur sa journée

Discussions similaires

  1. Tableau de pointeurs sur Structure
    Par kenzo75 dans le forum C
    Réponses: 18
    Dernier message: 02/02/2013, 09h24
  2. Tableau de pointeurs de structures
    Par zeracoa dans le forum C
    Réponses: 7
    Dernier message: 20/12/2012, 15h49
  3. tableau de pointeur de structure
    Par kayenne77 dans le forum Débuter
    Réponses: 5
    Dernier message: 24/01/2009, 18h18
  4. Réponses: 67
    Dernier message: 13/02/2007, 18h08
  5. structure, tableau et pointeur
    Par Phil' dans le forum GTK+ avec C & C++
    Réponses: 16
    Dernier message: 26/05/2006, 17h47

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