Ошибка чтения массива wchar_t после выполнения memcpy

Внезапный вопрос.

void myFunc(wchar_t* buffer)
{
    for (int i = 0; i < 6; ++i)
    {
        buffer[i] = i + 1;
    }
}

void myFunc2(wchar_t* buffer)
{
    wchar_t t[5];
    t[0] = '\x1';
    t[1] = '\x2';
    t[2] = '\x3';
    t[3] = '\x4';
    t[4] = '\0';

    memcpy(&buffer, &t, 10);
}

Вызываю так:

    wchar_t buf[16];
    myFunc(buf);

    wchar_t buf2[16];
    myFunc2(buf2);

Первый вариант (myFunc) работает. А в myFunc2, после выполнения memcpy начинает писать Ошибка при чтении символов строки.

Это почему так? :thinking: Вне функции работает.
На скриншоте у меня массив из четырёх элементов, а в коде из пяти - это потому что скриншот я сделал до того, как добавил в массив завершающий ноль. Результат это не изменило.

Эх, я, блин :man_facepalming:

Здесь первый амперсанд не нужен. Там же в функцию со звёздочкой передаётся.