Ouh là, t'as du mal avec les pointeurs, toi... Ta fonction fect n'a modifié à aucun moment ce qui est pointé par user, car tu commences par affecter une nouvelle valeur à ce pointeur.
Un truc mieux :
Code :
- char *fect();
- int main(int argc, char **argv)
- {
- char *user;
- user=fect();
- printf(user);
- free(user); /* Ne JAMAIS oublier les free !!!!! */
- return 0;
- }
- char *fect()
- {
- char *user;
- user = malloc(20);
- snprintf(user,20,"%s",TEST" );
- return user;
- }
|
Tu peux aussi remplacer le malloc et le snprintf par un appel à asprintf(&user,"%s","TEST" ); qui fait l'allocation tout seul, sans limite de taille (c'est mieux).