# wmemset

From cppreference.com
< c‎ | string‎ | wide

Defined in header `<wchar.h>` |  |
wchar_t *wmemset( wchar_t *dest, wchar_t ch, size_t count ); |  | (since C95)

Copies the wide character `ch` into each of the first `count` wide characters of the wide character array (or integer array of compatible type) pointed to by `dest`.

If overflow occurs, the behavior is undefined.

If `count` is zero, the function does nothing.

### Parameters

dest | - | pointer to the wide character array to fill
ch | - | fill wide character
count | - | number of wide characters to fill

### Return value

Returns a copy of `dest`

### Notes

This function is not locale-sensitive and pays no attention to the values of the wchar_t objects it writes: nulls as well as invalid wide characters are written too.

### Example

Run this code

    #include <stdio.h>
    #include <wchar.h>
    #include <locale.h>

    int main(void)
    {
        wchar_t ar[10] = L"1234567890"; // no trailing null in the array
        wmemset(ar, L'\U0001f34c', 5); // replaces [12345] with the 🍌 bananas
        wmemset(ar+5, L'蕉', 5); // replaces [67890] with the 蕉 bananas

        setlocale(LC_ALL, "en_US.utf8");
        for(size_t n = 0; n < sizeof ar/sizeof *ar; ++n)
            putwchar(ar[n]);
        putwchar(L'\n');
    }

Output:

    🍌🍌🍌🍌🍌蕉蕉蕉蕉蕉

### References

- C11 standard (ISO/IEC 9899:2011):

  - 7.29.4.6.2 The wmemset function (p: 439)

- C99 standard (ISO/IEC 9899:1999):

  - 7.24.4.6.2 The wmemset function (p: 385)

### See also

memsetmemset_s (C11) | fills a buffer with a character (function)
wmemcpywmemcpy_s (C95)(C11) | copies a certain amount of wide characters between two non-overlapping arrays (function)

Retrieved from "https://en.cppreference.com/mwiki/index.php?title=c/string/wide/wmemset&oldid=76884"