• [^] # Re: merci :)))

    Posté par . En réponse à la dépêche wu-imapd. Évalué à 0.

    Meuh non je me suis pas gourre dans mon 3eme argument :+)

    char buffer[400+1];

    buffer[400]=0; // 401eme element

    strncpy(buffer,thestring,400); // --> de 0 a 399

    Le risque d'erreur est la effectivement, mais c'est pour ca que tu fais :

    - allouer un buffer de taille size+1, pas de reflexion a faire tu fais aveuglement un +1 a chaque fois.

    Ensuite tu sais qu'il ne faut pas mettre le +1 dans ton 3eme parametre.

    un petit define:
    #define STACK_BUF(TYPE, NAME, SIZE) TYPE NAME[SIZE+1];

    et ca donne:

    STACK_BUF(char, buffer, 400);

    MyStrnCpy(buffer,thestring, 400);

    La tu ne t'occupes plus de rien d'autres que d'un seul chiffre, plus besoin de chercher des histoires de +1, -1, etc...