Besoin d'aide en C pur - C - Programmation
Marsh Posté le 11-11-2006 à 18:46:18
HomerJK a écrit : |
C'est pas très 'C pur' comme façon de parler. Tu as trop fait de C++... Il n'y a pas de this implicite en C. Il faut être explicite et passer un paramètre.
Code :
|
Si on est dans le cadre d'une application générique, le paramètre est de type void * et il sert à initialiser localement un pointeur du bon type.
D'autre part, il est inutile de créer un pointeur de fonction pour la "méthode". Ca ne sert à rien.
Code :
|
L'appel se fait donc ainsi :
Code :
|
Marsh Posté le 11-11-2006 à 18:59:27
Merci pour la réponse.
Je n'ai pas très bien compris cette phrase : "Si on est dans le cadre d'une application générique, le paramètre est de type void * et il sert à initialiser localement un pointeur du bon type."
Sinon j'ai essayé de passer en paramètre cette meme instance, mais j'ai eu un problème lors de l'execution, une erreur de segmentation.
J'ai fait comme ceci :
Code :
|
Code :
|
Marsh Posté le 11-11-2006 à 19:06:55
HomerJK a écrit : Je n'ai pas très bien compris cette phrase : "Si on est dans le cadre d'une application générique, le paramètre est de type void * et il sert à initialiser localement un pointeur du bon type." |
C'est normal. C'est un peu 'advanced'... Quand le problème se posera, on en reparlera.
Citation : |
Marche pas. Regarde ma correction au-dessus.
Un peu de lecture...
http://mapage.noos.fr/emdel/tad.htm
http://mapage.noos.fr/emdel/complog.htm
Après ça, tu laisses tomber cette usine à gaz qu'est le C++...
Marsh Posté le 11-11-2006 à 19:22:21
Emmanuel Delahaye a écrit : |
Ca trolle un peu là non ?
Sinon, je remarque la ligne 9 du code que tu as montré en exemple :
Code :
|
Je ne connais pas cette syntaxe (deux instructions séparées par une virgule). Il y a une règle/limitation à ça ?
Marsh Posté le 11-11-2006 à 19:38:36
Merci pour la réponse, en fait je voulais faire en sorte que la syntaxe ressemble à du C orienté/objet le plus possible ;
Par exemple
Code :
|
au lieu de
Code :
|
Je crois que je vais laisser tomber ce que je voulais faire.
Merci pour ton aide
Marsh Posté le 11-11-2006 à 20:32:17
c0wb0y a écrit : Ca trolle un peu là non ? |
Sur le forum C, dire du mal de C++, c'est Bien.
Code :
|
Citation : Je ne connais pas cette syntaxe (deux instructions séparées par une virgule). Il y a une règle/limitation à ça ? |
comma operator. Rien de nouveau. C'est dans ton K&R. L'exécution se fait de gauche à droite.
Le but ici est de rendre visuellement insécable les 2 instructions (celui qui veux insérer quelque chose entre les deux doit être bien courageux...). De plus, ça résiste à l'indentation automatique.
Marsh Posté le 11-11-2006 à 20:34:00
HomerJK a écrit : Merci pour la réponse, en fait je voulais faire en sorte que la syntaxe ressemble à du C orienté/objet le plus possible ;
au lieu de
|
Ben non, c'est pas possible. Au mieux, tu auras :
Code :
|
Ce qui est parfaitement inutile et ralenti l'exécution...
Marsh Posté le 11-11-2006 à 21:00:40
Emmanuel Delahaye a écrit : Ben non, c'est pas possible. Au mieux, tu auras :
Ce qui est parfaitement inutile et ralenti l'exécution... |
Justement, quand j'essaye d'utiliser cette instruction, j'ai une erreur de segmentation.
Après m'être renseigné sur cette erreur, je sais qu'elle survient quand on tente d'accéder à un emplacement mémoire non alloué.
Pourtant, je pense bien avoir fait l'allocation mémoire non ?
Code :
|
Marsh Posté le 11-11-2006 à 22:00:58
HomerJK a écrit : Justement, quand j'essaye d'utiliser cette instruction, j'ai une erreur de segmentation. |
et personne->setUsername qui l'a initialisé ?
Marsh Posté le 11-11-2006 à 22:25:11
C'est bon j'ai réglé mon problème.
Merci Emmanuel Delahaye
Marsh Posté le 14-11-2006 à 14:57:55
c0wb0y a écrit : Je ne connais pas cette syntaxe (deux instructions séparées par une virgule). |
T'as jamais utilisé de virgule en C ???
printf("%s", ...)
Marsh Posté le 11-11-2006 à 18:31:55
Bonjour,
je voudrais avoir une petite aide en C pur.
Je voudrais savoir s'il est possible (et comment) récuperer une instance de structure à partir d'une méthode lancée par cette instance.
Par exemple :
Dans serveurmain.c :
Dans serveur.h :
Dans serveur.c :
En gros, qu'est ce que j'écris plus haut pour récupérer personne ?
J'espère ne pas avoir eu de mal à exprimer mon souci.
Merci d'avance pour les réponses...
Message édité par HomerJK le 11-11-2006 à 18:50:37