begin process at 2010 02 10 15:02:26
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

Tableau à 2 dimensions en paramètre


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Tableau à 2 dimensions en paramètre

mardi 15 mars 2005 à 23:28:01 | Tableau à 2 dimensions en paramètre

BsEtZeOpLhD

Bonjours,

Voila mon problème : je n'arrive pas à passer une tableau a 2 dimensions en paramètre. Est ce que quelqu'un sais comment faire ? Merci

void fonctions(tableau)
{
    ...
    tableau[1][3]=2
    ...
}
int main()
{
    int tableau[6][7];
    fonction(tableau);
    ...
    return 0;
}

mercredi 16 mars 2005 à 02:58:00 | Re : Tableau à 2 dimensions en paramètre

NitRic

Petit exemple simple ...


#include <stdio.h>

#define ITEM_SIZE (25)
void FillTab( int nTab[][ITEM_SIZE], unsigned uNbItem )
{

    unsigned i, a;
    unsigned counter = (uNbItem * ITEM_SIZE);

    for ( i = 0u; i < uNbItem; ++i )
    {
        for ( a = 0u; a < ITEM_SIZE; ++a )
        {
            nTab[i][a] = --counter;
        }
    }

}

void PrintTab( int nTab[][ITEM_SIZE], unsigned uNbItem )
{

    unsigned i, a;
    unsigned counter = 0u;

    for ( i = 0u; i < uNbItem; ++i )
    {
        for ( a = 0u; a < ITEM_SIZE; ++a, ++counter )
        {
            printf("item %u => %u\n", counter, nTab[i][a] );
        }
    }

}

int main()
{

    int tableau[15][ITEM_SIZE];

    FillTab( tableau, 15 );
    PrintTab( tableau, 15 );

    return 0;

}




~(.:: NitRic ::.)~

mercredi 16 mars 2005 à 07:36:24 | Re : Tableau à 2 dimensions en paramètre

asmanur

Tes prototypes ne sont pas disons "conforme"
Au lieu de
void FillTab( int nTab[][ITEM_SIZE], unsigned uNbItem )
tu devrais mettre
void FillTab( int** nTab, unsigned uNbItem )
Ca correspond exactement à la meme chose car le C++ ne passe pas de
tableau comme arguments il passe juste des pointeurs
a+
mercredi 16 mars 2005 à 09:22:42 | Re : Tableau à 2 dimensions en paramètre

ymca2003

NitRic : ta notation ne permet de passer que des tableaux avec la même taille

asmanur : ta notation ne permet pas de passer des tableaux statiques (uniquement des tableaux dynamiques.

=> Conclusion : les 2 notations ne sont absolument pas les même (que ce soit en C ou C++), et dépendent de l'utilisation mais sont toutes les 2 "conformes".
 
* une déclaration du genre :
int tab[32][16];
=> tab est un pointeur simple sur une zone mémoire contenant 32*16 entiers que l'on dit être un tableaux à 2 dimensions. Pour le passer en paramètres une seule des dimensions peut être inconnue (la première), les autres doivent être données au compilo. La première doit être passé en param sup pour connaître la taille.
void PrintTab( int nTab[][16], int dim1 )
PrintTab(tab, 32);

* une décalrartion du genre:
int** tab;
tab = new int*[32];
for(int i = 0; i < 32; i++)
tab[i] = new int[16];

=> tab est un tableau dynamique à 2 dimensions (en fait un tableau de tableaux d'o^le double pointeur). les sous-tableaux ne se suivent pas forcément en mémoire (contrairement aux tableaux statiques). Il faut donc passer en param au compilo les 2 dimensions.
void PrintTab( int** nTab, int dim1, int dim2)
PrintTab(tab, 32, 16);
mercredi 16 mars 2005 à 18:50:16 | Re : Tableau à 2 dimensions en paramètre

BsEtZeOpLhD

En fait, la solution qui me va le mieu est un tableau dynamique.

Merci pour vos réponses et d'avoir été si rapide!


Cette discussion est classée dans : int, tableau, paramètre, dimensions


Répondre à ce message

Sujets en rapport avec ce message

Tableau à 3 dimensions [ par VinceExtense ] Savez vous comment faire passer en paramètre un tableau à 3 dimensions ?void fonction1(int x,iny y,int z){int tab[x][y][z];}void fonction2(int ***tab, Tableau 2 dimensions en paramètre [ par kiboumz ] Bonjour, j'aimerais savoir comment passer un tableau de char 2 dimensions dans les paramètres d'une fonction et qu'elle saurait l'appel. Par exemple; Passer un tableau 2D en paramètre en C [ par poiuytrez3 ] Bonjour, je souhaiterai passer en paramètre un tableau 2D, mais j'ai une erreur de compilation, voici mon code: #include #include void remplissage Allocation dynamique, tableau à 2 dimensions [ par seb013 ] SalutMon problème est simple (la solution je ne sais pas). Je veux faire une allocation dynamique pour un tableau à deux dimensions. Alors pour un ta manipulation de tableau à plusieures dimensions [ par tezca_system ] Bonsoir,Je vous presente la déclaration suivante: const char *etape[][9]={       {""},       {"Signature", "ELF"},       {"Type", "type1", "type2"}, tableau de caracteres [ par infodaoudi ] bonjour,j'ai une classeclass fich{int id;char *fich}je veux initialiser une liste de cette classeFich::Fich(int a){for(int i=0;i{   id=i;   fich= "<fo Allocation tableau dynamique ds structure [ par chental ] Salut à tous,Sauriez vous me dire comment allouer dynamiquement un tableau dans une structure ?J'arrive à faire l'essentiel mais dans la structure je générer une Pyramide dans un tableau à 2 dimensions [ par Selig ] Bonjour à tous, je débute en C et voila je bloque sur un exercice :Je dois générer une Pyramide dans un tableau à 2 dimensions dont je rentre la base, initialisation d'un tableau de structure [ par thmatew ] Bonjour a tous,meme si je ne débute pas en C je pense que ce message doit etre poser ici.je n'arrive pas a initialiser une structure en brut, un Exemp Un tableau statique dans une méthode: c'est mal? [ par harddisk ] Bonjour,j'ai une méthode qui retourne un int (code ci-dessous):chercher une couleur dans une main de cartes, une main comprenant en membre un tableau


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,655 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales