在C

时间:2016-06-09 07:43:54

标签: c

我在C中有void *data指向二进制数据(图像),并希望将其转换为char* new_data以存储在其他地方;然后我想将new_data转换回二进制形式。

问题是,因为data中间包含许多0,如果我这样做

(char*) data

新字符串将在第一个0处被截断。我的第一个想法是暂时将0转换为其他值,但会出现一个新问题。

执行任务的好方法是什么?

感谢您的帮助

2 个答案:

答案 0 :(得分:0)

您不应将数据视为字符串。您可以将其视为一个字节数组。为此,我建议使用uint8_t中定义的stdint.h类型。

答案 1 :(得分:0)

通过将一种指针类型分配给其他指针,不会更改数据本身。您似乎正在对数据使用字符串操作,这是没有意义的。如果您只想复制数据,请使用memcopy功能。如果你想操纵你的数据然后将它的起始地址强制转换为uint8_t *