Memory fault avec une structure
Bonjour,
Je débute en C. Je m'inspire du code proposé ici pour créer des classes me permettant de gérer facilement les sémaphores et segments de mémoire partagée.
Fichier ipcobj.h
Code:
1 2 3 4 5 6 7 8 9
| struct sIPCObject{
int iSemNbr;
int iSemId;
};
struct sIPCObject *sIPCObject_new(int, int);
void sIPCObject_Delete(struct sIPCObject **this);
int sIPCObject_getSemNbr(struct sIPCObject *this);
void sIPCObject_CreateSem(struct sIPCObject *this); |
Fichier ipcobj.c :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| #include <sys/sem.h>
#include <sys/shm.h>
#include <ipcobj.h>
struct sIPCObject *sIPCObject_new(int iSemNbr, int iSemId) {
struct sIPCObject *p = (struct sIPCObject *)malloc (sizeof (struct sIPCObject));
if (!p)
return NULL;
p->iSemNbr = iSemNbr;
return p;
}
void sIPCObject_Delete(struct sIPCObject **this) {
if(*this)
free(*this);
*this = NULL;
} |
Ensuite, je crée un objet sIPCObject avec :
Code:
1 2 3 4
| struct sIPCObject *myIPCObjet;
int main(int argc, char *argv[]) {
myIPCObjet = sIPCObject_new(1, 1);
sIPCObject_Delete(&myIPCObjet); |
L'affectation de la variable iSemNbr me provoque un Memory fault(coredump).