Bonsoir,

J'ai un tableau alloué dynamiquement, le problème ce pose lorsque je veux le remplir.Je souhaite le remplir à partir d'un fichier.
La ligne incriminé est la suivante :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
while((fgets(tab[i++],50,fp)) != NULL);
tab est le tableau à 2 dimensions allouer précédemment
fp le pointeur de lecture de fichier

et voici le log d'erreur que j'ai par valgrind:

==12058== Invalid write of size 1
==12058== at 0x40243EA: memcpy (mc_replace_strmem.c:406)
==12058== by 0x409506C: _IO_getline_info (in /lib/tls/i686/cmov/libc-2.6.1.so)
==12058== by 0x4094F50: _IO_getline (in /lib/tls/i686/cmov/libc-2.6.1.so)
==12058== by 0x4093EC9: fgets (in /lib/tls/i686/cmov/libc-2.6.1.so)
==12058== by 0x8048C28: main (lecture.c:280)
==12058== Address 0x0 is not stack'd, malloc'd or (recently) free'd
==12058==
==12058== Process terminating with default action of signal 11 (SIGSEGV)
==12058== Access not within mapped region at address 0x0
==12058== at 0x40243EA: memcpy (mc_replace_strmem.c:406)
==12058== by 0x409506C: _IO_getline_info (in /lib/tls/i686/cmov/libc-2.6.1.so)
==12058== by 0x4094F50: _IO_getline (in /lib/tls/i686/cmov/libc-2.6.1.so)
==12058== by 0x4093EC9: fgets (in /lib/tls/i686/cmov/libc-2.6.1.so)
==12058== by 0x8048C28: main (lecture.c:280)
Merci de votre aide