首页 > 解决方案 > 是否可以将某些结构保存为字节序列?

问题描述

我正在使用一个只允许存储数组的库[u8],并且我有一个来自外部板条箱的结构,该结构不实现也不提供Serialize字段(即它们是私有的)。问题:是否可以将此结构的实例转换为数组而不会导致未定义的行为?有人指出,简单可能会导致未定义的行为,因为结构可能包含填充字段形式的未初始化数据。[u8]transmute

标签: rustunsafe

解决方案


问题:是否可以将此结构的实例转换为 [u8] 的数组而不会导致未定义的行为?

您始终可以手动将其序列化(以您选择的任何格式),特别是如果所有子字段都是可序列化的。

如果您正在序列化一个指针并期望它以相反的方式出现,这是非常危险且非常不安全的,但是我猜您的反序列化会使这一点变得相当清楚。


推荐阅读