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 type utilisateur et accès


Sujet :

C

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 7
    Points : 3
    Points
    3
    Par défaut Tableau de type utilisateur et accès
    Bonjour,

    Je suis face à un (non?)problème concernant les tableaux, un peu de code avant les questions :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    /* Définition d'un nouveau type "bloc" */
    typedef struct Bloc {
       int id;
       int x;
       int y;
    } bloc;
     
    /* Déclaration d'un tableau de blocs de 10*10 par exemple */
    bloc tab[10][10];
    Tout d'abord, est-ce qu'un tel tableau est valide? (Je pense que oui).
    Ensuite, si tel est le cas, peut on accéder à l'id du bloc présent dans tab[0][0]
    via tab[0][0].id ? Ce point la ne me semble pas valide et je ne trouve pas le moyen d'y accéder, c'est mon véritable problème.

    En remerciant d'avance toute bonne âme,
    Cordialement,
    Yakov.

  2. #2
    Membre habitué
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    81
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 81
    Points : 128
    Points
    128
    Par défaut
    Ce point la ne me semble pas valide et je ne trouve pas le moyen d'y accéder, c'est mon véritable problème.
    Pour moi, c'est valide.
    Que veux tu dire par "Je ne trouve pas le moyen d'y accéder" ?

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 7
    Points : 3
    Points
    3
    Par défaut
    Finalement après vérification le problème est ailleurs, dans l'exemple suivant par exemple :

    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
    25
    26
    27
    28
     
    #include <stdio.h>
     
    int main (int argc, const char * argv[]) {
     
    	typedef struct Bloc {
    		int x;
    		int y;
    	} bloc;
     
    	bloc newbloc[2][2];
     
    	newbloc[0][0].x = 10;
    	newbloc[0][0].y = 15;
    	newbloc[1][0].x = 20;
    	newbloc[1][0].y = 30;
    	newbloc[2][0].x = 40;
    	newbloc[2][0].y = 60;
    	newbloc[2][1].x = 80;
    	newbloc[2][1].y = 120;
     
    	printf("x00 : %d y00 : %d\n", newbloc[0][0].x, newbloc[0][0].y);
    	printf("x10 : %d y10 : %d\n", newbloc[1][0].x, newbloc[1][0].y);
    	printf("x20 : %d y20 : %d\n", newbloc[2][0].x, newbloc[2][0].y);
    	printf("x21 : %d y21 : %d\n", newbloc[2][1].x, newbloc[2][1].y);
     
        return 0;
    }
    Le code se comporte comme ceci en console, manifestement un problème au niveau de la mémoire, dont l'origine est très floue pour moi (je dispose de 4go de DDR3, étrange que 8 int provoquent ça) :

    Running…
    x00 : 10 y00 : 15
    x10 : 20 y10 : 30
    x20 : 40 y20 : 60
    x21 : 80 y21 : 120
    Program received signal: “EXC_BAD_ACCESS”.
    sharedlibrary apply-load-rules all
    No memory available to program now: unsafe to call malloc
    Unable to restore previously selected frame:
    Unable to restore previously selected frame:
    Cannot access memory at address 0x7800000050
    Cannot access memory at address 0x7800000050

    Merci pour la réponse

  4. #4
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 7
    Points : 3
    Points
    3
    Par défaut
    Autant pour moi, dans mon code j'ai alloué un tableau 2*2, et je feed celui-ci comme s'il était en 3*2.
    Etrange que le programme ai renvoyé de bons résultats sur une partie du tableau en principe non-déclarée

  5. #5
    Membre habitué
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    81
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 81
    Points : 128
    Points
    128
    Par défaut
    Citation Envoyé par Yakov Voir le message
    Etrange que le programme ai renvoyé de bons résultats sur une partie du tableau en principe non-déclarée
    Ca s'appelle un débordement de tampon.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    int entier = 0;     // Cet entier occupe, dans la pile, l'espace mémoire équivalent à tab[2] (3ème élément du tableau)
    int tab[2] = {0};   // Un tableau de 2 éléments, pas de 3...
     
    tab[0] = 1;
    tab[1] = 2;
    tab[2] = 3;     // Là, on n'est plus dans le tableau...
     
    printf("entier : %d", entier);  // Ca se confirme...

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 20/07/2011, 01h15
  2. [VBA Excel] Un tableau dynamique dans un type utilisateur?
    Par cyber_N dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 23/07/2006, 19h51
  3. Trier un tableau de type défini par l'utilisateur
    Par nonaparus dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 24/10/2005, 21h11
  4. [Debutant]reallocation de memoire d'un tableau de type perso
    Par killerjeff dans le forum Débuter
    Réponses: 3
    Dernier message: 04/08/2004, 17h09
  5. [MySql/PHPMyAdmin]nouvel utilisateur et acces table
    Par Bug's Bunny dans le forum Débuter
    Réponses: 6
    Dernier message: 28/07/2004, 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