Sscanf -> char *chaine et char chaine[10]

Résolu
StreM -  
 StreM -
Salut a tous !

Je reviens avec mes bugs plein la tete ! J'en peux plus !
Qui peut m'expliquer pourquoi
char *chaine;
printf ("\nDomaine : ");
gets(chaine);
scanf (chaine,"%s",&domaine);
printf ("%s", chaine);

ne marche pas alors que
char chaine[10];
printf ("\nDomaine : ");
gets(chaine);
scanf (chaine,"%s",&domaine);
printf ("%s", chaine);

fonctionne tres bien ?

Passque ca m'arrange pas du tout !
J'ai besoin du premier code !
Enfin... si j'arrive a entrer une chaine dans char *chaine, c'est bon !

Si vous avez des idees... Moi je suis a bout !

4 réponses

  1. Nico
     
    Yop,

    chaine = (char *)malloc (10*sizeof(char));

    Pour ce qui est du chiffre, tu chosis. Comme tu avais mis chaine[10] dans ton exemple, j'ai mis 10 pour le malloc.
    En clair ca te donne :

    char *chaine;
    chaine = (char *)malloc (10*sizeof(char));
    printf ("\nDomaine : ");
    gets(chaine);
    scanf (chaine,"%s",&domaine);
    printf ("%s", chaine);

    ++

    Nico
    3
  2. Nico
     
    Yop,

    tu as oublié d'allouer ton pointeur en mémoire. Il faut faire un malloc si tu ne veux plus que ca plante ;)

    Nico
    0
  3. StreM
     
    Dans l'aide de BCB, c'est pas tres clair, et qd j'essaie, il me retourne une chaine toute bizarre...

    Sans vouloir abuser, tu pourrais me dire comment on emploie malloc ?

    Merci de ton aide !
    0
  4. StreM
     
    YESSS !!!

    Ca fonctionne impecc' !
    Respect !

    Merci bien !

    tcho !
    0