Je suis en train de developper un petit projet pour l'école,
il y a une erreur que je n'arrive pas trop a comprendre,
j'ai créé une fonction pour faire un strcat mais avec un double pointeur, quand j'essaie de free tmp, il y a l'erreur : "munmap_chunk(): invalid pointer"
mais si je place le free avant le my_strcat cela fonctionne bien malgré la compilation avec GCC 9 ou Clang 9...
char *my_strcpy(char *dest, char const *src)
{
unsigned long long i = 0;
while (src[i] != '\0') {
dest[i] = src[i];
i++;
}
dest[i] = '\0';
return dest;
}
Le my_strcat.c
char *my_strcat(char *dest, char const *src)
{
long long size = 0;
while (dest[size] != '\0')
size++;
long long i = 0;
while (src[i] != '\0') {
dest[size + i] = src[i];
i++;
}
dest[size + i] = '\0';
return dest;
}
Le my_strllen.c
unsigned long long my_strllen(char const *str)
{
if (str == NULL)
return (0);
long long i = 0;
while (str[i] != '\0')
i++;
return (i);
}
et le test avec criterion :
Test(my_strcat_ptr, simple_2)
{
char *str1 = my_strdup("Bonjour, il est ");
char *str2 = "20h57, nous sommes le 31 octobre";
char *str_exp = "Bonjour, il est 20h57, nous sommes le 31 octobre";
my_strcat_ptr(&str1, str2);
cr_assert_str_eq(str1, str_exp, "The result was %s. Expected %s", str1, str_exp);
free(str1);
}
J'ai testé avec les flags -Og et -g3.
Pas de memory leak ou d'overflow selon valgrind
- Edité par Bensuperpc 1 novembre 2019 à 15:13:49
Problème avec munmap_chunk(): invalid pointer
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.