C/C++ Parcours de memoire en C

A

Anonymous

Invité
#1
Bonsoir,
Je m'attaque récemment au C et au fameux "pointeur" et je me heurte à un "petit" problème ...

Disons une fonction qui permet d'allouer en mémoire 7 bytes pour une structure de type Pandi.

proto fonction & Structure Pandi:
Code:
void * returnPandiMem();
Pandi{
- int n : 4 byte
- short s : 2 byte
- char c : 1 byte
}
Cette fonction retourne bien entendu un pointeur générique, à savoir void*, comment pourrais je "reconstruire" cette structure en parcourant cette zone mémoire ?

L'idée principale,j'arrive pas a la saisir, je sais qu'il faut faire un cast, un char*? Mais ensuite? je suis perdu ...

merci pour l'aide à venir '^^
 
A

Anonymous

Invité
#2
J'ai pas tout a fais compris ta question, tu peux donner un exemple ou ré-expliquer ton problème stp ?
 
A

Anonymous

Invité
#3
J'ai résolu le problème
en gros j'avais une zone mémoire remplie par différent type dans un ordre "voulu", je devais juste exploiter ces données, crée la structure, ...
 

Shornaal

Membre Actif
Inscrit
17 Février 2011
Messages
194
Reactions
0
#4
Donne la solution alors, ça servira peut-être à quelqu'un un de ces jours ! (;
 
Inscrit
19 Octobre 2010
Messages
214
Reactions
0
#5
L'idée dans ce cas, en tous cas la façon propre de faire, c'est de déclarer effectivement ta structure
struct Pandi {
int n;
short s;
char c;
}


Ensuite tu peux caster to pointeur en un "Pandi *":
Code:
Pandi *MonPointeurAMoi = returnPandiMem();
ce qui te permettra d'accéder facilement à chaque membre:
Code:
MonPointeurAMoi->n
FF, vétéran du C et C++. Reconverti au C#.
 

Geraff

Administrateur
Membre du personnel
Inscrit
13 Mars 2008
Messages
564
Reactions
0
#7
Oh je n'avais pas compris ça.

Je pensai qu'il voulait retransformer son pointeur générique void* en Pandi* (ou autre chose) pour retrouver sa structure.
Bref de tête ça aurait été
Pandi monPandi = *(Pandi*)tonpointeur;
 

4R7Y

Contributeur
Inscrit
6 Mars 2011
Messages
213
Reactions
0
#8
Un malloc de la taille de ta structure n'est-elle pas suffisante ? a moins d'avoir mal compris

Mais j'ai l'impression que ça revient un peu au même que ce que FF propose
 

Geraff

Administrateur
Membre du personnel
Inscrit
13 Mars 2008
Messages
564
Reactions
0
#9
En fait personne n'a compris le problème de la même façon... Il faudrait voir de mieux expliquer et de répondre ^^.
 
Haut Bas