如何保存和还原结构体中的指针指向的内容?

2020-01-10 19:44发布

本帖最后由 pnhywyb 于 2018-6-1 17:04 编辑

在以下的音乐结构体中,因为我想做个音乐断点续播功能,需要保存path和name所指向的内容,并在STM32重新开机后,把保存的内容还原给结构体中的path和name。请教一下如何做?可以保存到24C08或SPI FLASH等芯片中,谢谢:

2018-05-31_141430.png (40.1 KB, 下载次数: 0) 下载附件 2018-6-1 10:45 上传

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
9条回答
qq78929709
1楼-- · 2020-01-10 23:52
保存指针指向的内容,指针已经提供初始地址,那差的只是长度而已。对于path,name这种,应该是字符串,字符串以0x00为结尾,字符串c语言有专门的长度计算函数,或者自己写一个也行。结构体可以用sizeof来计算长度。
mii
2楼-- · 2020-01-11 01:08
可以保存到外部存储器不管是EEPROM,还是FLASH。你就当他是将整个结构体定义做一个全局变量,外部存储驱动你写一个用指针传递的保存的函数就OK了。至于这个结构体是多大,sizeof一下,就随便搞定。
adee4210
3楼-- · 2020-01-11 02:44
 精彩回答 2  元偷偷看……
pnhywyb
4楼-- · 2020-01-11 08:12
adee4210 发表于 2018-6-1 15:34
char buf[64];
strcpy(buf, audiodev.path);
flashSaveData(flash_addr, buf, strlen(buf));

感谢回复和指导,谢谢!

刚才又想到一个问题:我们保存了指针指向的内容后,在STM32重新上电后,我们如何把保存的内容读取并还原给结构体中的指针?
nanfang2000
5楼-- · 2020-01-11 12:28
弄个全局变量字符串数组,把存的内容copy回这个全局变量不行吗?然后结构体的指针指向这个全局变量
wzbwzb
6楼-- · 2020-01-11 17:28
对 没有问题

一周热门 更多>