我有一块分配了 20 字节(160 位)的内存块,memset 值为 1。每个位代表一个传入数据,如果接收到数据,则设置该位,否则重置。我最初设置了所有 160 位,如果没有收到数据,我将重置。下面是示例代码:
char *buf = malloc(20);
memset(buf,1,20);
recvfun() {
static int index;
index++;
if(!received)
*buf = *buf ^ (1<<(160-index));
...
}
我认为 *buf 只会给出 8 位,而不是完整的内存块,所以每次我尝试重置该位时,上面的代码只会在前 8 位重置。如果假设没有收到第 99 个数据,我需要重置第 99 位。你能帮我实现这个目标吗?感谢您宝贵的时间。