Bonjour,

je viens de voir que les macros permettent de "factoriser" du code un peu comme les fonctions.

Aussi j'ai un programme ou j'ai énormément d'appels à malloc avec test de réussite et je souhaiterai savoir si je peux en faire une macro.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
if( ( var = calloc(taille_variable, sizeof(type_variable) ) == NULL )
                return -1;
Enfaite je souhaite lorsque je déroule mon programme, qu'il alloue de la mémoire et retourne -1 en cas d'erreur. Si tout se passe bien, "il ne se passe rien" et le programme continue. La taille et le type de var changent (char, unsigned long int, etc).

Mon idée serait donc qqc du style :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
#define allocation(a, b)
           if( ( var = calloc(a, sizeof(b) ) == NULL )
                     return -1;
J'y connais rien en macro donc deja : est-ce que c'est possible ? Si oui comment ? Sinon pensez vous que ce soit plus pertinent qu'une fonction ?


Est-ce la libération de cet espace mémoire sera identique : free(var) ? (dans la mesure ou c'est possible).

Merci de vos lumières =)

n0mad