Bonsoir,
Pour insérer du code, on utilise les balises [code]mon code[/code] (bouton ) et non [quote]mon code[/quote]
La ligne
char * alexis[10]={"alexis","je",/*Jusqu'au remplissage des 10 éléments*/}
(qui serait mieux avec un const devant ) fait pointer tes 10 pointeurs alexis[i] vers les cases mémoires contenant les différentes chaînes constantes "alexis", "je"...
Tel quel, tes cases alexis[i] pointent donc vers un espace réservé et valide.
Mais lorsque tu déclares char * alexis[10]; les pointeur ne sont pas initialisés. C'est comme si tu déclarais 10 pointeurs char *str.
Il te faut d'abord allouer chaque case avec malloc()/calloc() avant de pouvoir l'utiliser, puis libérer cet espace avec free() une fois terminé.
Concernant l'utilisation peu recommandée de la fonction scanf(), je t'invite à lire ce tutoriel.
Ainsi que la FAQ Pourquoi ne faut-il pas utiliser fflush(stdin) pour vider le buffer clavier ? pour ce qui est de la ligne fflush(stdin);
Partager