我在C中有void *data
指向二进制数据(图像),并希望将其转换为char* new_data
以存储在其他地方;然后我想将new_data
转换回二进制形式。
问题是,因为data
中间包含许多0
,如果我这样做
(char*) data
新字符串将在第一个0
处被截断。我的第一个想法是暂时将0
转换为其他值,但会出现一个新问题。
执行任务的好方法是什么?
感谢您的帮助
答案 0 :(得分:0)
您不应将数据视为字符串。您可以将其视为一个字节数组。为此,我建议使用uint8_t
中定义的stdint.h
类型。
答案 1 :(得分:0)
通过将一种指针类型分配给其他指针,不会更改数据本身。您似乎正在对数据使用字符串操作,这是没有意义的。如果您只想复制数据,请使用memcopy
功能。如果你想操纵你的数据然后将它的起始地址强制转换为uint8_t *