坚持实现Bitmap

时间:2014-10-09 16:40:10

标签: c bitmap

我正在尝试实现位图的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()语句。我不明白该怎么做。

1 个答案:

答案 0 :(得分:0)

我无法完全理解你的问题是什么,但这可能对你有帮助。

(我已调用size = 10target_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));