1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
|
#include <stdio.h>
#include <string.h> /* size_t, memcpy() */
#define MIN(a, b) ((a) < (b) ? (a) : (b))
/* out_size doit être la taille du tableau de caractères pointé par out en nombre de bytes */
char * traitement(char * out, size_t out_size, unsigned * lg_out)
{
unsigned lg;
lg = MIN(sizeof("test") - 1, out_size - 1);
memcpy(out, "test", lg);
out[lg] = '\0';
*lg_out = lg;
return out;
}
int main (void)
{
unsigned longueur;
char buffer[50];
char buffer2[4];
traitement(buffer, sizeof buffer, &longueur);
printf ("longueur = %u\n", longueur);
printf ("buffer = %s\n", buffer);
traitement(buffer2, sizeof buffer2, &longueur);
printf ("longueur = %u\n", longueur);
printf ("buffer = %s\n", buffer2);
return 0;
} |
Partager