wmemmove, wmemmove_s
From cppreference.net
|
Определено в заголовке
<wchar.h>
|
||
|
wchar_t
*
wmemmove
(
wchar_t
*
dest,
const
wchar_t
*
src,
size_t
count
)
;
|
(1) | (начиная с C95) |
|
errno_t wmemmove_s
(
wchar_t
*
dest, rsize_t destsz,
const wchar_t * src, rsize_t count ) ; |
(2) | (начиная с C11) |
1)
Копирует ровно
count
последовательных широких символов из массива широких символов, на который указывает
src
, в массив широких символов, на который указывает
dest
. Если
count
равен нулю, функция ничего не делает. Массивы могут перекрываться: копирование происходит так, как если бы широкие символы были скопированы во временный массив широких символов, а затем скопированы из временного массива в
dest
.
2)
Аналогично
(1)
, за исключением того, что следующие ошибки обнаруживаются во время выполнения и вызывают текущую установленную
функцию обработки ограничений
:
-
- src или dest является нулевым указателем
- destsz или count превышает RSIZE_MAX / sizeof ( wchar_t )
- count превышает destsz (произойдет переполнение)
-
Как и все функции с проверкой границ,
wmemcpy_sгарантированно доступна только если реализация определяет __STDC_LIB_EXT1__ и если пользователь определяет __STDC_WANT_LIB_EXT1__ как целочисленную константу 1 перед включением <wchar.h> .
Содержание |
Параметры
| dest | - | указатель на массив широких символов для копирования |
| src | - | указатель на массив широких символов, из которого производится копирование |
| destsz | - | максимальное количество широких символов для записи (размер буфера назначения) |
| count | - | количество широких символов для копирования |
Возвращаемое значение
1)
Возвращает копию
dest
2)
Возвращает ноль при успехе, возвращает ненулевое значение при ошибке. Также при ошибке заполняет всю область
dst
до (но не включая)
dst
+
dstsz
нулевыми широкими символами,
L
'
\0
'
(если только
dest
не является нулевым указателем или
destsz
не превышает
RSIZE_MAX
/
sizeof
(
wchar_t
)
)
Примечания
Эта функция не зависит от локали и не обращает внимания на значения объектов wchar_t которые она копирует: нулевые символы, а также недопустимые символы также копируются.
Пример
Запустить этот код
Вывод:
αβγδεζηθικλμνξοπρστυφχψω αβγδδεζθικλμνξοπρστυφχψω
Ссылки
- Стандарт C23 (ISO/IEC 9899:2024):
-
- 7.29.4.2.4 Функция wmemmove (стр.: TBD)
-
- K.3.9.2.1.4 Функция wmemmove_s (стр.: TBD)
- Стандарт C17 (ISO/IEC 9899:2018):
-
- 7.29.4.2.4 Функция wmemmove (стр.: TBD)
-
- K.3.9.2.1.4 Функция wmemmove_s (стр.: TBD)
- Стандарт C11 (ISO/IEC 9899:2011):
-
- 7.29.4.2.4 Функция wmemmove (стр: 432)
-
- K.3.9.2.1.4 Функция wmemmove_s (стр: 642)
- Стандарт C99 (ISO/IEC 9899:1999):
-
- 7.24.4.2.4 Функция wmemmove (стр: 378)
Смотрите также
|
(C11)
|
перемещает один буфер в другой
(функция) |
|
(C95)
(C11)
|
копирует определённое количество широких символов между двумя неперекрывающимися массивами
(функция) |
|
C++ documentation
для
wmemmove
|
|