[C] Passer l'adresse d'une structure
Résolu/Fermé
kij_82
Messages postés
4089
Date d'inscription
jeudi 7 avril 2005
Statut
Contributeur
Dernière intervention
30 septembre 2013
-
2 juin 2005 à 10:48
kij_82 Messages postés 4089 Date d'inscription jeudi 7 avril 2005 Statut Contributeur Dernière intervention 30 septembre 2013 - 2 juin 2005 à 11:14
kij_82 Messages postés 4089 Date d'inscription jeudi 7 avril 2005 Statut Contributeur Dernière intervention 30 septembre 2013 - 2 juin 2005 à 11:14
A voir également:
- [C] Passer l'adresse d'une structure
- Darkino nouvelle adresse - Guide
- Créer une adresse hotmail - Guide
- Adresse mac - Guide
- Rechercher ou entrer l'adresse - Guide
- Changer adresse dns - Guide
3 réponses
tafiscobar
Messages postés
1277
Date d'inscription
jeudi 7 décembre 2000
Statut
Contributeur
Dernière intervention
26 février 2009
177
2 juin 2005 à 11:01
2 juin 2005 à 11:01
Salut, il n'y a pas de différence entre l'adresse d'un entier ou l'adresse d'une structure, cela reste un pointeur qui contient une adresse. Donc si ta structure c'est par exemple sql:
sql marequete;
&marequete; // te donne l'adresse de marequete
sql *unerequete; // un pointeur sur ta requete.
Maintenant, sur comment passer les messages entre client/serveur cela dépend de l'api et de ce q'il propose et donc je ne peux rien te dire dessus, cela fait un bon moment que je nen ai pas utilisé. En C je sais que l'on ecrit sur un filedescriptor et l'autre lit dessus, je ne sais plus ...
sql marequete;
&marequete; // te donne l'adresse de marequete
sql *unerequete; // un pointeur sur ta requete.
Maintenant, sur comment passer les messages entre client/serveur cela dépend de l'api et de ce q'il propose et donc je ne peux rien te dire dessus, cela fait un bon moment que je nen ai pas utilisé. En C je sais que l'on ecrit sur un filedescriptor et l'autre lit dessus, je ne sais plus ...
TuXor
Messages postés
97
Date d'inscription
lundi 23 mai 2005
Statut
Membre
Dernière intervention
28 avril 2006
25
2 juin 2005 à 11:04
2 juin 2005 à 11:04
Salut kij,
je pense quetu a bien raison de te poser des question sur la validité de l'adresse que tu veux passer a ton client.
car si j'ai bien compris c'est le serveur qui exécute la requète et qui renvoi le résultat au client (normal pour un serveur).
mais comme ce sont deux machines différantes, l'adresse que le serveur renverrait au client, correspondrait a un espace mémoire dont on ne peut rien savoir (a part son contenu brut) et qui ne risque pas de contenir les données escomptées.
Sinon ce que je te conseille, c'est de revoyer le résultat sous forme de buffer, et de le copier ensuite dans une structure identique a celle de départ.
pour récuérer l'adresse d'une variable en c, on utilise
& <variable>.
mais si il s'agit d'un tableau de caractères, il suffit de passer le nom du tableau, qui est lui même un pointeur.
on peut aussi se compliquer la vieinutilement en renvoyant
& tab[0]
en espérant que cela puisse t'être utile @+
je pense quetu a bien raison de te poser des question sur la validité de l'adresse que tu veux passer a ton client.
car si j'ai bien compris c'est le serveur qui exécute la requète et qui renvoi le résultat au client (normal pour un serveur).
mais comme ce sont deux machines différantes, l'adresse que le serveur renverrait au client, correspondrait a un espace mémoire dont on ne peut rien savoir (a part son contenu brut) et qui ne risque pas de contenir les données escomptées.
Sinon ce que je te conseille, c'est de revoyer le résultat sous forme de buffer, et de le copier ensuite dans une structure identique a celle de départ.
pour récuérer l'adresse d'une variable en c, on utilise
& <variable>.
mais si il s'agit d'un tableau de caractères, il suffit de passer le nom du tableau, qui est lui même un pointeur.
on peut aussi se compliquer la vieinutilement en renvoyant
& tab[0]
en espérant que cela puisse t'être utile @+
kij_82
Messages postés
4089
Date d'inscription
jeudi 7 avril 2005
Statut
Contributeur
Dernière intervention
30 septembre 2013
857
2 juin 2005 à 11:14
2 juin 2005 à 11:14
Merci à tous le deux,
cela confirme ce que je pensais masi ej ne voulais pas me lancer dans un truc bien merdique (La structure est la suivante :
Bon bah, je me met au boulot. C'est sutout pour le ****tableau que ca va faire mal... mais bon : je l'ai déjà fait du Perl au C,alors du serveur au client... :)
++
cela confirme ce que je pensais masi ej ne voulais pas me lancer dans un truc bien merdique (La structure est la suivante :
typedef struct temp { char ****tableau; int nb_retours; int *nbligne; int *nbchamp; };)
Bon bah, je me met au boulot. C'est sutout pour le ****tableau que ca va faire mal... mais bon : je l'ai déjà fait du Perl au C,alors du serveur au client... :)
++