[英]C error: expression must be a modifiable lvalue
我在 C 中收到此錯誤:表達式必須是可修改的左值
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;
但我不明白如何正確地做到這一點。 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 中事物從零開始編號,因此對於第 i 個值,這將是
*(elem + i - 1) = a value
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.