Как присвоить значение i-ому биту памяти на которую указывает void*? си

Есть переменная которая поступает в функцию при помощи void*:

void f(void* ptr, int size) {
  ...
}

Как я могу присвоить значение i-ого бита (i < size) от *ptr нулю?


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

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

Что-то типа

unsigned char * s = (unsigned char *)ptr;
s = s + size/8;
s |= (1 << (size%8));  

для установки бита равным 1. Для сброса - использовать & ~ и так далее...

→ Ссылка