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.
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).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 if( ( var = calloc(taille_variable, sizeof(type_variable) ) == NULL ) return -1;
Mon idée serait donc qqc du style :
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 ?
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;
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
Partager