A la fin, on a Buffer et *BUFFER.
Cela nous permet plus tard de définir un objet de type Buffer, et un autre objet, qui est cette fois un pointeur sur Buffer.
On a ensuite la fonction d'allocation:
Code:
1 2 3 4 5 6 7 8 9 10 11
| BUFFER NewBuffer(int size)
{
BUFFER buf;
buf = (BUFFER) Malloc(sizeof(struct buffer_));
buf->buffer = Malloc(sizeof(long)*(size+1));
buf->size = size+1;
buf->start = buf->end = buf->buffer;
buf->flagEof = '\n';
return(buf);
} |
Cette fonction renvoie un objet de type BUFFER, qui est un pointeur sur Buffer
la première allocation est fictive, elle permet de créer l'objet buf,
et la deuxième est réelle, car elle permet de définir la taille de l'objet buf?
(j'ai l'impression qu'on fait deux fois la même chose).