>我有一个空指针,我想存储长整型的二进制值。例如:
void * p;
long number;
p = malloc(16);
p = memset(p, 0, 16);
number = 15;
/* PRINTS FIRST 16 BYTES */
for(i = 0; i < memSize; i++)
printf("%02x", ((unsigned char *) p) [i]);
printf("n");
上面的代码将打印
00000000000000000000000000000000
我想将前 8 个字节设置为"数字"的值,例如:
000000000000000F0000000000000000
有没有简单的方法可以做到这一点?我想位移位会起作用,但这可能会变得非常乏味。
为什么不使用memcpy?
memcpy (p, &number, sizeof(number));
您是否关心字节的顺序(最重要与最不重要)?也许你应该阅读 http://en.wikipedia.org/wiki/Endianness
尝试类似
*((uint32_t*)p) = number;