Participer au site avec un Tip
Rechercher
 

Améliorations / Corrections

Vous avez des améliorations (ou des corrections) à proposer pour ce document : je vous remerçie par avance de m'en faire part, cela m'aide à améliorer le site.

Emplacement :

Description des améliorations :

Vous êtes un professionnel et vous avez besoin d'une formation ? Programmation avec
Le langage C
Voir le programme détaillé

Fonction memmove_s (C11)

La fonction memmove La fonction memset


Entête à inclure

#define __STDC_WANT_LIB_EXT1__ 1
#include <string.h>  // <cstring> en C++

Fonction memmove_s (C11)

errno_t memmove_s( void * destination, rsize_t destinationSize, const void * source, rsize_t size );

La fonction memmove_s ajoute les contrôles de bornes de l'annexe K à la logique de memmove. Elle reste adaptée aux copies entre deux zones qui se chevauchent.

Paramètres

Valeur de retour

La fonction retourne 0 en cas de succès et un code d'erreur non nul en cas de violation de contrainte.

Exemple de code

Le programme suivant montre une utilisation simple de memmove_s.

 1 
 2 
 3 
 4 
 5 
 6 
 7 
 8 
 9 
 10 
 11 
 12 
 13 
 14 
 15 
 16 
#define __STDC_WANT_LIB_EXT1__ 1
#include <stdio.h>
#include <string.h>

int main() {

#ifdef __STDC_LIB_EXT1__
    char buffer[] = "abcdef";
    memmove_s( buffer + 2, sizeof buffer - 2, buffer, 4 );
    puts( buffer );
#else
    puts( "L'annexe K n'est pas disponible sur cette implementation." );
#endif

    return 0;
}
Exemple d'utilisation de memmove_s

Voici le résultat produit par cet exemple.

ababcd

Sujets connexes

memmove
memcpy_s


La fonction memmove La fonction memset




Vous êtes un professionnel et vous avez besoin d'une formation ? Programmation avec
Le langage C
Voir le programme détaillé