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 tableaux


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Août 2005
    Messages
    89
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 89
    Par défaut Questions sur les tableaux
    Bonjour, pourquoi je peux pas faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    void foo(int **tab)
    {
    }
     
    int tab[5][10];
     
    foo(tab); /* erreur */
    Autre question sans rapport : pourquoi je peux pas faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    int tab[][] = { {1, 1}, {1, 1} };
    ?

    Merci.

  2. #2
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 840
    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 840
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par ciol2.6.12 Voir le message
    Bonjour, pourquoi je peux pas faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    void foo(int **tab)
    {
    }
     
    int tab[5][10];
    Parce que un tableau, même en plusieurs dimensions, n'est traduit en mémoire qu'en une seule dimension (une suite de cases). Donc pour aller sur l'élément tab[x][y], le C est obligé de traduire ça en "case mémoire située à l'emplacement x * 10 + y".
    Or, dans la fonction foo, l'élément "tab" n'est plus qu'un pointeur et le C ne connait pas sa largeur "10"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    void foo(int *tab[10])
    {
    }

    Citation Envoyé par ciol2.6.12 Voir le message
    Autre question sans rapport : pourquoi je peux pas faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    int tab[][] = { {1, 1}, {1, 1} };
    ?

    Merci.
    Même réponse. Tu n'as le droit de n'omettre que la dernière des dimensions (celle qui est la plus proche du nom de variable). Le compilo utilise toutes les autres plus ta déclaration pour la calculer.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    int tab[][2] = { {1, 1}, {1, 1} };
    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]

  3. #3
    Membre éclairé
    Inscrit en
    Août 2005
    Messages
    89
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 89
    Par défaut
    Citation Envoyé par Sve@r Voir le message
    Parce que un tableau, même en plusieurs dimensions, n'est traduit en mémoire qu'en une seule dimension (une suite de cases). Donc pour aller sur l'élément tab[x][y], le C est obligé de traduire ça en "case mémoire située à l'emplacement x * 10 + y".
    Or, dans la fonction foo, l'élément "tab" n'est plus qu'un pointeur et le C ne connait pas sa largeur "10"
    Et comment le C fait pour les pointeurs alors ?
    Si je fais :
    int **tab = ...;
    tab[x][y] = 2;

    Il sait où il faut aller pourtant.

    Citation Envoyé par Sve@r Voir le message
    Tu n'as le droit de n'omettre que la dernière des dimensions (celle qui est la plus proche du nom de variable). Le compilo utilise toutes les autres plus ta déclaration pour la calculer.
    Je ne vois pas pourquoi il ne peut pas retrouver les dimensions. Il a tous les éléments pour le faire (2 x {} et dans chaque {}, 2 élements -> tableau [2][2]).

  4. #4
    Expert confirmé
    Avatar de Thierry Chappuis
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Mai 2005
    Messages
    3 499
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Suisse

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 499
    Par défaut
    Citation Envoyé par ciol2.6.12 Voir le message
    Et comment le C fait pour les pointeurs alors ?
    Si je fais :
    int **tab = ...;
    tab[x][y] = 2;

    Il sait où il faut aller pourtant.
    Parce que tab[x][y] est implicitement converti en:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    *(*(tab + x) + y);
    où tab est de type pointeur sur pointeur sur int. En C, tableaux et pointeurs sont différents. Par contre, il y a équivalence entre l'arthimétique des pointeurs et l'accès par indiçage (c'est français ça?) à un tableau.

    Thierry
    "The most important thing in the kitchen is the waste paper basket and it needs to be centrally located.", Donald Knuth
    "If the only tool you have is a hammer, every problem looks like a nail.", probably Abraham Maslow

    FAQ-Python FAQ-C FAQ-C++

    +

  5. #5
    Membre éclairé
    Inscrit en
    Août 2005
    Messages
    89
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 89
    Par défaut
    OK.
    En fait un tableau pur est linéaire.
    Alors qu'un pointeur de pointeurs non.

    C'est ce qu'avait dit Sve@r.

    Comment ai-je pu oublier ?

    Par contre ma deuxième question tient toujours.

  6. #6
    Expert confirmé
    Avatar de Thierry Chappuis
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Mai 2005
    Messages
    3 499
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Suisse

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 499
    Par défaut
    Citation Envoyé par ciol2.6.12 Voir le message
    Par contre ma deuxième question tient toujours.
    Parce qu'un tableau deux dimensions, ça n'existe pas réellement en C. Lorsque tu définis:

    Tu définis un tableau de 3 tableaux de 4 ints. Ainsi, ce n'est rien d'autre qu'un tableau à une dimension contenant des éléments de type tableau de 4 int. Lorsque tu définis ton tableau, tu ne peux pas écrire:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    int tab[][] = {{1,1}, {1,1}, {1,1}}; /* -tc- ATTENTION: Ceci est faux! */
    ,

    Car le type des éléments du tableaux n'est pas défini. Tu dois donc écrire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    int tab[][2] = {{1,1}, {1,1}, {1,1}};
    qui correspond à la forme:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    type identificateur_tableau[] = initialisation
    où type est un tableau de 2 ints.

    Thierry
    "The most important thing in the kitchen is the waste paper basket and it needs to be centrally located.", Donald Knuth
    "If the only tool you have is a hammer, every problem looks like a nail.", probably Abraham Maslow

    FAQ-Python FAQ-C FAQ-C++

    +

  7. #7
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 840
    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 840
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par ciol2.6.12 Voir le message
    Et comment le C fait pour les pointeurs alors ?
    Si je fais :
    int **tab = ...;
    tab[x][y] = 2;

    Il sait où il faut aller pourtant.
    Oui. Mais
    - sois tu fais "tab=autre_tableau" avec "autre_tableau" défini comme il faut. Donc il y a équivalence entre "tab" et "autre_tableau" => le C sais adresser "tab[x]|y]" puisqu'il se base sur les dimensions de "autre_tableau" pour le faire

    - sois tu fais "tab=malloc(n * sizeof(*tab))" puis "for (x=0; x < n; x++) tab[x]=malloc(m * sizeof(**tab)". Et là, le C sait aller sur tab[x] qui est le "xième" pointeur pris à partir de tab puis, de tab[x], il sait se déplacer sur l'élément [y] qui est le "yième" élément pris à partir de tab[x]. Autrement dit tab[x][y] n'est qu'une double indirection.
    Dans cette dernière écriture, il n'y a aucune obligation que l'ensemble du tableau soit contigü. T'as simplement tab qui contient un tableau de pointeurs (qui se suivent) mais chaque pointeur pointe vers une zone de la mémoire totalement diverse (et pas forcément aux mêmes endroits).


    Citation Envoyé par ciol2.6.12 Voir le message
    Je ne vois pas pourquoi il ne peut pas retrouver les dimensions. Il a tous les éléments pour le faire (2 x {} et dans chaque {}, 2 élements -> tableau [2][2]).
    Toi tu sais le faire. Moi aussi. Mais le compilo qui n'est qu'un simple programme qui n'a pas été fait pour ça, ne sait pas le faire.
    Inversement, si on voulait programmer un compilo qui sache le faire, il faudrait lui introduire un algorithme récursif (vu qu'on ne saurait pas à l'avance le nombre de dimensions max) pour analyser l'écriture.
    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
    Expert confirmé
    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
    Par défaut
    Sve@r :

    Et comment le C fait pour les pointeurs alors ?
    Si je fais :
    int **tab = ...;
    tab[x][y] = 2;

    Il sait où il faut aller pourtant.
    Oui. Mais
    - sois tu fais "tab=autre_tableau" avec "autre_tableau" défini comme il faut. Donc il y a équivalence entre "tab" et "autre_tableau" => le C sais adresser "tab[x]|y]" puisqu'il se base sur les dimensions de "autre_tableau" pour le faire
    ....
    Il n'a absolument pas besoin de se baser sur les dimensions de quelque chose d'autre. tab[x] est un int * et il connait la taille d'in int * donc il peut situer tab[x]. tab[x][y] est un int. Il sait situer tab[x], il connait la taille d'un int ; il peut situer tab[x][y]

  9. #9
    Membre confirmé Avatar de Linu6
    Profil pro
    Inscrit en
    Août 2007
    Messages
    227
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 227
    Par défaut
    Le deuxième indice ne peut pas être omis.

    essaye
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    void foo(int **tab, int y)
    où y = deuxième indice.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    int tab[][] = { {1, 1}, {1, 1} };
    Le compilateur ne connait pas la taille maximale du deuxième indice.

  10. #10
    Rédacteur/Modérateur
    Avatar de Trap D
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    4 942
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 4 942
    Par défaut
    Sve@r >> Ce ne serait pas plutôt void foo(int tab[][10]) ?
    "La haine seule fait des choix" - Koan Zen
    "Il ne faut pas être meilleur que les autres, il faut être meilleur que soi." Albert Jacquard
    "Ceux qui savent où ils ont posé leur parapluie ne sont pas alcooliques." - pgibonne.
    Faites du Prolog, ça vous changera les idées !
    Ma page Prolog
    Mes codes sources commentés

    Mon avatar : La Madeleine à la veilleuse de Georges de La Tour

  11. #11
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 840
    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 840
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Linu6 Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    void foo(int **tab, int y)
    où y = deuxième indice
    Ah non. Le problème vient de la transformation de "[m][n]" en "m * largeur + n". Et cette transformation est faite par le compilo. Et le compilo ne sait pas que le second paramètre est la largeur qu'il attend...

    Citation Envoyé par Trap D Voir le message
    Sve@r >> Ce ne serait pas plutôt void foo(int tab[][10]) ?
    Ouaip. Mais comme la dernière dimension peut être remplacée par une étoile, j'ai voulu me rapprocher le plus possible de l'écriture initiale...
    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]

  12. #12
    Membre confirmé Avatar de Linu6
    Profil pro
    Inscrit en
    Août 2007
    Messages
    227
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 227
    Par défaut
    Citation Envoyé par Trap D Voir le message
    Sve@r >> Ce ne serait pas plutôt void foo(int tab[][10]) ?
    a mon avis il y a une équivalence entre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    char *tab[MAXY],;
    char tab[][MAXY];
    et
    (char **tab, int y);

  13. #13
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 840
    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 840
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Linu6 Voir le message
    a mon avis il y a une équivalence entre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    char *tab[MAXY],;
    char tab[][MAXY];
    Oui
    Citation Envoyé par Linu6 Voir le message
    Non
    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]

  14. #14
    Membre confirmé Avatar de Linu6
    Profil pro
    Inscrit en
    Août 2007
    Messages
    227
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 227
    Par défaut

  15. #15
    Expert confirmé
    Avatar de Thierry Chappuis
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Mai 2005
    Messages
    3 499
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Suisse

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 499
    Par défaut
    Citation Envoyé par Linu6 Voir le message
    a mon avis il y a une équivalence entre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    char *tab[MAXY],;
    char tab[][MAXY];
    et
    (char **tab, int y);
    Pas du tout, l'équivalence a lieu entre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    void foo(char (*tab)[MAXY]); /* -tc- les parentheses sont importantes! */
    et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    void foo(char tab[][MAXY]);
    qui ne sont absolument pas équivalent à:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    void foo(char **tab, size_t y);
    Dans les deux premier cas, le paramètre tab est de type pointeur sur un tableau de MAXY chars, tandis que dans le 3ème cas, tab est de type pointeur sur pointeur sur char.

    Thierry
    "The most important thing in the kitchen is the waste paper basket and it needs to be centrally located.", Donald Knuth
    "If the only tool you have is a hammer, every problem looks like a nail.", probably Abraham Maslow

    FAQ-Python FAQ-C FAQ-C++

    +

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

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par ciol2.6.12 Voir le message
    Bonjour, pourquoi je peux pas faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    void foo(int **tab)
    {
    }
     
    int tab[5][10];
     
    foo(tab); /* erreur */
    Parce qu'un pointeur de pointeur n'a rien à voir avec un tableau linéaire à 2 dimensions. Tu confonds avec les tableaux dynamiques à 2 dimensions formés d'un tableau de pointeurs et de tableaux 'accrochés' à ces pointeurs...
    Autre question sans rapport : pourquoi je peux pas faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    int tab[][] = { {1, 1}, {1, 1} };
    ?
    Parce que le langage C ne l'autorise pas. Il autorise

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    int tab[4][5] = { {1, 1}, {1, 1} };
    int tab[][5] = { {1, 1}, {1, 1} };
    int tab[2][2] = { {1, 1}, {1, 1} };
    int tab[][2] = { {1, 1}, {1, 1} };
    etc. Mais pas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    int tab[4][] = { {1, 1}, {1, 1} };
    ni
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    int tab[][] = { {1, 1}, {1, 1} };

  17. #17
    Expert confirmé
    Avatar de Melem
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2006
    Messages
    3 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 3 656
    Par défaut
    Citation Envoyé par ciol2.6.12 Voir le message
    Bonjour, pourquoi je peux pas faire :
    ...
    Merci.
    Tu confonds tableaux et pointeurs.

    déclare un tableau de 10 entiers. Le type de t est int [10] (tableau de 10 entiers). Ici, sizeof(t) = 10 * sizeof(int).
    déclare un tableau de 5 int [10]. En mémoire c'est tout simplement donc un tanleau de 50 int. Un tableau à deux dimensions est un tableau, pas un pointeur de pointeurs. Ici sizeof(t) = 5 * sizeof(int [10]) = 5 * 10 * sizeof(int). Un int * (mais pas un int **) permet donc de pointer sur t, mais un cast est nécessaire.
    déclare un tableau de 5 pointeurs (int *). Ici, sizeof(t) = 5 * sizeof(int *).

    On peut aussi initialiser un tableau pendant sa déclaration. Par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    int t[10] = {0, 10, 20, 30, 40, 50, 60, 70, 80, 90};
    Ceci est strictement équivalent à :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    int t[] = {0, 10, 20, 30, 40, 50, 60, 70, 80, 90};
    Un autre exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    int t[5][10] = {
                      {0, 10, 20, 30, 40, 50, 60, 70, 80, 90},
                      {1, 11, 21, 31, 41, 51, 61, 71, 81, 91},
                      {2, 12, 22, 32, 42, 52, 62, 72, 82, 92},
                      {3, 13, 23, 33, 43, 53, 63, 73, 83, 93},
                      {4, 14, 24, 34, 44, 54, 64, 74, 84, 94}
                   };
    Est équivalent à :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    int t[][10] = {
                      {0, 10, 20, 30, 40, 50, 60, 70, 80, 90},
                      {1, 11, 21, 31, 41, 51, 61, 71, 81, 91},
                      {2, 12, 22, 32, 42, 52, 62, 72, 82, 92},
                      {3, 13, 23, 33, 43, 53, 63, 73, 83, 93},
                      {4, 14, 24, 34, 44, 54, 64, 74, 84, 94}
                  };
    L'initialisation d'un tableau peut être icomplète dans ce cas les autres éléments sont tous initialisés à zéro. Par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    int t[10] = {0, 10, 20, 30, 40};

  18. #18
    Membre chevronné
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    362
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 362
    Par défaut
    En résumé, on a, il me semble, deux situations :
    - on connaît les dimensions du tableau : autant le définir proprement avec par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    int MonTableau[5][10] /* et éventuellement ={...} */
    - on ne connaît pas les dimensions : on va utiliser des tableaux dynamiques, et donc par définition on ne peut pas initialiser le tableau lors de sa déclaration.

    Essayer de mélanger les deux n'a guère de sens.

Discussions similaires

  1. question sur les tableaux
    Par scolopendra dans le forum Langage
    Réponses: 4
    Dernier message: 12/06/2007, 15h15
  2. Question sur les tableaux
    Par Chii-san dans le forum VB.NET
    Réponses: 2
    Dernier message: 05/03/2007, 11h48
  3. Réponses: 9
    Dernier message: 13/06/2006, 21h52
  4. [Tableaux] Question sur les tableaux
    Par Shandler dans le forum Langage
    Réponses: 16
    Dernier message: 21/04/2006, 00h15
  5. question sur les tableaux
    Par Neko dans le forum C++
    Réponses: 13
    Dernier message: 14/02/2006, 02h21

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