bonjour
en fait je suis en train de faire un exo que me demande de rajouté des valeurs a un tableau dynamique et quand le tableau sera remplie je demande encore de mémoire a l aide de realloc
je vous montre exactement c est que j avais fais
ici j ai initialisé mon tableau ,NB est la taille qui vaut 10 ,RIEN est un macro qui vaut 0
ici j ai enfilé mon tableau en passant en parametre le valeur et le tableau ,tete est un pointeur qui pointe a la premiere case de tableau ,a chaque fois que j enfile ,tete s i ncremente jusqu a la fin
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 void inittab(int **tab) { int i=0; *tab=(int*)malloc(sizeof(int)*NB); for(;i<NB;i++) { *(tab+i)=RIEN; } }
jusqua la l affichage est correcte
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 void enfile(int va,int *tab) { if((cases<NB)&&(tete<=tab+NB)) { *(tab+cases)=va; tete++; cases++; va++; }
le probleme quand j atteint la derniere case de tableau,ici l exercice me demande de faire une realocation de mémoire de coup j ai fais comme ca
ici j ai vu des trucs bizarre
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 else//quand je dépasse la limite tab=realloc(tab,NB*sizeof(int));
0 0 0 0 0
2 0 0 0 0
2 3 0 0 0
2 3 4 0 0
2 3 4 5 0
2 3 4 5 6
*** glibc detected *** ./tp2: realloc(): invalid pointer: 0xbf991d2c ***
======= Backtrace: =========
/lib/i386-linux-gnu/libc.so.6(+0x6b961)[0x7f4961]
/lib/i386-linux-gnu/libc.so.6(realloc+0x2ad)[0x7f973d]
/lib/i386-linux-gnu/libc.so.6(realloc+0x2c5)[0x7f9755]
./tp2[0x8048536]
./tp2[0x8048633]
/lib/i386-linux-gnu/libc.so.6(__libc_start_main+0xe7)[0x79fe37]
./tp2[0x80483c1]
======= Memory map: ========
00110000-0012a000 r-xp 00000000 08:05 7603037 /lib/i386-linux-gnu/libgcc_s.so.1
0012a000-0012b000 r--p 00019000 08:05 7603037 /lib/i386-linux-gnu/libgcc_s.so.1
0012b000-0012c000 rw-p 0001a000 08:05 7603037 /lib/i386-linux-gnu/libgcc_s.so.1
0014f000-00150000 r-xp 00000000 00:00 0 [vdso]
004e0000-004fc000 r-xp 00000000 08:05 7602996 /lib/i386-linux-gnu/ld-2.13.so
004fc000-004fd000 r--p 0001b000 08:05 7602996 /lib/i386-linux-gnu/ld-2.13.so
004fd000-004fe000 rw-p 0001c000 08:05 7602996 /lib/i386-linux-gnu/ld-2.13.so
00789000-008e3000 r-xp 00000000 08:05 7603009 /lib/i386-linux-gnu/libc-2.13.so
008e3000-008e4000 ---p 0015a000 08:05 7603009 /lib/i386-linux-gnu/libc-2.13.so
008e4000-008e6000 r--p 0015a000 08:05 7603009 /lib/i386-linux-gnu/libc-2.13.so
008e6000-008e7000 rw-p 0015c000 08:05 7603009 /lib/i386-linux-gnu/libc-2.13.so
008e7000-008ea000 rw-p 00000000 00:00 0
08048000-08049000 r-xp 00000000 08:05 4068617 /home/chiheb/Documents/L3/Cavancé/tp2/tp2
aborted
merci de m avoir aidé pour resoudre cette probleme
Partager