Retour d'un tableau de chaine de caractere

Résolu
Signaler
Messages postés
93
Date d'inscription
vendredi 27 février 2004
Statut
Membre
Dernière intervention
30 mai 2005
-
Messages postés
93
Date d'inscription
vendredi 27 février 2004
Statut
Membre
Dernière intervention
30 mai 2005
-
Bonjour,j 'un soucis avec les retours de chaine dans une fonction.
Je sais ke cela est du au niveau des pointeurs, et les adresses,,mais je ne vois koment faire!
voici ma syntaxe!!!!

J'apel ma fonction dans le main puis je rentre dans ma fonction::exemple ,de focntion

char* Connection_au_serveur(char *requete[5]);
{
char test[5][100];

for(i=0;i<5;i++)
strcpy(test[i],requete[i]);

return(test)
}

a ma compilatio g une erreur,a ce sujet!
Je pense que vous ete abbituer a ce probleme.Pourier m'aider svp!!

6 réponses

Messages postés
787
Date d'inscription
samedi 8 juin 2002
Statut
Membre
Dernière intervention
7 juin 2007
1
Tu déclares test sur la pile,
hors cette variable n'existera plus lorsque la fonction appelante
voudra l'utiliser... Deux solutions : soit tu déclares test en variable
statique, soit tu alloues dynamiquement de
la mémoire dans la fonction avec malloc et tu la libères ensuite dans
la fonction appelante (après l'avoir utilisée, bien sûr).
Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
131
Heu, ton erreur ne viendrais pas plutôt du paramètre de ta fonction :
char* requete[5], cela veut dire : un tableau de 5 chaines de
caractères, et non un pointeur d'une chaîne de 5 caractères il me
semble !

DarK Sidious

Administrateur et reponsable VB/API du site www.ProgOtoP.com
Messages postés
93
Date d'inscription
vendredi 27 février 2004
Statut
Membre
Dernière intervention
30 mai 2005

Oui,c bien ca,dans mon main,g un tableau de 5 chaine de caractere!
jlemporte dans ma fonction
et je voudrais retourner une autre chaine!!!

CASPER
Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
131
Après examen plus approfondis de ton code, j'ai trouvé quelques petites
imperfections, et surtout : à quoi doit servir ta fonction ??? Car si
j'ai bien compris, il s'agit juste de faire une copie ?



#include <string.h>

#include <stdlib.h>



char* Connection_au_serveur(char *requete[5])

{

char *test = (char*) malloc(sizeof(char) *100*5);



for(int j=0; j<5; j++)

for(int i=0;i<100;i++)

test[i+100*j] = requete[i][j];



return test;

}

DarK Sidious

Administrateur et reponsable VB/API du site www.ProgOtoP.com
Messages postés
93
Date d'inscription
vendredi 27 février 2004
Statut
Membre
Dernière intervention
30 mai 2005

SVPPPPP,je veut juste savoir,si ma valeur de retour est bonne,ainsi que mon apel de fonction!!
Mon apel de fonction serait:
int main
{
char test2[5][100];

test2=ok(requete);
CASPER
Messages postés
93
Date d'inscription
vendredi 27 février 2004
Statut
Membre
Dernière intervention
30 mai 2005

Ok mercie a vous

CASPER