thoduv a écrit :
Sinon tu peux me donner des examples de "problèmes habituels" de gestion de mémoire ?
|
T'as le très classique débordement de capacité :
Code :
- #include <stdio.h>
- #include <stdlib.h>
- #include <strings.h>
- int main (void)
- {
- char source[] = "machin";
- char *cible = malloc(strlen(source) * sizeof *cible);
- if ( cible )
- {
- strcpy(cible, source);
- printf("cible = %s\n", cible);
- free(cible);
- }
- return 0;
- }
|
Ca semble fonctionner, sauf qu'aléatoirement tu auras des surprises à l'affichage de "cible".
Et avec un programme plus étoffé avec ce genre d'erreur, tu te retrouves avec des comportements étranges et aléatoires.
Mais des exemples de problèmes mémoires, il y en a des tas d'autres.
Message édité par Elmoricq le 03-11-2005 à 21:49:18