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 :

questions sur les tabs a plusieurs dimensions


Sujet :

C

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 8
    Points : 1
    Points
    1
    Par défaut questions sur les tabs a plusieurs dimensions
    bonjour a tous je suis nouveau ici et je commence a apprendre les structures et les tableaux en C et je m'y perd un peu voila.

    ma 1ere question c :
    Si on déclare tab par : int tab [3] [2]; et p par : int *p=(int*)tab;
    tab[i] [j] est il égal à *(p+2j+i) ou *(p+3j+i) ou *(p+j+2i) ou *(p+j+3i)

    g le choix entre 4 réponses lol

    la 2ème c si on déclare int tab [3] [2]
    -quel est le type de tab ?
    -quel est le type de tab[i] ?
    -quel est le type de tab[i] [j] ?

    c des questions que je risque d'avoir à l'examen alors je voudrais bien savoir les réponses.

    merci d'avance pour vos réponses.

    ps:je risque d'en avoir encore je cherche aussi en mm temps sur les tuto mais des fois c des questions à la con.

  2. #2
    Membre actif Avatar de sorry60
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    802
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 802
    Points : 253
    Points
    253
    Par défaut Re: questions sur les tabs a plusieurs dimensions
    Citation Envoyé par rosviper45
    g le choix entre 4 réponses lol

    la 2ème c si on déclare int tab [3] [2]
    -quel est le type de tab ?
    -quel est le type de tab[i] ?
    -quel est le type de tab[i] [j] ?
    tab : int**
    tab[i] : int*
    tab[i][j] : int

    C'est mon dernier mot !
    Si je pleure encore qu'un jour tu me reviennes,
    C'est que sans toi je suis comme un Roi sans sa Reine.

  3. #3
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 8
    Points : 1
    Points
    1
    Par défaut
    merci sorry60

    et la 1ere question tu sais pas ?
    elle est chelou je trouve lol

    simer bonne continuation

  4. #4
    Membre habitué Avatar de semaj_james
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    193
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 193
    Points : 139
    Points
    139
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    ma 1ere question c :
    Si on déclare tab par : int tab [3] [2]; et p par : int *p=(int*)tab;
    tab[i] [j] est il égal à *(p+2j+i) ou *(p+3j+i) ou *(p+j+2i) ou *(p+j+3i)
    un tableau c'est une suite de case memoire:
    tab[0][0] à la position 0
    tab[0][1] à la position 1
    tab[1][0] à la position 2
    tab[1][1] à la position 3
    tab[2][0] à la position 4
    tab[2][1] à la position 5

    donc la position est: (i)*(2)+(j)

    2 represente le nombre de colonnes.

    tab[i] [j] = *(tab+(i*2+j))

  5. #5
    Expert éminent sénior
    Avatar de diogene
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Juin 2005
    Messages
    5 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 761
    Points : 13 926
    Points
    13 926
    Par défaut
    si on déclare int tab [3] [2]
    -quel est le type de tab ?
    -quel est le type de tab[i] ?
    -quel est le type de tab[i] [j] ?
    sorry60 :
    tab : int**
    Non, tab n'est pas l'adresse d'un pointeur sur int. Le type de tab est int * [2], adresse d'un tableau de deux int. Il est transtypable sans risque, non pas en int**, mais en int* puisque sa valeur est l'adresse du premier int du tableau de 6 int
    Publication : Concepts en C

    Mon avatar : Glenn Gould

    --------------------------------------------------------------------------
    Une réponse vous a été utile ? Remerciez son auteur en cliquant le pouce vert !

  6. #6
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 8
    Points : 1
    Points
    1
    Par défaut
    merci bcp c déja bien plus clair maintenant.
    8)

    g d'autre questions sur les structures.

    -si on a x->y.z
    quel est le type de x, y et z ?

    et si on a x->y[z]
    quel est le type de x, y et z ?

    encore merci pour vos rép.
    c trop facile pour vous lol

  7. #7
    Membre habitué Avatar de semaj_james
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    193
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 193
    Points : 139
    Points
    139
    Par défaut
    g d'autre questions sur les structures.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    struct date {
       int jour, mois, annee;
    };
     
    int main{
     
    struct date d1,*p;
     
    return 0
    }
    Pour mettre une valeur tu fais:
    si tu pointes sur une structure:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    p=&d;
    (*p).jour=25;  //ce qui est lourd comme ecriture donc on fait:
    p->jour=25;

  8. #8
    Expert éminent sénior
    Avatar de diogene
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Juin 2005
    Messages
    5 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 761
    Points : 13 926
    Points
    13 926
    Par défaut
    si on a x->y.z
    quel est le type de x, y et z ?
    x est un pointeur sur une structure. Cette structure a un champ y
    Le champ y est une structure qui a un champ z
    On ne peut rien dire sur le type de z
    si on a x->y[z]
    quel est le type de x, y et z ?
    x est un pointeur sur une structure. Cette structure a un champ y
    Le champ y est un tableau de quelque chose (ou un pointeur contenant l'adresse d'un tableau de quelque chose)
    z est un type entier
    Publication : Concepts en C

    Mon avatar : Glenn Gould

    --------------------------------------------------------------------------
    Une réponse vous a été utile ? Remerciez son auteur en cliquant le pouce vert !

  9. #9
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 8
    Points : 1
    Points
    1
    Par défaut
    si g bien compris....

    Citation Envoyé par rosviper45
    -si on a x->y.z
    le type de x c un pointeur sur la structure bon ca oki c pas dur.
    mé aprés le type de y c koi si c une structure aussi ?

    et z c un champ de la structure y qui est elle meme un champ de la structure pointée par x
    c tirer par les cheveux lol

    Citation Envoyé par diogene
    Le champ y est un tableau de quelque chose (ou un pointeur contenant l'adresse d'un tableau de quelque chose)
    z est un type entier
    diogene tu peux me réexpliquer ca et comment tu déduis que z est de type int

    merci

  10. #10
    Expert éminent sénior
    Avatar de diogene
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Juin 2005
    Messages
    5 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 761
    Points : 13 926
    Points
    13 926
    Par défaut
    mé aprés le type de y c koi si c une structure aussi ?
    Comme tu es nouveau sur le forum, je t'invite à en lire les règles. Tu verras que ce type de jargonnage sms n'est pas admis.
    y est donc un struct (ou une union)
    z c un champ de la structure y qui est elle meme un champ de la structure pointée par x
    Oui. Une structure dans une structure n'est pas quelque chose de spécialement ésotérique
    comment tu déduis que z est de type int
    Je n'ai pas dit int, j'ai dit un type entier ( char , short, int , long,..unsigned ou non) parce que les indices de tableau doivent être des types entiers.
    Publication : Concepts en C

    Mon avatar : Glenn Gould

    --------------------------------------------------------------------------
    Une réponse vous a été utile ? Remerciez son auteur en cliquant le pouce vert !

  11. #11
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par rosviper45
    Citation Envoyé par rosviper45
    -si on a x->y.z
    le type de x c un pointeur sur la structure bon ca oki c pas dur.
    Ok, mais tu peux l'écrire en français ?
    mais aprés, le type de y c'est quoi si c'est une structure aussi ?
    struct type_de_y. Ca dépend comment a été défini y.
    et z c un champ de la structure y qui est elle meme un champ de la structure pointée par x
    c tirer par les cheveux lol
    Ben non. C'est de l'organisation de données, c'est tout. Va falloir t'y habituer, c'est un principe général en informatique : la structuration...
    Pas de Wi-Fi à la maison : CPL

  12. #12
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 8
    Points : 1
    Points
    1
    Par défaut
    merci tout le monde.
    Je suis désolé j'ai voulu écrire un peu vite.

    8)

  13. #13
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 8
    Points : 1
    Points
    1
    Par défaut
    J'aurais encore besoin d'aide sur 2 ou 3 points.

    voilà :

    -est ce que la taille d'une structure peut dépendre de l'ordre de déclaration de ses champs ?
    -est ce que l'on peut créer un tableau de structures ?
    -et est ce que la taille mémoire attribuée à un struct est égale à la somme des tailles mémoires attribuées à chacun de ses champs ?

    merci.

  14. #14
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par rosviper45
    -est ce que la taille d'une structure peut dépendre de l'ordre de déclaration de ses champs ?
    Oui
    -est ce que l'on peut créer un tableau de structures ?
    Oui
    -et est ce que la taille mémoire attribuée à un struct est égale à la somme des tailles mémoires attribuées à chacun de ses champs ?
    Non.
    Et pour répondre à ta prochaine question : Les structures sont faites pour organiser les données en mémoire, pas pour mapper des flux de bytes. On ne peux donc pas faire d'hypothèse sur la taille des objets et ça n'interesse d'ailleurs personne de sensé.
    Pas de Wi-Fi à la maison : CPL

  15. #15
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 8
    Points : 1
    Points
    1
    Par défaut
    merci beaucoup Emmanuel.

    encore 2 ou 3 questions

    -que signifie la déclaration int (*f [] )() ?
    -que représente p dans la déclaration char(*p)[2] ?
    -quelle est la différence entre un fichier texte et un fichier binaire ?

    désolé de vous posez des questions brutes comme ça mais c'est comme ça qu'on me les pose.

    merci

  16. #16
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par rosviper45
    -que signifie la déclaration int (*f [] )() ?
    Dans le cadre d'un paramètre uniquement :

    f est un pointeur sur un tableau de pointeurs de fonctions dont l'interface est :
    -que représente p dans la déclaration char(*p)[2] ?
    p est un pointeur sur un tableau de 2 char.
    -quelle est la différence entre un fichier texte et un fichier binaire ?
    http://emmanuel-delahaye.developpez....s.htm#fichiers
    désolé de vous posez des questions brutes comme ça mais c'est comme ça qu'on me les pose.
    Bref, tu nous demandes de faire tes exercices à ta place... Qui est-ce qu'on évalue ? Nous ou toi ?
    Pas de Wi-Fi à la maison : CPL

  17. #17
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 8
    Points : 1
    Points
    1
    Par défaut
    merci beaucoup mais j'ai un prof qui nous apprend rien alors pour être évalué sur quelque chose, il faut déjà connaitre la chose. Bref des questions j'en ai plus de 150 et il y en a pas beaucoup pour lesquelles je vous ai demandé les réponses lol.

    encore merci a toi emmanuel.

    A+ 8)

Discussions similaires

  1. [SSAS]Question sur les dimensions
    Par geof dans le forum SSAS
    Réponses: 2
    Dernier message: 19/09/2008, 15h49
  2. Réponses: 2
    Dernier message: 18/03/2008, 21h45
  3. une question sur les Tab de TPageControl
    Par Flow_75 dans le forum C++Builder
    Réponses: 10
    Dernier message: 27/12/2006, 15h48
  4. plusieurs questions sur les Dll
    Par mnaulet dans le forum Windows
    Réponses: 4
    Dernier message: 07/08/2006, 08h39
  5. Réponses: 4
    Dernier message: 11/09/2004, 16h38

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