Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1268 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  Pointer sur un tableau de chaînes

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Pointer sur un tableau de chaînes

n°594174
Cyberpat92
Posté le 19-12-2003 à 13:52:18  profilanswer
 

Question con, mais là je pige pas :
 
Ca ca fonctionne :
 
char *ARGV[3]={"param0","param1","param2"};
int ARGC = 3;
 
_Func(ARGC, ARGV);
 
Mais ca ca fonctionne pas car ARGV ne peut pas être converti en char ** et si j'essaie de faire un cast j'ai un access violation :??:
 
char ARGV[3][512]={"param0","param1","param2"};
int ARGC = 3;
 
_Func(ARGC, (char **)ARGV);
 
Il me semble pourtant que c'est bien la même chose ?


Message édité par Cyberpat92 le 19-12-2003 à 13:53:18
mood
Publicité
Posté le 19-12-2003 à 13:52:18  profilanswer
 

n°594178
jagstang
Pa Capona ಠ_ಠ
Posté le 19-12-2003 à 14:05:14  profilanswer
 

c'est quoi le prototype de ta fonction _Func ?

n°594209
ACut
Posté le 19-12-2003 à 14:41:38  profilanswer
 

Je suppose que le proto est _Func(int, char **);
 
Ben, si les éléments du tableau sont traités comme des (char*), il faut les aborder comme des (char*)!
 
Quand tu déclares argv par:
 char argv[3][512]=etc.;
le cast en (char**) est forcément une régression parce que je vois pas comment un pointeur sur (char*) peut deviner les dimensions de la matrice. (?)
 
PS. - Si Taz se connecte on est morts...


Message édité par ACut le 19-12-2003 à 14:49:54

---------------
NOUVEAU! Le guide de l'édition en version ebook : http://marcautret.free.fr/autret/150q-ebook/
n°594233
gilou
Modérateur
Modzilla
Posté le 19-12-2003 à 15:07:20  profilanswer
 

[:purljam] pour le PS
A+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
n°594251
blackgodde​ss
vive le troll !
Posté le 19-12-2003 à 15:36:55  profilanswer
 

ca paraît etre du C, on est dans la cat C++ ici (std::string)
 
char *ARGV[3]={"param0","param1","param2"};
-> chaque élément de ton tableau est un char*, qui pointe sur une chaine écrite en dur (donc const char*)
 
char ARGV[3][512]={"param0","param1","param2"};
-> la, les éléments de ton tableau sont modifiables (ce sont des char [512], qui sont remplis a l'initialisation du tableau).
 
donc, si _Func doit modifier le contenu,  
dans le 1er cas on essaye de modifié une chaine en lecture seule -> access violation,  
dans le 2eme cas les éléments sont modifiables -> ca fonctionne.


---------------
-( BlackGoddess )-
n°594293
Cyberpat92
Posté le 19-12-2003 à 16:24:01  profilanswer
 

Ok, j'avais mal compris la structure en mémoire de la déclaration char *ARGV[3] = {...}
 
J'ai résolu mon pb de la façon suivante :  
 
char *ARGV[3]={"param0","param1","param2"};
int ARGC = 3;
 
char buffer[1024];
 
sprintf(buffer, "param3" );
ARGV[2] = buffer;
 
_Func(ARGC, ARGV);
 
... et là ca fonctionne :D
 
Merci pour vos conseils ! :jap:


Message édité par Cyberpat92 le 19-12-2003 à 16:25:49
n°594298
blackgodde​ss
vive le troll !
Posté le 19-12-2003 à 16:25:50  profilanswer
 

attention à la portée :)


---------------
-( BlackGoddess )-
n°594299
Cyberpat92
Posté le 19-12-2003 à 16:27:54  profilanswer
 

BlackGoddess a écrit :

attention à la portée :)


 
_Func() est une fonction d'initialisation, je pense que ca va aller, mais sinon je déplacerai la déclaration de buffer. Merci pour la remarque :)
 
EDIT: bon ben je sors la déclaration de buffer de la fonction :whistle:


Message édité par Cyberpat92 le 19-12-2003 à 16:32:02

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  Pointer sur un tableau de chaînes

 

Sujets relatifs
insertion et suppression dynamique de lignes dans un tableautableau html complexe (pour moi)
comment faire ? insertion dynamique de lignes dans un tableaupasser un tableau de type à 2 dimensions en paramètre ? comment faire
php et allocation dynamique de tableau a 2 dimensionscomment centré un tableau verticalement ...
Question trés simple : transformer une variable en tableauinitialisation d'un tableau de string
coment inserier une vidéo en HTML dans un tableau?Comment aligner un texte en bas d'un tableau?
Plus de sujets relatifs à : Pointer sur un tableau de chaînes


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR