Bonjour à tous,

J'ai un petit problème avec mon code qui me permet de créer une interface.

Mon 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;
Représentation de l'interface:
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 */
};
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
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;
}
Quand j'appelle "test->init", j'ai un segmentation fault.
Pouvez-vous me dire comment je dois faire pour charger cette structure en mémoire ?

Merci d'avance pour vos réponses,
Cordialement,
Nicolas.