Как отправить в качестве аргумента функции, которая принимает только тип 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;
}