Как отправить в качестве аргумента функции, которая принимает только тип unsigned char* значение типа size_t?

У меня есть функция, которая принимает в качестве аргумента функции указатель на unsigned char, мне нужно передать в аргумент функции значение, которое содержится в переменной типа size_t. Как я могу решить проблему? Например, подобный код, который я хотел бы в итоге.

void func(unsigned char* var)
{
    return;
}

int main()
{
    size_t number = 9;
    unsigned char* numberB = number;
    func(numberB)
}

Ответы (1 шт):

Автор решения: UFO

Бывают случаи когда надо сэкономить память и используется unsigned char вместо жирного size_t, а функция может принимать unsigned char* не потому что это строка/массив а потому что мы его хотим менять.

#include <iostream>
void func(unsigned char* var)
{
    (*var)++; // из предположения что передаем по указателею так как хотим что то сделать
    return;
}

int main()
{
    size_t number = 9;
    unsigned char numberB = static_cast<char> (number);
    func(&numberB); // func(unsigned char* var) обычно бывает  func(unsigned char var)

    std::cout<<"size_t =" << sizeof(number)<<std::endl;
    std::cout << "unsigned char =" << sizeof(numberB) << std::endl;
}
→ Ссылка