Re: question de C

Top Page

Reply to this message
Author: Edgar Bonet
Date:  
To: guilde
Subject: Re: question de C
Bonsoir !

Patrick Dupré a écrit :
> #define REALLOC(ptr, n, type) (type*) realloc ((void*)ptr, (size_t)(n * sizeof (type)))


Raphaël Dorado a répondu :
> Il faut mettre des parenthèses autour de chaque référence d'un
> paramètre de la macro [...]


J'en profite pour glisser trois commentaires en passant:

- en C les casts entre (void *) et autres types de pointeur sont
inutiles ;

- le cast en size_t est aussi inutile, vu que c'est déjà le type
retourné par sizeof ;

- devoir passer en paramètre le nom du type est source d'erreurs, il
vaut mieux utiliser le type vers lequel pointe ton pointeur.

Je te suggère donc :

    #define REALLOC(ptr, n) realloc((ptr), (n) * sizeof *(ptr))


À+,

Edgar.