comportement non attendu avec memcpy
Bonjour,
J aimerai copier une variable dans une chaine de caractere.
Par exemple copier l entier int i = 123 dans la chaine de caractere char *s.
Lorsque je dis copier, j aimerai que les 4 octets de i soient recopier dans les 4 premier octets de s.
Voici mon code :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
|
1 #include <stdio.h>
2 #include <stdlib.h>
3 #include <string.h>
4
5
6
7 int main(void)
8 {
9 char *s = calloc(5, sizeof(char)); // j alloue la taille d'un int + 1 pour le caractere de fin de chaine.
10 const int i = 134423;
11
12 memcpy(s, &i, 4);
13 printf("%d\n", *s); // j affiche les 4 premier octets.
14
15 return 0;
16 } |
Cela affiche :
Ou ai je puis faire une erreur ???
Merci