【发布时间】:2018-02-11 15:15:44
【问题描述】:
所以我有一个这样的结构(实际上它更大):
struct _setup {
char* selfName;
int8_t zone;
char* selfSSID;
char* selfWPA2;
}
我用它来保存我的设备的配置; JSON 是一个想法,但需要大量资源和时间来处理。
我想为每个 char* 分配 32 个字符。
这个结构会发生什么:
1. 填充长度未知但小于 32 字节的数据
2. 保存到 EEPROM
3. 从 EEPROM 读取到另一个结构(相同的布局)
我在结构中尝试了 malloc 和 new ,但没有成功。
分配内存并将数据写入结构的正确方法是什么?
【问题讨论】:
-
为什么不
char varName[32]? -
因为当我在另一台机器上读取 struct 时,我不想再次将 char[] 转换为 char*
-
@FotelPL 您不必将数组转换为指针,因为两者都可以互相代替使用(因为 char 数组/指针的定义类似并且由于衰减)。
-
我在 struct 中尝试了 malloc 和 new,但没有成功。 究竟是什么没有成功?
-
@MichaelWalz
char* selfName = (char*)malloc(32*sizeof(char))与“新”相同。
标签: c++ pointers memory struct char