Bonjour,
Je suis entrain d'écrire une fonction qui se charge de faire les allocation mémoire et surtout de les surveiller. Le prototype de cette fonction est :
Globalement, cette fonction fait l'action suivante (après un certain nombre de controles)
Code : Sélectionner tout - Visualiser dans une fenêtre à part void mon_malloc(void **Pointer, const size_t Size);
Par contre, j'ai une difficulté lors de l'appel à cette fonction
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 ... *Pointer = ::malloc(Size) ...
J'ai une erreur du compilateur
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 char *ptr = NULL; mon_malloc(&ptr, 100);
Lors de l'appel, il faut que je fasse un cast
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 1>memory.cpp(15) : error C2664: 'mon_malloc'*: impossible de convertir le paramètre 1 de 'char * *__w64 ' en 'void **' 1> Les types pointés n'ont aucun rapport entre eux*; conversion nécessitant reinterpret_cast, cast de style C ou cast de style fonctionpour supprimer cette erreur. Même si je comprends bien le besoin, je me demande, s'il n'y aurait pas une subtilité d'écriture permettant de supprimer ce cast explicite (je ne souhaite pas non plus écrire une fonction surchargée pour chacun des types de pointeurs potentiels)
Code : Sélectionner tout - Visualiser dans une fenêtre à part mon_malloc((void **)&ptr, 100);
Merci pour vos réponses
Partager