• # Chaîne en C -> allocation

    Posté par . En réponse au message scanf s'arrête au espaces. Évalué à 3.

    Tu dois prévoir la place, pour que scanf te copie les octets dedans.
    Actuellement to char *toto pointe n'importe où.
    ->
    char toto[128];
    ou bien
    char *toto = (char*)malloc(256);
    avant de demander à scanf de te copier des octets, selon le format que tu lui communiques, depuis l'entrée standard.
    -> si tu es sûr que ça tient dans 127 caractères
    char toto[128];
    scanf("%127s", toto);
    printf("\n%s\n");
    return 0;
    mais si ce n'est que pour lire des chaînes (pas des entiers, hexa ...)
    préférer fread
    => man scanf; man fread
    Hope this helps.