我想创建相当于:
char* val = "\x11\x11\x11\x11";
使用htole32()函数。我怎么会这样做,因为“\ x11”是一个不可打印的角色?
修改
我要将int转换为char *并且我不希望收到分段违规,如果我使用的话我会得到:
int val = 0x11111111;
答案 0 :(得分:2)
最终目标对我来说并不完全清楚,但您可以指定十六进制格式的整数:
uint32_t val = 0x11111111;
正如评论中所述,可以使用printf
函数系列打印出十六进制表示,使用%x
(或%X
)作为格式说明符。从我可以从OP中收集到的,这可能是你正在寻找的,但我不完全确定。
编辑以响应OP编辑:通过转换为char*
并不完全清楚您的意思。如果您的意思是想要将val
的地址转换为char *(例如,char *ptr = (char*)&val;
),那么这应该可以正常工作并允许您访问各个字节。