c - 如何在指针处存储长整型的二进制值



>我有一个空指针,我想存储长整型的二进制值。例如:

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;

最新更新