[C] Erreur memoire (valgrind)
Francky
-
fiddy Messages postés 11069 Date d'inscription Statut Contributeur Dernière intervention -
fiddy Messages postés 11069 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
Je suis en train de recoder un shell en C.
Je viens de terminer les alias, cela dit j'ai un probleme lorsque je lance valgrind.
Il me fait :
==1669== Conditional jump or move depends on uninitialised value(s)
==1669== at 0x8048B34: my_strcmp (in ./mysh)
==1669== by 0x8048997: alias (in ./mysh)
==1669== by 0x8049504: pre_command (in ./mysh)
==1669== by 0x8048884: mishi_runner (in ./mysh)
==1669==
==1669== Conditional jump or move depends on uninitialised value(s)
==1669== at 0x8048A14: alias (in ./mysh)
==1669== by 0x8049504: pre_command (in ./mysh)
==1669== by 0x8048884: mishi_runner (in ./mysh)
==1669== by 0x8048910: main (in ./mysh)
voici les bouts de code concernes :
func pre-command
func alias
func my_strcmp
Euh voili voilou , je ne comprend pas du tout l'erreur de Valgrind car toutes les variables qui se baladent ont ete initialise... non ?
Mici
Je suis en train de recoder un shell en C.
Je viens de terminer les alias, cela dit j'ai un probleme lorsque je lance valgrind.
Il me fait :
==1669== Conditional jump or move depends on uninitialised value(s)
==1669== at 0x8048B34: my_strcmp (in ./mysh)
==1669== by 0x8048997: alias (in ./mysh)
==1669== by 0x8049504: pre_command (in ./mysh)
==1669== by 0x8048884: mishi_runner (in ./mysh)
==1669==
==1669== Conditional jump or move depends on uninitialised value(s)
==1669== at 0x8048A14: alias (in ./mysh)
==1669== by 0x8049504: pre_command (in ./mysh)
==1669== by 0x8048884: mishi_runner (in ./mysh)
==1669== by 0x8048910: main (in ./mysh)
voici les bouts de code concernes :
func pre-command
void pre_command(char *str) { if (str[0] != 10) select_command(alias(str)); else select_command(str); }
func alias
char *alias(char *alias) { char *command; int fd; char *buf; int count; int count2; buf = xmalloc(sizeof(*buf) * SMAX); command = xmalloc(sizeof(*command) * 32); fd = xopen(".mishirc", O_RDONLY); xread(fd, buf, SMAX); count = 0; while (buf[count] != 0) { if (my_strcmp(buf, "alias ", count, 0, 6) == 1 && my_strcmp(buf, alias, count + 6, 0, my_strlen(alias, 0, 10)) == 1)
func my_strcmp
int my_strcmp(char *str, char *str2, int count, int count2, int end) { int res; res = 1; while (end != 0) { if (str[count] != str2[count2]) res = 0; count++; count2++; end--; } return (res); }
Euh voili voilou , je ne comprend pas du tout l'erreur de Valgrind car toutes les variables qui se baladent ont ete initialise... non ?
Mici
A voir également:
- [C] Erreur memoire (valgrind)
- Mémoire vive - Guide
- Nettoyer memoire iphone - Guide
- Erreur 0x80070643 - Accueil - Windows
- L'instruction à 0x emploie l'adresse mémoire 0x l'état de la mémoire ne peut pas être read - Astuces et Solutions
- J'aime par erreur facebook notification - Forum Facebook