Retour d'un tableau de chaine de caractere

Résolu
casper_2 Messages postés 93 Date d'inscription vendredi 27 février 2004 Statut Membre Dernière intervention 30 mai 2005 - 20 janv. 2005 à 14:30
casper_2 Messages postés 93 Date d'inscription vendredi 27 février 2004 Statut Membre Dernière intervention 30 mai 2005 - 20 janv. 2005 à 16:22
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

cs_Nebula Messages postés 787 Date d'inscription samedi 8 juin 2002 Statut Membre Dernière intervention 7 juin 2007 2
20 janv. 2005 à 15:32
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).
3
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 129
20 janv. 2005 à 14:40
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
0
casper_2 Messages postés 93 Date d'inscription vendredi 27 février 2004 Statut Membre Dernière intervention 30 mai 2005
20 janv. 2005 à 14:50
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
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 129
20 janv. 2005 à 15:30
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
casper_2 Messages postés 93 Date d'inscription vendredi 27 février 2004 Statut Membre Dernière intervention 30 mai 2005
20 janv. 2005 à 15:31
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
0
casper_2 Messages postés 93 Date d'inscription vendredi 27 février 2004 Statut Membre Dernière intervention 30 mai 2005
20 janv. 2005 à 16:22
Ok mercie a vous

CASPER
0