[C] Erreur memoire (valgrind)
Francky
-
fiddy Messages postés 11653 Date d'inscription Statut Contributeur Dernière intervention -
fiddy Messages postés 11653 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 t32 ✓ - Forum Livebox
- Erreur 3000 france tv - Forum Lecteurs et supports vidéo
- Erreur 0x80070643 - Accueil - Windows