Bonsoir a tous,
actuellement je suis sur un projet, mais je bute sur les allocations de mémoire.
voila mon probleme : attente est un char* qui recoit des valeurs grace a strcpy et malloc, et avant de faire justement les malloc je voudrais faire un free dessus mais j'ai un probleme.
voici la ligne de code qui a un probleme:
attente est déclaré avec un malloc également pou éviter de faire un free la première fois sur un pointeur ou j'ai aps fait de malloc
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 printf("%s\n",attente); printf("free attente\n"); free(attente); printf("free effectue\n");
quand j'exécute ça me donne ceci au bout du troisième passage dans cette partie du code
au début je pensais que je faisait un free sur un pointeur ou j'avais pas fait un malloc, mais quand j'affiche attente avant le free, il m'affiche bien son contenu(et je n'affecte a attente que des valeur par strcpy précédé de malloc)
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 attente=w free attente *** glibc detected *** ./test: free(): invalid next size (fast): 0x0804b318 *** ======= Backtrace: ========= /lib/i686/cmov/libc.so.6[0xb7e5bcf5] /lib/i686/cmov/libc.so.6(cfree+0x90)[0xb7e5f790] ./test[0x8049078] ./test[0x8049788] /lib/i686/cmov/libc.so.6(__libc_start_main+0xe0)[0xb7e08050] ./test[0x8048711] ======= Memory map: ======== 08048000-0804a000 r-xp 00000000 00:14 1013830 /reseau/v240/etudiant/yann.dumas/lzw/test 0804a000-0804b000 rw-p 00001000 00:14 1013830 /reseau/v240/etudiant/yann.dumas/lzw/test 0804b000-0806c000 rw-p 0804b000 00:00 0 [heap] b7a00000-b7a21000 rw-p b7a00000 00:00 0 b7a21000-b7b00000 ---p b7a21000 00:00 0 b7bf1000-b7df2000 rw-p b7bf1000 00:00 0 b7df2000-b7f34000 r-xp 00000000 08:02 639049 /lib/i686/cmov/libc-2.6.1.so b7f34000-b7f35000 r--p 00142000 08:02 639049 /lib/i686/cmov/libc-2.6.1.so b7f35000-b7f37000 rw-p 00143000 08:02 639049 /lib/i686/cmov/libc-2.6.1.so b7f37000-b7f3a000 rw-p b7f37000 00:00 0 b7f41000-b7f4b000 r-xp 00000000 08:02 638980 /lib/libgcc_s.so.1 b7f4b000-b7f4c000 rw-p 00009000 08:02 638980 /lib/libgcc_s.so.1 b7f4c000-b7f4f000 rw-p b7f4c000 00:00 0 b7f4f000-b7f50000 r-xp b7f4f000 00:00 0 [vdso] b7f50000-b7f6c000 r-xp 00000000 08:02 641443 /lib/ld-2.6.1.so b7f6c000-b7f6e000 rw-p 0001b000 08:02 641443 /lib/ld-2.6.1.so bf9ce000-bf9e3000 rw-p bf9ce000 00:00 0 [stack] Abort
bon mon projet est gros, donc je peux pas mettre toutes les sources, mais si vous pouviez me donner des pistes sur les possbiles sources de ce probleme.
merci d'avance
yann
Partager