Re: question de C

Page principale

Répondre à ce message
Auteur: Edgar Bonet
Date:  
À: guilde
Sujet: 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.