问题描述
void bfInsertion(BloomFilter* bloomFilter,const char* elem,int elemLen)
{
int i = 1;
while (i <= elem)
{
elem[i] = 1;
i += 1;
}
return elem;
}
我了解到问题出在elem[i] = 1;
的左侧,但我不知道如何正确执行。
Elem是一个字节数组,我想在第i个位上放置1。
这是伪代码:
1. i ←1;
2. while i ≤ k do
3. b[hi (delta)] ← 1;
4. i ← i + 1;
解决方法
elem
是指向const char
的指针。所以你不能修改它。只需将其指向char即可。
elem数组被声明为const
,因此无法修改。要对其进行修改,您需要删除const
关键字。
然后您可以使用指针算术来更改值:
*(elem + i) = a value
尽管请记住,通常情况下C中的事物从零开始编号 值应该是
*(elem + i - 1) = a value