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 :

Placer un tableau dans une structure


Sujet :

C

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2022
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2022
    Messages : 21
    Points : 8
    Points
    8
    Par défaut Placer un tableau dans une structure
    Bonjour à tous,
    J'essaie depuis un moment de crée une structure Identite dans le ficher header.h que j'ai inclu dans le fichier principal

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    #ifndef HEADER_H_INCLUDED
    #define HEADER_H_INCLUDED
     struct Identite
     {
         char nom[100]="toufik";
         int age;
     };
     
     
    #endif // HEADER_H_INCLUDED
    Le débogueur m'indique le message suivant
    line 5 E:\language c\convert\header.h|5|error: expected ':', ',', ';', '}' or '__attribute__' before '=' token|
    Alors que dans le fichier main.c , quand je mets
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    #include <stdio.h>
    #include <stdlib.h>
    #include "header.h"
     
    int main ()
    {
     char nom[100]="toufik";
     printf("%s",nom);
     
     
        return 0;
    }
    Tous marche bien et je peux imprimer la valeur du nom.
    c'est quoi le problème, pourquoi ça marche dans le fichier principal et ça marche pas dans le fichier header. ??

    Merci d'avance

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Analyste/ Programmeur
    Inscrit en
    Juillet 2013
    Messages
    4 630
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Analyste/ Programmeur

    Informations forums :
    Inscription : Juillet 2013
    Messages : 4 630
    Points : 10 556
    Points
    10 556
    Par défaut
    En gros, avec ta structure (code 1), tu définis 1 structure st1 dont tu ne peux pas donner de valeurs par défaut pour tel ou tel champs.

    Dans ton main (code 2), tu définis 1 variable et tu lui affectes 1 valeur par défaut.

    Pour donner des valeurs par défaut pour tel ou tel champs d'une structure soit
    • tu codes 1 "constructeur" - 1 fonction qui initialise et/ ou réinitialise 1 variable de type st1, comme en C++ par exemple
    • tu crées 1 variable de type st1 très très souvent "globale" avec les valeurs par défaut et qu'ensuite tu vas affecter à tes variables.

  3. #3
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 689
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 689
    Points : 30 983
    Points
    30 983
    Billets dans le blog
    1
    Par défaut
    Bonjour
    Citation Envoyé par Izem2022 Voir le message
    c'est quoi le problème, pourquoi ca marche dans le fichier principal et ça marche pas dans le fichier header. ??
    Ce n'est pas une histoire de header/pas header, c'est juste que le membre d'une structure ne peut pas être initialisé lors de la définition de la structure.
    D'ailleurs à quoi cela servirait d'avoir une structure avec un membre ayant toujours la même valeur? La structure sert à accoler des variables ensembles pour former un tout. Une structure avec un membre constant devient inutile (dans ce cas on associé directement la constante avec la variable dans le programme).

    Et pour ta seconde instruction char nom[100]="toufik", il faut faire attention à cette syntaxe "tableau=valeur" car elle n'est autorisée qu'à la création du tableau. Après cela n'est plus possible.
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  4. #4
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2022
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2022
    Messages : 21
    Points : 8
    Points
    8
    Par défaut
    Citation Envoyé par foetus Voir le message
    En gros, avec ta structure (code 1), tu définis 1 structure st1 dont tu ne peux pas donner de valeurs par défaut pour tel ou tel champs.

    Dans ton main (code 2), tu définis 1 variable et tu lui affectes 1 valeur par défaut.

    Pour donner des valeurs par défaut pour tel ou tel champs d'une structure soit
    • tu codes 1 "constructeur" - 1 fonction qui initialise et/ ou réinitialise 1 variable de type st1, comme en C++ par exemple
    • tu crées 1 variable de type st1 très très souvent "globale" avec les valeurs par défaut et qu'ensuite tu vas affecter à tes variables.
    D'accord merci pour l'explication je comprends

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2022
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2022
    Messages : 21
    Points : 8
    Points
    8
    Par défaut
    Citation Envoyé par Sve@r Voir le message
    Et pour ta seconde instruction char nom[100]="toufik", il faut faire attention à cette syntaxe "tableau=valeur" car elle n'est autorisée qu'à la création du tableau. Après cela n'est plus possible.
    D'accord merci je comprends
    Maintenant si je veux attribuer une valeur à la variable martin de la structure Identite

    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
    #include <stdlib.h>
    #include "header.h"
     
    int main ()
    {
     
     Identite martin;
     toufik.nom="izem";
     
     //  ca ne marche pas parce que message erreur "E:\language c\convert\main.c|10|error: assignment to expression with array type|"
     
     toufik.age=20;"
     
        return 0;
    }
    Si je comprends bien, je ne peux pas utiliser cette méthode pour remplir le tableau nom, comment je vais faire ?? quelle est l'autre méthode pour remplir un tableau de chaine de caractère ?

  6. #6
    Membre expérimenté Avatar de edgarjacobs
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2011
    Messages
    625
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2011
    Messages : 625
    Points : 1 559
    Points
    1 559
    Par défaut
    Alors, tu as

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    int main(void) {
        Identite personne={"Touffik",20};
        ....
    }
    qui initialise les membre de la structure, ou encore

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    #include <string.h>
     
    int main(void) {
        Identite personne;
     
        strcpy(personne.nom,"Touffik");
        personne.age=20
       ....
    }
    On écrit "J'ai tort" ; "tord" est la conjugaison du verbre "tordre" à la 3ème personne de l'indicatif présent

  7. #7
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 689
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 689
    Points : 30 983
    Points
    30 983
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Izem2022 Voir le message
    Si je comprends bien, je ne peux pas utiliser cette méthode pour remplir le tableau nom, comment je vais faire ?? quelle est l'autre méthode pour remplir un tableau de chaine de caractère ?
    Un tableau en C n'est pas un élément manipulable. Tu n'as par exemple pas le droit d'écrire if ("hello" == "hello") car cette instruction ne compare pas les tableaux entre eux mais seulement leur adresse mémoire (qui n'est évidemment pas la même pour les deux).
    Un tableau se manipule (se remplit, se compare, s'affiche) caractère par caractère via une boucle.

    Fort heureusement la librairie C possède des fonctions dites "de base", fonctions créées par les concepteurs du C et certaines d'entre elles, nommées "strXXX()" sont dédiées à traiter les chaines. Donc tu leurs files les chaines (ou les tableaux de char) et elles s'occupent via les boucles qui vont bien de les remplir (strcpy) ou les comparer (strcmp).
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  8. #8
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2022
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2022
    Messages : 21
    Points : 8
    Points
    8
    Par défaut
    Citation Envoyé par edgarjacobs Voir le message
    Merci donc pour remplir le tableau je dois faire recours au fonction

    Citation Envoyé par Sve@r Voir le message
    Ha d'accord merci pour les explications je comprends mieux là

  9. #9
    Membre éprouvé
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    1 821
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 1 821
    Points : 979
    Points
    979
    Par défaut
    Citation Envoyé par edgarjacobs Voir le message
    Alors, tu as
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    int main(void) {
        Identite personne={"Touffik",20};
        ....
    }
    Personnellement, j'initialise mes structure de cette manière, c'est un peu plus clair à la lecture je trouve :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    int main(void) {
        Identite personne={.nom = "Touffik", .age = 20};
        ....
    }
    @Izem2022 : Il faut bien comprendre que "personne.nom" est une variable qui doit être manipulée comme un pointeur de type "char*". La différence entre un pointeur et un tableau, c'est juste que le tableau implique une réservation de l'espace mémoire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    Identite personne={"Touffik",20};
    char * ptr;
     
    printf("nom : ");
    ptr = personne.nom;
    while(*ptr != '\0'){ // la fin de la chaine fini par '\0'
       printf("%c", *ptr);
       ptr++;
    }
    printf("\r\n");
    Le même code uniquement avec un pointeur (la réservation de l'espace mémoire est faite via la variable data):
    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
     
    typedef struct {
         char * nom;
         int age;
    } Identite2;
     
    char data[100] = "Touffik";
    Identite2 personne2 = {.nom = data, .age = 20};
    char * ptr;
     
    printf("nom : ");
    ptr = personne2.nom;
    while(*ptr != '\0'){ // la fin de la chaine fini par '\0'
       printf("%c", *ptr);
       ptr++;
    }
    printf("\r\n");
    ... je t'invite à lire quelques cours sur les pointeurs

  10. #10
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 689
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 689
    Points : 30 983
    Points
    30 983
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par boboss123 Voir le message
    Personnellement, j'initialise mes structure de cette manière, c'est un peu plus clair à la lecture je trouve :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    int main(void) {
        Identite personne={.nom = "Touffik", .age = 20};
        ....
    }
    Ah !!! Je ne connaissais pas cette syntaxe. J'ai appris un truc (qui ne me servira probablement à rien tellement ça fait longtemps que je ne développe plus en C )

    Citation Envoyé par boboss123 Voir le message
    ... je t'invite à lire quelques cours sur les pointeurs
    A mon avis, il n'en est pas encore là...
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  11. #11
    Modérateur

    Avatar de Bktero
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Juin 2009
    Messages
    4 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués

    Informations forums :
    Inscription : Juin 2009
    Messages : 4 481
    Points : 13 679
    Points
    13 679
    Billets dans le blog
    1
    Par défaut
    Cette syntaxe s'appelle "designated initializers" https://gradot.wordpress.com/2012/05...ializers-en-c/ Elle est arrivée en C99.

    Elle vient d'arriver en C++, avec la version 20 : https://www.modernescpp.com/index.ph...d-initializers

    Il y a de légères différences entre les versions C et C++ de cette feature. Elles sont listées à la fin de l'article sur ModernesCpp

  12. #12
    Membre éprouvé
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    1 821
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 1 821
    Points : 979
    Points
    979
    Par défaut
    Citation Envoyé par Sve@r Voir le message
    Ah !!! Je ne connaissais pas cette syntaxe. J'ai appris un truc (qui ne me servira probablement à rien tellement ça fait longtemps que je ne développe plus en C )
    ... et tu n'es pas obligé de déclarer les valeurs de tous les éléments de la structure : c'est bien pratique lorsque tu as une structure avec beaucoup d'éléments ou que tu as besoin de la faire évoluer

  13. #13
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2022
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2022
    Messages : 21
    Points : 8
    Points
    8
    Par défaut
    Citation Envoyé par boboss123 Voir le message
    Personnellement, j'initialise mes structure de cette manière, c'est un peu plus clair à la lecture je trouve :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    int main(void) {
        Identite personne={.nom = "Touffik", .age = 20};
        ....
    }
    @Izem2022 : Il faut bien comprendre que "personne.nom" est une variable qui doit être manipulée comme un pointeur de type "char*". La différence entre un pointeur et un tableau, c'est juste que le tableau implique une réservation de l'espace mémoire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    Identite personne={"Touffik",20};
    char * ptr;
     
    printf("nom : ");
    ptr = personne.nom;
    while(*ptr != '\0'){ // la fin de la chaine fini par '\0'
       printf("%c", *ptr);
       ptr++;
    }
    printf("\r\n");
    Le même code uniquement avec un pointeur (la réservation de l'espace mémoire est faite via la variable data):
    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
     
    typedef struct {
         char * nom;
         int age;
    } Identite2;
     
    char data[100] = "Touffik";
    Identite2 personne2 = {.nom = data, .age = 20};
    char * ptr;
     
    printf("nom : ");
    ptr = personne2.nom;
    while(*ptr != '\0'){ // la fin de la chaine fini par '\0'
       printf("%c", *ptr);
       ptr++;
    }
    printf("\r\n");
    ... je t'invite à lire quelques cours sur les pointeurs
    Merci pour l'explication , je ne connaissais pas cette syntaxe, pour les pointeurs, j'ai étudié les pointeurs mais apparemment je les ai pas compris , je dois les refaire de nouveau

    Citation Envoyé par Sve@r Voir le message


    A mon avis, il n'en est pas encore là...
    si lo j'ai fait les pointeurs mais la je comprends que je n'ai pas compris les pointeurs je vais les revoir

  14. #14
    Membre éprouvé
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    1 821
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 1 821
    Points : 979
    Points
    979
    Par défaut
    Citation Envoyé par Izem2022 Voir le message
    si lo j'ai fait les pointeurs mais la je comprends que je n'ai pas compris les pointeurs je vais les revoir
    Ce qu'il faut comprendre, c'est que lorsque tu manipules un pointeur, c'est la même chose que lorsque tu manipules un tableau et vis-versa :

    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
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
     
    unsigned int i;
     
    char personne[] = "Touffik";
    // Équivaut à :
    // char personne[8];
    // personne[0] = 'T';
    // personne[1] = 'o';
    // personne[2] = 'u';
    // personne[3] = 'f';
    // personne[4] = 'f';
    // personne[5] = 'i';
    // personne[6] = 'k';
    // personne[7] = '\0'; // caractère de fin de chaine => c'est ce qui permet de détecter la fin d'une chaine
     
    char * ptr = &personne[0]; // vu que la valeur de personne est l'adresse du début du tableau, on peut aussi écrire : ptr = personne;
     
    printf("valeur de personne (adresse du début du tableau) : %p\r\n", personne);
    printf("valeur de ptr : %p\r\n", ptr);
     
    // Via la déclaration de personne, le compilateur va réserver automatiquement l'espace mémoire pour stocker le tableau
    // Une fois ptr initialisé, la grosse différence avec personne, c'est ce que renvoie sizeof() :
    // - sizeof(personne) vaut 8 (la taille du tableau)
    // - sizeof(ptr) vaut la taille d'un pointeur (un pointeur est une variable qui permet d'enregistrer la valeur d'une adresse mémoire)
    // => aussi, on ne peut pas modifier la valeur de personne, on ne peut pas faire : personne++;
    // ... mais on a le droit de modifier la valeur pointée par personne : personne[3] = 'z'; // équivaut à : *(personne + 3) = 'z';
     
     
    // ************** 
    printf("nom : ");
    ptr = &personne[0];
    while(*ptr != '\0'){ // la fin de la chaine fini par '\0'
       printf("%c", *ptr);
       ptr++;
    }
    printf("\r\n");
     
    // ************** 
    printf("nom : ");
    i = 0;
    while(personne[i] != '\0'){ // la fin de la chaine fini par '\0'
       printf("%c", personne[i]);
       i++;
    }
    printf("\r\n");
     
    // ************** 
    printf("nom : ");
    ptr = &personne[0]; 
    i = 0;
    while(ptr[i] != '\0'){ // la fin de la chaine fini par '\0'
       printf("%c", ptr[i]);
       i++;
    }
    printf("\r\n");

  15. #15
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2022
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2022
    Messages : 21
    Points : 8
    Points
    8
    Par défaut
    d'accord je comprends merci pour l'explication

  16. #16
    Membre éprouvé
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    1 821
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 1 821
    Points : 979
    Points
    979
    Par défaut
    J'ai oublié de préciser que :
    C'est la même chose que :
    ... c'est juste que la première écriture est plus courte

  17. #17
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2022
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2022
    Messages : 21
    Points : 8
    Points
    8
    Par défaut
    D'accord merci pour l'explication

  18. #18
    Membre expérimenté Avatar de edgarjacobs
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2011
    Messages
    625
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2011
    Messages : 625
    Points : 1 559
    Points
    1 559
    Par défaut
    Citation Envoyé par boboss123 Voir le message
    J'ai oublié de préciser que :
    C'est la même chose que :
    ... c'est juste que la première écriture est plus courte
    Et aussi que je préfère lire putchar(argv[i][j]) que putchar(*(*(argv+i)+j)). C'est moins fatiguant pour mes p'tits neurones.
    On écrit "J'ai tort" ; "tord" est la conjugaison du verbre "tordre" à la 3ème personne de l'indicatif présent

  19. #19
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2022
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2022
    Messages : 21
    Points : 8
    Points
    8
    Par défaut
    Citation Envoyé par edgarjacobs Voir le message
    Et aussi que je préfère lire putchar(argv[i][j]) que putchar(*(*(argv+i)+j)). C'est moins fatiguant pour mes p'tits neurones.
    Merci pour l'explication

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

Discussions similaires

  1. allocation d'un tableau dans une structure
    Par Klaine dans le forum Débuter
    Réponses: 3
    Dernier message: 02/04/2008, 23h51
  2. Problème de tableau dans une structure
    Par zarbiman dans le forum Réseau
    Réponses: 5
    Dernier message: 15/12/2007, 18h21
  3. Réponses: 6
    Dernier message: 12/09/2007, 15h58
  4. Tableau dans une structure
    Par Elstak dans le forum C
    Réponses: 3
    Dernier message: 25/04/2007, 11h45
  5. Réponses: 2
    Dernier message: 26/11/2006, 10h51

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