Tu peux simplifier ton malloc ainsi (le cast n'est pas utile ici) :
struct sIPCObject *p = malloc (sizeof (*p));
Par ailleurs, je trouve tous ces struct bien lourd, tu peux éviter cela en faisant un typedef sur ta structure soit:
1 2 3 4 5
| typedef struct {
int iSemNbr;
int iSemId;
}
sIPCObject; |
Maintenant tu n'a plus besoin d'utiliser le mot clé struct comme par exemple, ton malloc deviendrais:
sIPCObject *p = malloc (sizeof (*p));
Ton main n'est par ailleurs pas complet et ton code est vraiment illisible:
1 2 3 4 5 6 7
| int main(int argc, char *argv[])
{
struct sIPCObject *myIPCObjet = sIPCObject_new (1, 1);
sIPCObject_Delete (&myIPCObjet);
return 0;
} |
Evite les globales comme tu viens de le faire !
Une meilleure construction de ton constructeur serait:
1 2 3 4 5 6 7 8 9 10 11
| struct sIPCObject *sIPCObject_new (int iSemNbr, int iSemId)
{
struct sIPCObject *p = malloc (sizeof (*p));
if (p != NULL)
{
p->iSemNbr = iSemNbr;
}
return p;
} |
Plusieurs return dans une même fonction n'est pas très joli surtout si ca peut être évité facilement 
A part cela, je ne vois pas trop le problème, il ne devrait pas en avoir
Partager