我正在尝试实现位图的Set / Clear功能。但是,我被困在我已实现该功能的位置,但我不知道如何将位图传递给该函数。
int bitmap_set_bit(unsigned char * bitmap, int size, int target_pos)
{
unsigned char var = *(bitmap + target_pos/8);
var = ~(var & (0x01 << (target_pos%8)));
*(bitmap + target_pos/8) = var;
return 0;
}
所以基本上,从我的main(),如果我调用此函数如下,
int main()
{
unsigned char *Array = {255,255,254};
bitmap_set_bit(&Array,10);
printf("%i\n", Array);
}
主要打印65535中的printf()语句。我不明白该怎么做。
答案 0 :(得分:0)
我无法完全理解你的问题是什么,但这可能对你有帮助。
(我已调用size = 10
和target_pos = 1
来调用bitmap_set_bit
函数。)
在您的主程序中,您可以使用Array
变量,如下所示:
unsigned char Array[] = {255,255,254};
bitmap_set_bit(Array,10,1);
printf("%i\n", Array[0]);
printf("%i\n", Array[1]);
printf("%i\n", Array[2]);
或:
unsigned char * Array;
Array = (unsigned char *) malloc(sizeof(char) * 3);
*Array = 255;
*(Array + 1) = 255;
*(Array + 2) = 254;
bitmap_set_bit(Array,10,1);
printf("%i\n", *Array);
printf("%i\n", *(Array+1));
printf("%i\n", *(Array+2));