Самый легкий ответ: не делайте это в коде, но настраивает IIS вместо этого .
memcpy ()
копий из одного места в другое. memset ()
просто устанавливает для всех частей памяти одно и то же значение.
Пример:
memset(str, '*', 50);
Вышеупомянутая строка устанавливает для первых 50 символов строки str значение * (или любой другой второй аргумент memset ).
memcpy(str2, str1, 50);
Вышеупомянутая строка копирует первые 50 символов str1 в str2.
memset ()
устанавливает для всех байтов в указанном буфере одно и то же значение, memcpy ()
копирует последовательность байтов из другого места в буфер .
char a[4];
memset(a, 7, sizeof(char)*4);
/*
* a is now...
*
* +-+-+-+-+
* |7|7|7|7|
* +-+-+-+-+
*/
char b[] = {1,2,3,4};
char c[4];
memcpy(c, b, sizeof(char)*4);
/*
* c is now...
*
* +-+-+-+-+
* |1|2|3|4|
* +-+-+-+-+
*/
memset
устанавливает для блока памяти одно значение. memcpy
копирует содержимое блока в другой блок.
Возможно, вас заинтересует разница между memcpy
и memmove
. Оба делают то же самое, но последний работает, даже если источник и место назначения перекрываются.
memset ()
используется для установки всех байтов в блоке памяти на определенное значение char. Memset также хорошо работает только с char
, поскольку это его значение инициализации.
memcpy ()
копирует байты между памятью. Этот тип копируемых данных не имеет значения, он просто делает побайтовые копии.