将 memcpy 与十六进制值一起使用
Using memcpy with hex values
我可以
memcpy(buffer, "[=10=]", 1);
但是我做不到
memcpy(buffer, 0x0, 1);
它会导致分段错误。
有没有一种方法可以在没有字符串表示的情况下将十六进制值与 memcpy 一起使用?
memcpy
接受两个指针。 "[=12=]"
是一个指向字符串的指针。 0x0
解释为指针是 NULL
,在大多数平台上读取和写入是非法的。
重写第二个示例的正确方法是使用指针:
int x = 0x0;
memcpy(buffer, &x, 1);
这些是非常不同的东西。
第一个
memcpy(buffer, "[=10=]", 1);
将文字字符串 "[=13=]"
的 1 个字符复制到 buffer
.
第二个
memcpy(buffer, 0x0, 1);
尝试从 0
复制一个字节。这与
相同
memcpy(buffer, NULL, 1);
我可以
memcpy(buffer, "[=10=]", 1);
但是我做不到
memcpy(buffer, 0x0, 1);
它会导致分段错误。
有没有一种方法可以在没有字符串表示的情况下将十六进制值与 memcpy 一起使用?
memcpy
接受两个指针。 "[=12=]"
是一个指向字符串的指针。 0x0
解释为指针是 NULL
,在大多数平台上读取和写入是非法的。
重写第二个示例的正确方法是使用指针:
int x = 0x0;
memcpy(buffer, &x, 1);
这些是非常不同的东西。
第一个
memcpy(buffer, "[=10=]", 1);
将文字字符串 "[=13=]"
的 1 个字符复制到 buffer
.
第二个
memcpy(buffer, 0x0, 1);
尝试从 0
复制一个字节。这与
memcpy(buffer, NULL, 1);