Bonjour tout le monde !

je fait une application sur les polynomes avec interface graphique, GTK+ .

Mon problème est que l'une des fonctionnalitées ( appelont la F ) ne marche uniquement si je ne lance pas l'interface graphique.

/* F(int n, float* tx, float* ty) retourne le polynome de lagrange de deux series (x1 ... xn ) ( f(x1) ... f(xn) ) */

pol.c contient les fonctions sur les polynomes
callback.c contient les actions des boutons de l'interface
win.c contient le code de l'interface

F fonctionne lorsque je l'utilise sans interface ( sans utiliser les deux autres fichiers) même avec des polynomes de degre 20.

Alors que F ne fonctionne avec l'interface que si le polynome est de degre <= 7.

Si supérieur à 7 voici ce que j'obtien a l'éxecution :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
*** glibc detected *** ./prog: malloc(): memory corruption: 0x08216988 ***
======= Backtrace: =========
/lib/tls/i686/cmov/libc.so.6[0xb7814356]
/lib/tls/i686/cmov/libc.so.6(__libc_malloc+0x8d)[0xb7815cad]
Backtrace du gdb :

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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
 
Program terminated with signal 11, Segmentation fault.
[New process 7094]
#0  0xb78a80e8 in ?? () from /lib/tls/i686/cmov/libc.so.6
(gdb) bt full
#0  0xb78a80e8 in ?? () from /lib/tls/i686/cmov/libc.so.6
No symbol table info available.
#1  0xb78a9cad in malloc () from /lib/tls/i686/cmov/libc.so.6
No symbol table info available.
#2  0x0804999f in pol_alloc ()
No locals.
#3  0x08049f6f in pol_sum ()
No locals.
#4  0x0804b4fc in pol_lagrange_interpolation ()
No locals.
#5  0x0804c2bd in cb_start ()
No locals.
#6  0xb7a5baef in g_cclosure_marshal_VOID__VOID () from /usr/lib/libgobject-2.0.so.0
No symbol table info available.
#7  0xb7a4e749 in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0
No symbol table info available.
#8  0xb7a62f7b in ?? () from /usr/lib/libgobject-2.0.so.0
No symbol table info available.
#9  0xb7a64c0f in g_signal_emit_valist () from /usr/lib/libgobject-2.0.so.0
No symbol table info available.
#10 0xb7a64f59 in g_signal_emit () from /usr/lib/libgobject-2.0.so.0
No symbol table info available.
#11 0xb7c7801a in gtk_button_clicked () from /usr/lib/libgtk-x11-2.0.so.0
No symbol table info available.
#12 0xb7c79b7e in ?? () from /usr/lib/libgtk-x11-2.0.so.0
No symbol table info available.
#13 0xb7a5baef in g_cclosure_marshal_VOID__VOID () from /usr/lib/libgobject-2.0.so.0
No symbol table info available.
#14 0xb7a4d069 in ?? () from /usr/lib/libgobject-2.0.so.0
No symbol table info available.
#15 0xb7a4e749 in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0
---Type <return> to continue, or q <return> to quit---No symbol table info available.
#16 0xb7a62bbb in ?? () from /usr/lib/libgobject-2.0.so.0
No symbol table info available.
#17 0xb7a64c0f in g_signal_emit_valist () from /usr/lib/libgobject-2.0.so.0
No symbol table info available.
#18 0xb7a64f59 in g_signal_emit () from /usr/lib/libgobject-2.0.so.0
No symbol table info available.
#19 0xb7c780aa in gtk_button_released () from /usr/lib/libgtk-x11-2.0.so.0
No symbol table info available.
#20 0xb7c780d1 in ?? () from /usr/lib/libgtk-x11-2.0.so.0
No symbol table info available.
#21 0xb7d518d4 in ?? () from /usr/lib/libgtk-x11-2.0.so.0
No symbol table info available.
#22 0xb7a4d069 in ?? () from /usr/lib/libgobject-2.0.so.0
No symbol table info available.
#23 0xb7a4e749 in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0
No symbol table info available.
#24 0xb7a6310a in ?? () from /usr/lib/libgobject-2.0.so.0
No symbol table info available.
#25 0xb7a64937 in g_signal_emit_valist () from /usr/lib/libgobject-2.0.so.0
No symbol table info available.
#26 0xb7a64f59 in g_signal_emit () from /usr/lib/libgobject-2.0.so.0
No symbol table info available.
#27 0xb7e70667 in ?? () from /usr/lib/libgtk-x11-2.0.so.0
No symbol table info available.
#28 0xb7d4ab21 in gtk_propagate_event () from /usr/lib/libgtk-x11-2.0.so.0
No symbol table info available.
#29 0xb7d4bd88 in gtk_main_do_event () from /usr/lib/libgtk-x11-2.0.so.0
No symbol table info available.
#30 0xb7bc4a9a in ?? () from /usr/lib/libgdk-x11-2.0.so.0
No symbol table info available.
---Type <return> to continue, or q <return> to quit---#31 0xb79c2cf6 in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
No symbol table info available.
#32 0xb79c60b3 in ?? () from /usr/lib/libglib-2.0.so.0
No symbol table info available.
#33 0xb79c6497 in g_main_loop_run () from /usr/lib/libglib-2.0.so.0
No symbol table info available.
#34 0xb7d4c264 in gtk_main () from /usr/lib/libgtk-x11-2.0.so.0
No symbol table info available.
#35 0x0804d1c0 in main ()
Donc apparement l'erreur se fait dans la librairie C.

Toutes les autres fonctionnalitées marchent tres bien avec l'interface, fonctionnalitées qui sont plus gourmandes en calcul, donc ...

Peut-on en conclure que GTK est la cause de cette erreur ?

Je ne pense quand meme pas que la memoire allouée à l'interface + celle aux calculs soit trop élevée, j'ai 1GO de Ram.

Voila, je vous demande votre avis car je ne sait vraiment pas ce qu'il se passe, si vous voulez le code du programme je vous ferais une petite archive !

Merci à tous !

Ciao & à bientôt !