Bonjour, je fais appelle à vous suite à une erreur que je ne comprend pas. Le point positif c'est que je sens qu'en comprenant d'où elle vient, je comprendrai plein de choses!!
Ce morceau me pose en fait deux problèmes: d'abord, les résultats de addition, division, etc.. ne s'affiche pas correctement lors des printf().
Ensuite, le programme plante (segfault) lors de l'apparition des free(). Les deux problèmes sont probablement liés!! Les fontion additions, multiplication et soustraction fonctionnent bien lorsque je les test séparement.
Si quelqu'un a une idée..
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 int main ( void ) { char const *a = "123456012457984546412354565787987846100123456789629"; char const *b = "9517534286421972213546"; char* e=NULL; char* d=NULL; char* c=NULL; e=malloc(SZ_MAX*sizeof(char)); d=malloc(SZ_MAX*sizeof(char)); c=malloc(SZ_MAX*sizeof(char)); if(e==NULL || d==NULL || c==NULL) { printf("failure in memory allocation\n"); exit(0); } e=division(a,b); printf("%s / %s = %s\n\n", a, b, e); d=multiplication(e,b); printf("%s * %s = %s\n\n", e, b, d); c=soustraction(a,d); printf("%s - %s = %s\n\n", a,d, c); free(e); free(d); free(c); return 0; }
Partager