Bonjour à tous,
Voilà j'aurai une petite question à propos de mon malloc. Ma structure t_block contient trois champs (size_t size, t_block next, et int free).
Voici mon code de démarage:

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
void *malloc(size_t size)
{
  t_block       bloc;
 
  bloc = sbrk(0);
  sbrk (sizeof (struct s_block) + size);
  bloc->size = size;
  if(brk(sbrk(size)) == -1)
  {
    errno = ENOMEM;
    return (NULL);
  }
  else
    return (bloc);
}
En fait pour le début je voudrais simplement renvoyer un pointeur sur l'espace mémoire alloué (si ça a réussit) et que l'utilisateur puisse ajouter des données dans le nouvel espace mémoire. Et renvoyer NULL si ça a échoué en mettant errno à ENOMEM. Mon soucis c'est que je ne sais pas si il faut que je fasse bloc = sbrk (sizeof (struct s_block) + size); car c'est bien beau je retourne bien un pointeur à la fin mais est-ce qu'il c'est déplacé? Ma question doit être stupide mais c'est juste que je doute. Merci pour vos réponses!