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.