That certainly won't work. For several reasons.
1. &key gives you the address of the object itself (unless operator & for the object has been overridden, which I doubt in this case).
2. The last parameter of memcpy() being the size should be 1 if you are copying 8 bits.
3. If you have the "right" endianness, you get the wrong data in the memcpy, since you would be copying the byte that has the lowest memory address, not the one with the least significant bit values. [This assumes the other things above aren't already making this impossible].

So, I would say what you are doing is wrong, and there is no trivial way to fix it.

What are you ACTUALLY trying to do? [What is the actual problem you are trying to solve, not "how do I get bits into my bitset quickly", but the overall problem - or are you simply messing about?].

--
Mats