Bonjour,
j'aurais besoin d'explication quant à la différence entre memcpy et memmove.
J'ai lu les man et il est dit que memmove gère le cas de deux strings qui se chevauchent alors que memcpy non. J'ai donc fait un main de test ressemblant à ceci:
Le seul soucis est que j'obtiens dans les deux cas le même résultat, c'est-à-dire:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 int main(void) { char foo[] = "hello world"; printf("Avant: (%s)\n", foo); memcpy( &foo[0], &foo[5], 10 ); printf("Apres: (%s)\n", foo); strcpy(foo, "hello world"); printf("Avant: (%s)\n", foo); memmove( &foo[0], &foo[5], 10 ); printf("Apres: (%s)\n", foo); strcpy(foo, "hello world"); printf("Avant: (%s)\n", foo); memcpy( &foo[5], &foo[0], 10 ); printf("Apres: (%s)\n", foo); strcpy(foo, "hello world"); printf("Avant: (%s)\n", foo); memmove( &foo[5], &foo[0], 10 ); printf("Apres: (%s)\n", foo); return (0); }
Avant: (hello world)
Apres: ( world)
Avant: (hello world)
Apres: ( world)Avant: (hello world)
Apres: (hellohello worl(ìë¿¿ôë¿¿äë¿¿É )
Avant: (hello world)
Apres: (hellohello worl(ìë¿¿ôë¿¿äë¿¿É )
Est-ce qu'une personne serait en capacité de m'éclairer un peu plus?
Merci d'avance
Partager