begin process at 2012 05 30 18:01:35
  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

mercredi 6 avril 2005 à 02:25:03 | Tableau 2 dimensions en paramètre

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;

char Nom[10][20];

void AppelTab(parametre?)

AppelTab(Parametre?);

Merci
a+
mercredi 6 avril 2005 à 03:08:59 | Re : Tableau 2 dimensions en paramètre

NitRic

#include <stdio.h>
#include <string.h>

#define _ITEM_SIZE (20)

void AppelTab( char cTab[][_ITEM_SIZE], size_t uNbItem )
{
    size_t i;

    /* copie `uNbItem` fois le mot `Bonjour` dans le tableau */
    for ( i = 0; i < uNbItem; ++i )
    {
        strcpy( cTab[i], "Bonjour" );
    }
}

int main()
{

    size_t i;
    char tab[10][_ITEM_SIZE];

    AppelTab( tab, 10 ); /* `rempli` le tableau */

    /* ensuite on l'affiche(tous les items/chaines) */
    for ( i = 0; i < 10; ++i )
    {
        printf("item %u: %s\n", i, tab[i] );
    }

    return 0;
}



~(.:: NitRic ::.)~
mercredi 6 avril 2005 à 09:10:21 | Re : Tableau 2 dimensions en paramètre

DeAtHCrAsH

Yep,
Le plus simple à faire reste encore de passer un pointeur sur un tableau comme parametres.
Exemple:

int MyFunc( char *myTab[])
{
  ...
  return 0;
}

Ainsi, en initialisant ton pointeur comme il le faut, ca t'évitera d'avoir des problèmes de bord.

Shell
mercredi 6 avril 2005 à 13:57:30 | Re : Tableau 2 dimensions en paramètre

magic_Nono

Membre Club
tu peux également directement spécifier
void AppelTab(char**Nom)

AppelTab(char**
Nom);

mais pense bien à initialiser correctement tes variables si tu be veux pas de pb d'allocation

exemple
que tes 10 chaines soitent initialisées à 0 pr commencer....

++
Nono

jeudi 7 avril 2005 à 01:29:28 | Re : Tableau 2 dimensions en paramètre

NitRic

DeAtHCrAsH:
int MyFunc( char * myTab[], size_t uNbItem )
{
    size_t i;
    for ( i = 0; i < uNbItem; ++i )
    {
       strcpy( myTab[i], "Bonjour" );
    }
    return i;
}

magic_Nono:
void AppelTab( char ** Nom, size_t uNbItem, size_t uMaxItemSize )
{
    size_t i;
    for ( i = 0; i < uNbItem; ++i )
    {
       strncpy( Nom[i], "Bonjour", uMaxItemSize );
    }
}

il est toujours préférable de connaître les dimenssions des `tableaux` ...
personnellement, j'utiliserais la méthode de `magic_Nono` ...



~(.:: NitRic ::.)~
jeudi 7 avril 2005 à 09:07:29 | Re : Tableau 2 dimensions en paramètre

magic_Nono

Membre Club

Bj NitRic


il est toujours préférable de connaître les dimensions des `tableaux` , c'est vrai, mais on peux faire sans, et je pensais plutot a qqch avec le strcpy et non strncpy : ou alors un strncpy sur min(strlen(...),
uMaxItemSize )

sinon, pour l'utilisation :


 void utiliseTab( char ** Nom, size_t uNbItemMax )
{
    size_t i;
    for ( i = 0;  
i < uNbItemMax && Nom[i] ; i++ )
           puts( Nom[i] );
}


voir mm sans transmettre le uNbItemMax qui est une constante.
++
Nono.
vendredi 8 avril 2005 à 00:43:15 | Re : Tableau 2 dimensions en paramètre

NitRic

Oui, tout à fait mais moi je ferais plutôt:

void utiliseTab( char ** Nom, size_t uNbItem )
{
    size_t i;
    for ( i = 0; i < uNbItem; ++i )
    {
       if ( NULL != Nom[i] ) /* il peut très bien y avoir quelques items à NULL ... */
          puts( Nom[i] );
    }
}

Mais tout dépend du type de tableau, ce qu'il contient, son utilité, etc ...



~(.:: NitRic ::.)~


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


Répondre à ce message

Sujets en rapport avec ce message

tableau [ par zeratul67 ] J'ai une fonction qui doit me renvoyer un tableau à deux dimensions, mais la taille de l'une des ces 2 dimensions est inconue. (tableau: char cp[x][25 Tableau à 2 dimensions en paramètre [ par 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 voi chaines de caractères dans un tableau char a 2 dimensions [ par deck_bsd ] Bonjour a tous, voila J'ai un fichier qui contient des mots (1sur une ligne différente) et je voudrai bien copier chacun de ces mots dans un tableau char + int dans un tableau d'unsigned char [ par sevenace ] Bonjour, Voici ce que je rentre à ma classe: Carte C("Nom", "Prenom", 14, 12, 3, 14, 30, 0)      //Nom & Prenom -> char Nom[32] & Prenom[32] (attrib Tri d'un tableau à 2 dimensions [ par vao ] salut tout le monde,J'ai un problème de taille, enfin pour moi qui débute en C++. Je dois trier un tableau en fonction de la valeur d'une colonne et s 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 question à propos du * pour les tableau de caracteres [ par Amanobuo ] Bonjour ! Je m interroge sur l utilisation du * apres le type d une variable j ai compris par quelques tests et de tutos qu'il s agit de l'adresse d' probléme tableau de char, 2dim--->1dim (en gros) [ par psyko_flex ] je doit rassembler les valeur d'uun tableau a 2 dim pour en faire un tableau a une dim!voila le code qui me pose problémevoid Btn (GtkWidget *widget,g Help.... probleme avec un programme de tri de char [ par ratp ] Es ce que vous pouvez m'aider. j'ai réaliser un programme qui normalement doit permettre de trier les caracteres. mais sa ne marche pas. merci de m'ai D'une AnsiString à un Tableau de char [ par sevenace ] Bonjour à tous, Mon AnsiString provient d'un EditBox. Je récupère le nombre de caractères comme ça:     AnsiString chaine = EditChaine->Text;     i


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
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,265 sec (4)

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