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 memcpy_s (C11)

La fonction memcpy La fonction memmem


Entête à inclure

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

Fonction memcpy_s (C11)

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

La fonction memcpy_s est la variante avec contrôle de bornes de memcpy. Elle vérifie notamment que la zone de destination est assez grande avant d'effectuer la copie.

Paramètres

Valeur de retour

La fonction retourne 0 en cas de succès. En cas d'erreur de contrainte, elle retourne un code non nul et peut remettre la zone de destination dans un état défini par l'implémentation.

Exemple de code

Le programme suivant montre une utilisation simple de memcpy_s.

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

int main() {

#ifdef __STDC_LIB_EXT1__
    char source[] = "ABCDE";
    char target[8];

    if ( memcpy_s( target, sizeof target, source, sizeof source ) == 0 ) {
        printf( "%s\n", target );
    }
#else
    puts( "L'annexe K n'est pas disponible sur cette implementation." );
#endif

    return 0;
}
Exemple d'utilisation de memcpy_s

Voici le résultat produit par cet exemple.

ABCDE

Sujets connexes

memcpy
memmove_s
rsize_t


La fonction memcpy La fonction memmem




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