petite question de logique sur les pointeurs

petite question de logique sur les pointeurs - C++ - Programmation

Marsh Posté le 16-06-2003 à 16:53:21    

salut tout le monde!
 
je me demandais une chose :
 
admettons que je déclare une map ainsi : map<char *, int> maMap;
 
et ensuite, je la rempli dans une boucle avec map[key]=i;
 
où key est un pointeur et i un int.
 
va-t-il me stoquer la valeur de key ou son adresse?
 
je me pose cette question, car en étudiant ce que contient ma map, je me rends compte que ce n'est pas ce que j'attends (je précise que je débute en c/c++)
 
merci pour vos conseils.
 

Reply

Marsh Posté le 16-06-2003 à 16:53:21   

Reply

Marsh Posté le 16-06-2003 à 16:59:07    

ben il fait juste une copie du pointeur, pas de la zone pointée.
 
 
maitenant, les char* on les utilise pas en C++, on utilise les styd::string de <string>. à toi de jour: c''est plus usr et ça résout  ton problème

Reply

Marsh Posté le 16-06-2003 à 17:02:38    

ouaip, mais là en l'occurence, c pas un char *, mais un xmlChar *.
 
donc, je pense que mon problème est dans le même ordre. le tout est que je n'arrive pas à trouver comment on fait l'équivalent du cast de java. j'ai bien vu cast en c++, mais ça a pas l'air d'être la même chose (ou alors chuis tombné sur la mauvaise doc).
 
merci

Reply

Marsh Posté le 16-06-2003 à 17:09:10    

on s'en fout du cast. trouve toi un conteneur pour ton truc: tu peux repartir avec les base des string, ou passé par un vector, etc. dans tous les cas abandonnes tes *, déjà que tu comprends pas trop le coup vu ton passé Java, tu risques de ton cassé. le cast, c'est une histoire de référence/pointeur, pas une histoire de valeur. tu peux caster un char * en int, t'auras jamais la valeur de la chaine dans ton int
 
si tu précises ta lib, je peux t'aider à faire ton passage

Reply

Marsh Posté le 16-06-2003 à 17:10:59    

http://www.dinkumware.com/manuals/ [...] ring2.html
 
très simplement
 
typedef basic_string<XMLchar> XMLstring;

Reply

Marsh Posté le 16-06-2003 à 17:15:00    

ouaip, en fait c bon, c juste que je suis un boulet, et que de prime abord, les pointeurs et autres références, c un peu strange.
 
en faisant xmlChar *cle;
 
puis dans ma boucle de vérif, je fais pointer *cle sur l'adresse indiquée par "key", donc je peux manipuler ça.
 
en fait, mon problème est que je ne sais pas comment ne pas stoquer le pointeur dans la map, probablement parceque je ne suis pas encore habitué à ces notions de pointeurs.
 
sinon, je travaille avec la libxml
 
merci pour ton aide

Reply

Marsh Posté le 16-06-2003 à 17:19:41    

ben utilise le typdef que je t'ai donné: comme ça tu manipule de string composé de XMLchar, tu les manipule par valeur, et pas avec un pointeur. bref, tu peux les copier, les modifier, etc. mais abandonne à tout prix les XMLchar*. tu n'y comprends rien, alors passe ton chemin. tu y comprends quelquechose, passe aussi ton chemin. en plus le gros avantage, c'est qe ça t'evite de gérer la mémoire, etc, etc

Reply

Marsh Posté le 16-06-2003 à 17:21:14    

oki, je vais essayer ça.
 
merci bcp

Reply

Marsh Posté le 19-06-2003 à 18:14:59    

:cry: jte conseil de faire un pointeur de pointeur c'est plus simple je pense!n'oublie pas le void main void()

Reply

Marsh Posté le 19-06-2003 à 18:32:24    

[:the time]

Reply

Marsh Posté le 19-06-2003 à 18:32:24   

Reply

Marsh Posté le 19-06-2003 à 19:15:56    

laisse béton

Reply

Marsh Posté le 19-06-2003 à 19:27:28    

ben si tu veux, j'ai comme l'impression qu'il (ou elle, soyons pas sectaire) se fout de ma gueule, et j'aprécie pas trop. on verra bien quand besoin d'aide il/elle aura!  :sarcastic:

Reply

Marsh Posté le 19-06-2003 à 19:35:36    

c'est un plaisantin, il a pourri d'autre topic avec sa réflexion incorrecte

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed