dans une programmation C son étant donné que nous ne pouvons pas obtenir les valeurs en utilisant la fonction scanf() pour tableau de pointeurs, maistableau de pointeurs vers des chaînes
int main()
{
char *names[6];
int loop;
scanf("%s",names[1]);
printftf("\n%s",names[1]);
}
il travaille, quand je donne l'entrée en tant que programme , je pense qu'il stocke l'entrée, mais elle imprime la sortie correctement comme donnée input.after qui lui donne une erreur de segmentation ... mais quand je fais la même chose dans une boucle pour obtenir 6 charecters
int main()
{
char *names[6];
int loop;
for(loop=0;loop<6;loop++)
scanf("%s",names[1]);
for(loop=0;loop<6;loop++)
printf("\n%s",names[1]);
}
son ne fonctionne pas s'il vous plaît donnez-moi la réponse ...
Bonne réponse, K-ballo. Bien que le code original soit un exemple plutôt trivial, il est toujours recommandé de vérifier les retours NULL de malloc pour intercepter les conditions de mémoire insuffisante: if ((noms [i] = malloc (256 * sizeof (char)) == NULL) {fprintf (stderr, "Erreur d'allocation! \ n"); exit (1)}. –
Est-ce que 'sizeof * names [0]' serait mieux ici que 'sizeof (char)'? De cette façon, il suit le type réel, – jthill
D'autant plus que 'sizeof (char)' est 1. –