Bonjour, je fais appel à votre aide car je créer actuellement un programme de calculatrice en C, la contrainte étant d'utiliser des pointeurs et différentes fonctions. Mon programme SEGFAULT, en entrant dans un switch ou je fais appel à ces mêmes fonctions.

Sans forcément copier tout mon programme, je vous montre les principaux éléments essentiel à mon avis à la compréhension.
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
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
/** Déclaration des variables et pointeurs **/
int *nbr1 = NULL;
nbr1 = malloc(sizeof(int));
int *nbr2 = NULL;
nbr2 = malloc(sizeof(int));
int *resultat;
resultat = malloc(sizeof(int));
 
/** Boucle switch pour appeller mes fonctions **/
switch (choix2)
        {
        case 1:
            addition (resultat, nbr1, nbr2);
            printf("%d", resultat);
            break;
 
        case 2:
            soustraction (resultat, nbr1, nbr2);
            printf("\n  \4    ----     %d - %d = %d      ---- \n", nbr1, nbr2, resultat);
            break;
 
        case 3:
            multiplication (resultat, nbr1, nbr2);
            break;
 
 
/** Dans mon calcul.c voici la déclaration de ces fonctions **/
void addition (int resultat, int *nbr1, int *nbr2){
        resultat = *nbr1 + *nbr2;
        }
 
int soustraction (int resultat, int *nbr1, int *nbr2){
        resultat = (*nbr1) - (*nbr2);
        }
void multiplication (int *resultat, int *nbr1, int *nbr2){
        (*resultat) = (*nbr1) * (*nbr2);
        }
 
 
/** Prototype (header) **/
void addition(int resultat, int *nbr1, int *nbr2);
int soustraction (int *nbr1, int *nbr2, int resultat);
void multiplication (int *resultat, int *nbr1, int *nbr2);
Vous pourrez voir que j'ai essayer de plusieurs manière différentes, sans succès .
Je vous remercie d'avance pour votre aide.