Re: question de C

トップ ページ

このメッセージに返信
著者: Edgar Bonet
日付:  
To: guilde
題目: 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.