次の関数に関して「void式の無効な使用」エラーが発生します。
void remove_data(char* memory, char* bitmap, int pos)
{
int i;
i = (int)test_bit(bitmap, pos-1);
if(i != 0)
{
memory[pos-1] = NULL;
toggle_bit(bitmap, pos-1);
}
}
この同様の問題に関して他のスレッドで読んだことから、プログラマーが出力を生成する関数内で何かを使用すると、このエラーがポップアップします。しかし、私が書いたコードでは、何が原因でそれが発生するのかわかりません。
編集して追加:
その中で使用されているトグルビット関数もvoid型であり、値を返しません。
void test_bit(char * bitmap, int pos)
{
int bit;
bit = bitmap[pos/8] & (1<<(pos%8));
printf("%d\n", &bit);
}
test_bitのprintf行にコメントしましたが、エラーはまだあります。