Bonjour à tous,
J'ai un petit problème avec mon code qui me permet de créer une interface.
Mon interface:
Représentation de l'interface:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 typedef struct _My_Interface { char* (*init) (char* test); int (*shutdown) (char* test); } My_Interface;
Le fichier main:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 #include <stdlib.h> #include <stdio.h> #include <string.h> #include "interface.h" static char* em_init(char* test); static int em_shutdown(char* test); static My_Interface mytestinterface = { em_init, /* init */ em_shutdown /* shutdown */ };
Quand j'appelle "test->init", j'ai un segmentation fault.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 #include "main.h" static char* em_init(char* test) { printf("%s\n", test); return "hello"; } static int em_shutdown(char* test) { printf("%s\n", test); return 1; } int main() { My_Interface* test; test = malloc(sizeof(mytestinterface)); // Absolument pas sûr de ce que je fais !!! test->init("Hello from module"); test->shutdown("Goodbye from module"); return 0; }
Pouvez-vous me dire comment je dois faire pour charger cette structure en mémoire ?
Merci d'avance pour vos réponses,
Cordialement,
Nicolas.
Partager