memcpy_s wmemcpy_s
Kopie bajtů mezi vyrovnávací paměti.Tyto verze jsou memcpy wmemcpy s vylepšení zabezpečení popsaným v Funkce zabezpečení v CRT.
errno_t memcpy_s(
void *dest,
size_t numberOfElements,
const void *src,
size_t count
);
errno_t wmemcpy_s(
wchar_t *dest,
size_t numberOfElements,
const wchar_t *src,
size_t count
);
Parametry
dest
Nové vyrovnávací paměti.numberOfElements
Velikost cílové vyrovnávací paměti.src
Vyrovnávací paměť kopírovat z.count
Počet znaků, které chcete kopírovat.
Vrácená hodnota
Nula, pokud je úspěšná. Kód chyby při selhání.
Chybové podmínky
dest |
numberOfElements |
src |
Vrácená hodnota |
Obsahdest |
---|---|---|---|---|
NULL |
žádné |
žádné |
EINVAL |
Nezměněno |
žádné |
žádné |
NULL |
EINVAL |
destje vynulován |
žádné |
< count |
žádné |
ERANGE |
destje vynulován |
Poznámky
memcpy_scopies count bytes from src to dest; wmemcpy_skopie count široké znaky (dvou bajtů).Pokud zdrojový a cílový překrývají, chování memcpy_s nedefinovaná.Použití memmove_s zpracování překrývající se oblasti.
Tyto funkce ověřit jejich parametrů.Pokud dest nebo src je nulový ukazatel nebo numberOfElements je příliš malá pro vyrovnávací paměť, tyto funkce vyvolat popisovač neplatný parametr popsaným v Ověření parametrů.Pokud je povoleno spuštění pokračovat, vrátí tyto funkce EINVAL a errno na EINVAL.
Požadavky
Rutina |
Požadované záhlaví |
---|---|
memcpy_s |
<memory.h> nebo <string.h> |
wmemcpy_s |
<wchar.h> |
Další informace o kompatibilitě, viz Compatibility v úvodu.
Příklad
// crt_memcpy_s.c
// Copy memory in a more secure way.
#include <memory.h>
#include <stdio.h>
int main()
{
int a1[10], a2[100], i;
errno_t err;
// Populate a2 with squares of integers
for (i = 0; i < 100; i++)
{
a2[i] = i*i;
}
// Tell memcpy_s to copy 10 ints (40 bytes), giving
// the size of the a1 array (also 40 bytes).
err = memcpy_s(a1, sizeof(a1), a2, 10 * sizeof (int) );
if (err)
{
printf("Error executing memcpy_s.\n");
}
else
{
for (i = 0; i < 10; i++)
printf("%d ", a1[i]);
}
printf("\n");
}
Ekvivalent v rozhraní .NET Framework
Nelze použít Použijte volání funkce standardní C, PInvoke. Další informace naleznete v tématu Příklady vyvolat platformu.
Viz také
Referenční dokumentace
Manipulace s vyrovnávací paměti
strncpy, _strncpy_l, wcsncpy, _wcsncpy_l, _mbsncpy, _mbsncpy_l
strncpy_s, _strncpy_s_l, wcsncpy_s, _wcsncpy_s_l, _mbsncpy_s, _mbsncpy_s_l