Pb pointeurs

Résolu
Arnaud16022 Messages postés 1329 Date d'inscription vendredi 15 août 2003 Statut Membre Dernière intervention 16 juin 2010 - 25 oct. 2004 à 19:29
Arnaud16022 Messages postés 1329 Date d'inscription vendredi 15 août 2003 Statut Membre Dernière intervention 16 juin 2010 - 26 oct. 2004 à 18:21
bonsoir

j'ai un peu de mal avec les pointeurs et ma fonction marche pas trop.
Le but est de passer une variable en parametre a une fonction, qui va stocker dans une classe (ou une simple autre variable, ca change rien) l'adresse de cette variable.
Ainsi, quand on change la valeur de la variable de la classe, ca change automatiquement la valeur qu'on a passée en parametre.
Ça doit pas etre tres clair ce que j'ai écrtit, alors je fais un exemple (qui marche pas, sinon je posterais pas :)):

int *pointeur;
int ma_variable = 123;
void fonction(int &var)
{
pointeur=&var;

}

...plus loin...

fonction(ma_variable);

pointeur=789;

et la, le but c'est que ma_variable soit égal à pointeur c'est a dire 789.
bon évidemment le coded est simplifié, faut pas croire qu'il n'y a que ca dans mon prog (8000 lignes déja!)
D'ailleurs on se demanded comment j'ai fait pour écrire 8000 lignes qui ne plantent pas sans meme savoir faire ca...soupir :(.

merci d'avancec pour vos réponses éclairées, éclairantes et nombreuses (j'espere ;D )

++
Ad

9 réponses

cs_AlexMAN Messages postés 1536 Date d'inscription samedi 21 décembre 2002 Statut Membre Dernière intervention 24 mai 2009 1
25 oct. 2004 à 20:11
enfin, pointeur pointera vers ma_variable, si tu veux ke pointeur soit egal a l'adresse de ma_variable, tu remplaces :

pointeur = var;

par

*pointeur = var;
3
cs_AlexMAN Messages postés 1536 Date d'inscription samedi 21 décembre 2002 Statut Membre Dernière intervention 24 mai 2009 1
25 oct. 2004 à 20:10
int *pointeur;
int ma_variable = 123;

void mafonction(int *var)
{
pointeur = var;
}

...plus loin...

fonction(&ma_variable);

Pointeur contiendra adresse de ma_variable. Mais ds le cas present, jne vois pas lintéret d'une fonction.

++
0
cs_djl Messages postés 3011 Date d'inscription jeudi 26 septembre 2002 Statut Membre Dernière intervention 27 novembre 2004 7
25 oct. 2004 à 20:12
deference le, ton pointeur

*pointeur=789;

mais fait pas 8000 lignes de code comme ca
0
Arnaud16022 Messages postés 1329 Date d'inscription vendredi 15 août 2003 Statut Membre Dernière intervention 16 juin 2010 2
26 oct. 2004 à 11:40
utilité de la fonction:
dans l'exemple, aucune!
dans mon prog, c'est pour un menu: on crée un bouton (genre checkbox mais plus joli :)) avec une référencec a la valeur qu'il doit modifier, comme ca qd on clique dessus, la variable pointée est modifiée automatiquement

Merci pr vos réponses
0

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

Posez votre question
cs_AlexMAN Messages postés 1536 Date d'inscription samedi 21 décembre 2002 Statut Membre Dernière intervention 24 mai 2009 1
26 oct. 2004 à 12:02
Pourkoi passes tu par un pointeur plutot ke de changer direct la valeur de la variable ??
0
cs_djl Messages postés 3011 Date d'inscription jeudi 26 septembre 2002 Statut Membre Dernière intervention 27 novembre 2004 7
26 oct. 2004 à 12:42
parce que je crois que Arnaud16022 veut faire un truc dans ce genre

void CreateButton( ... , int *ma_var )
{
pointeur = ma_var;
}

void ActionButton( ... , int param )
{
*pointeur = param;
}
0
cs_AlexMAN Messages postés 1536 Date d'inscription samedi 21 décembre 2002 Statut Membre Dernière intervention 24 mai 2009 1
26 oct. 2004 à 12:46
Ok, mais ds l'exemple kil a donné (je sais ki n'est pas représentatif de sa fonction), il a declaré sa variable en 'global', donc ds ce cas, ca n'a aucun intéret.
Ct juste une ptite remark pour pas kil se casse la tete avec les pointeurs (kil ne maitrise pas..bouh pas bien !;).

Voila, bonne chance

++
0
cs_djl Messages postés 3011 Date d'inscription jeudi 26 septembre 2002 Statut Membre Dernière intervention 27 novembre 2004 7
26 oct. 2004 à 13:07
c'est vrai, bonne chance
0
Arnaud16022 Messages postés 1329 Date d'inscription vendredi 15 août 2003 Statut Membre Dernière intervention 16 juin 2010 2
26 oct. 2004 à 18:21
bon je crois que l'utilité du truc n'a pas été bien saisie... :)
alors voila, djl a à peu pres raison; sauf que meme la ca ne servirait pas a grand chose...
Le probleme est que j'ai beaucoup de menus déja(environ 15), et pour chacun plusieurs boutons; et chaque bouton a une valeur (0 ou 1, avec des booléen ca marche pas :( ). cette valeur est chargée a partir du disque (un fichier ini), et réenregistrée a chaque fois qu'on clique sur un bouton.
C'est un peu compliqué, d'autant plus qu'au lieu de faire comme djl, jenvoie toutes mes données a une fonction membre de la classe menu, qui elle renvoie le tout a un constructeur de la classe bouton ^^
ca a l'air compliqué et surtout inutile mais j'ai mes raison, et ca marche super bien :)
merci a tous (surtout a Alexman bien sur :) )

Ciao
Ad
0
Rejoignez-nous