begin process at 2012 05 30 08:24:50
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

URGENT: pb passage d'argument tableau de chaine de caracteres!


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

URGENT: pb passage d'argument tableau de chaine de caracteres!

jeudi 26 janvier 2006 à 19:07:03 | URGENT: pb passage d'argument tableau de chaine de caracteres!

joduak

Salut à vous!
j'ai un problème de passage d'argument d'un tableau de chaine de caractere.
Si quelqu'un à une idée, faire vite svp !

Voici mon code : je souhaiterai récupérer mon tableau de caractere, remplit grace à la fonction stockage, dans ma fonction main.

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

void stockage(char *argument)
{
    char message0[]="chaine1";
      char message1[]="chaine2";
      char message2[]="chaine3";

      *argument = malloc(3*sizeof(char*));
      strcpy ( argument[0] , message0);
      strcpy ( argument[1] , message1);
      strcpy ( argument[2] , message2);

      printf("%s\n",argument[0]);
      printf("%s\n",argument[1]);
      printf("%s\n",argument[2]);
}


void main(void)
{
      char **argument;
     
      stockage(&argument);

      printf("%s\n",argument[0]);
      printf("%s\n",argument[1]);
      printf("%s\n",argument[2]);
}


Merci d'avance!!
Jo
jeudi 26 janvier 2006 à 19:25:58 | Re : URGENT: pb passage d'argument tableau de chaine de caracteres!

ymca2003

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

void stockage(char *** argument)
{
    char message0[]="chaine1";
      char message1[]="chaine2";
      char message2[]="chaine3";

      *argument = (char**) malloc(3*sizeof(char*));
      argument[0] = (char*)malloc(strlen(message0)+1);
      argument[1] = (char*)malloc(strlen(message1)+1);
      argument[2] = (char*)malloc(strlen(message2)+1);
      strcpy ( argument[0] , message0);
      strcpy ( argument[1] , message1);
      strcpy ( argument[2] , message2);

      printf("%s\n",argument[0]);
      printf("%s\n",argument[1]);
      printf("%s\n",argument[2]);
}


void main(void)
{
      char **argument;
     
      stockage(&argument);

      printf("%s\n",argument[0]);
      printf("%s\n",argument[1]);
      printf("%s\n",argument[2]);
}

Pas compilé nin testé mais devrait aller
jeudi 26 janvier 2006 à 19:27:14 | Re : URGENT: pb passage d'argument tableau de chaine de caracteres!

ymca2003

Réponse acceptée !
oups, il manque une indirection de pointeur

*argument = (char**) malloc(3*sizeof(char*));
      (*argument)[0] = (char*)malloc(strlen(message0)+1);
      (*argument)[1] = (char*)malloc(strlen(message1)+1);
      (*argument)[2] = (char*)malloc(strlen(message2)+1);
      strcpy ( (*argument)[0] , message0);
      strcpy ( (*argument)[1] , message1);
      strcpy ( (*argument)[2] , message2);

      printf("%s\n",(*argument)[0]);
      printf("%s\n",(*argument)[1]);
      printf("%s\n",(*argument)[2]);
jeudi 26 janvier 2006 à 19:37:29 | Re : URGENT: pb passage d'argument tableau de chaine de caracteres!

joduak

Ca marcheeeeee ! MERCI t'es trop fort!!


jeudi 26 janvier 2006 à 19:59:07 | Re : URGENT: pb passage d'argument tableau de chaine de caracteres!

joduak

Par contre j'ai pas tout capté!
je ne comprends pas l'écriture de cette ligne :

*argument = (char**)malloc(3*sizeof(char*));
Que fais le (char **) ? C'est pour dire que le contenu de argument est un tableau de caractere à allouer avec 3 éléments à l'intérieur qui sont chacun sur une taille de (char*) ?

Merci d'avance de tes précieuses explications !
Jo

vendredi 27 janvier 2006 à 00:36:18 | Re : URGENT: pb passage d'argument tableau de chaine de caracteres!

julienbj


Ca veut dire que tu as créés un pointeur sur un tableau de chaine de caractères. Le (char **) est un cast.
Ensuite le 3*sizeof(char*) c'est en effet pour dire que tu alloues un pointeur sur un tableau de 3 chaines de caractères.

Vive le C
Tchao
Savon


Cette discussion est classée dans : passage, tableau, printf, char, argument


Répondre à ce message

Sujets en rapport avec ce message

[C] Passage de tableau par adresse (réference) [ par nitrique ] Bonjour,Je sais que la question a été posée sous des angles différents mais rien n'y fait.J'aimerais passer mon tableau de char à ma fonction par adre Passage d'argument pour printf [ par Quazar ] BonjourJe cherche à créer une fonction qui aura le même effet que printf, c'est à dire que je passerais à cette fonction une liste de paramètre du mêm passer un tableau de chaines à 2 dimention comme argument d'une fonction [ par boujerra ] bonjour à tous mon probleme est le suivant je veux passer en parametre d'une fonction un tableau à 2 dimention au cour de la fonction main tout se pas Petite Question Sur remplier un tableau de type String(Chaine de carac) en langage c [ par Ayoubyoub ] [code=cpp]#include #include main(){ char tab[20]; int n,i; printf("Saisir Element du Tableau : \t"); scanf("%d",&n); Probléme à créer un tableaux à partir des structures [ par wissouramos ] Bonjour à tous. J'ai un petit problème de syntax, après plusieurs recherche sur le net, je n'ai pu ni affirmer ou ni infirmer la validation de mon cod Erreurs C2065 et C2143 [ par thomas71 ] Bonjour, J'ai un petit problème avec le bout de code ci-dessous. Je travaille sous Visual Studio 2010. Deux erreur apparaissent lors de la compilatio j'ai besoin l'aide pour correcte un code sur les arbre binaire de recherche (dictionaire) [ par momoinfo92 ] l'annonce de l'exercice est: créer un dictionaire français-anglais utilisé l'arbre binaire de recherche basée sur l'ordre alphabétique des mots chaq Pointeurs et tableau de char ? [ par phyyl ] Bonjour ! J'ai un petit soucis ... voici mon code: [code=cpp] #include using namespace std; void modify(char* ptr[]); int main() { char mot[]= combinaisons possibles C(n,k) [ par mervat ] bonjour, je veux faire la combinaison de n entiers, j'ai trouvé ce code dans un forum qui convient à ce que je veux: [code=cpp]#include #include usi


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

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 : 3,401 sec (3)

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