Bonjour a tous,

Mon problème est très simple, mes free ne fonctionne pas, je m'en suis aperçu en manipulant des listes chaine, mais le probleme apparait de toute maniere sur des programmes beaucoup plus simple.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
 
#include <stdio.h>
#include <stdlib.h>
 
int		main(void)
{
	char	*str;
 
	str = malloc(sizeof(char) * 3 + 1);
 
	str[0] = 'a';
	str[1] = 'b';
	str[2] = 'c';
	str[3] = '\0';
 
	printf("str -> %s\n", str);
	free(str);
	printf("str -> %s\n", str);
	return (0);
}
Me donne en sortie : -> abc
-> abc
alors que je viens de desalouer l'adresse.
J'ai essayer plein de trucs sans succès, Je suis sur mac os et j'utilise iTerm et ohmyzsh. J'ai essayer sur la machine d'un amis sur linux et son programme avec le meme code fonctionne.

Merci de votre aide !