Comment corriger cette erreur ds mon code C
samsouma04
Messages postés
66
Statut
Membre
-
samsouma04 -
samsouma04 -
static void *getpage(PAGETYPE type)
{
void *buffer;
PAGE *newpage;
if (max_alloc > 0 && cur_alloc + PAGESIZE + sizeof(PAGE) > max_alloc)
return NULL;
if ((newpage = malloc(sizeof(PAGE))) == NULL ||
(buffer = malloc(PAGESIZE)) == NULL) {
if (newpage != NULL)
free(newpage);
return NULL;
}
memset(buffer, 0, PAGESIZE);
newpage->start = buffer;
newpage->end = buffer + PAGESIZE;
newpage->count = 0;
newpage->size = (type == NODE ? NODES_PER_PAGE
: (type == LEAF ? LEAFS_PER_PAGE
: INTLEAFS_PER_PAGE));
newpage->next = pagelist;
pagelist = newpage;
cur_alloc += PAGESIZE + sizeof(PAGE);
return buffer;
}
l'erreur est: 'void *' : unknown size
l'erreur est sur la ligne newpage->end = buffer + PAGESIZE;
Merci d'avance
{
void *buffer;
PAGE *newpage;
if (max_alloc > 0 && cur_alloc + PAGESIZE + sizeof(PAGE) > max_alloc)
return NULL;
if ((newpage = malloc(sizeof(PAGE))) == NULL ||
(buffer = malloc(PAGESIZE)) == NULL) {
if (newpage != NULL)
free(newpage);
return NULL;
}
memset(buffer, 0, PAGESIZE);
newpage->start = buffer;
newpage->end = buffer + PAGESIZE;
newpage->count = 0;
newpage->size = (type == NODE ? NODES_PER_PAGE
: (type == LEAF ? LEAFS_PER_PAGE
: INTLEAFS_PER_PAGE));
newpage->next = pagelist;
pagelist = newpage;
cur_alloc += PAGESIZE + sizeof(PAGE);
return buffer;
}
l'erreur est: 'void *' : unknown size
l'erreur est sur la ligne newpage->end = buffer + PAGESIZE;
Merci d'avance
Configuration: Windows XP Internet Explorer 6.0
2 réponses
-
Bonjour
en C, quand tu fais pointeur+decalage, le compilateur tient compte du type de pointeur pour décaler l'adresse de 1,2,4 etc... fois décalage selon la taille du type d'objet pointé.
Comme ton pointeur est de type void, la taille du type d'objet pointé c'est la taille de void (si on peut dire..), et void n'a pas de taille.
Je suppose que tu voulais ajouter une taille en octets, tu peux tromper le compilateur en faisant un type cast (char *) -
merci mais je change quoi exactement dans mon code? car jai essayé dajouter une taille et ca n'a pas marché pe etre jai pa su comment le faire!!!!
Merci davance