salut,
comment dans un module supposé générique peut-on retrouver la taille d'un objet utilisateur ?
par exemple des fonctions comme qsort nécessitent la taille des éléments a trier, ou encore fread() etc...
par exemple disons que j'ai du coté utilisateur un tableau de double, dans mon module générique les double seront pointés par des void*, seulement comment faire pour savoir que ce sont des double ?
pour exemple ce programme :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 #include <stdio.h> #include <stdlib.h> #include <string.h> int main(void) { double a = 4; void *p; p = &a; printf("sizeof(double) = %d\n",sizeof(double)); printf("sizeof(a) = %d\n",sizeof(a)); printf("sizeof(*p) = %d\n",sizeof(*p)); return 0; }
qui sans surprise m'affiche :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 sizeof(double) = 8 sizeof(a) = 8 sizeof(*p) = 1
et comme coté module je n'ai que '*p' sous la main, impossible de savoir que mes éléments font '8' en taille, ce qui est la source de nombreux disfonctionnements...
Partager