Hi all,

I am new to programming, and learning bit operations. I have written a code which is supposed to set selected bits in a character array to 1 from 0.

When I run this code, I get segmentation fault as output.

I tried to find similar examples on internet, but all explain bit operations but none explain with any sample codes.

Any help would be greatly appreciated.

Code:

main(){

unsigned char *bitmap; //bitmap array

int i = 0;

for (i=0; i<3; i++){ //for 3 chars = 3 bytes = 24 bits

bitmap[i]=0;

}

int base_bit = 3, //trying to convert 00000000 00000000 00000000

bits_from_base = 15, // to 00111111 11111111 11000000

bit_index=0;

for (i=base_bit/8; i<(base_bit+bits_from_base)/8; i++){

if( i==base_bit/8 ){ //First byte:change the bit_index and all last bytes after it to 1

bit_index = i%8;

while(bit_index<8){

bitmap[i] |= (0x10>>bit_index);

bit_index++;

}

}

else if( i==(base_bit+bits_from_base)/8 ){//Last byte:change the first bytes till bit index to 1

bit_index = i%8;

while(bit_index>=0){

bitmap[i] |= (0x10>>bit_index);

bit_index--;

}

}

else{ //all the bytes between first and last

bitmap[i] |= 0x11;

}

}

cout << "The final bitmap is: " << bitmap << " \n";

}