使用一些芯片,我试图保存C字符串,其中芯片只工作与Uint32_t数字。
因此,为了保存char数组,我使用以下方法:
char data[]="lala";
uint32_t save; //save this to memo
memcpy(&save, data, 4);然后,当我阅读它时,我得到一个指向数字的指针,其中每个数字都是一个字符串(例如,首先是“lala”),我必须从这些Uint32_t中提取字符串,但我得到的结果是空的:
uint32_t *data;
data = (uint32_t *) flash_record; //data pointer from some flash
//now loop over all numbers to read them:
for (uint8_t i=0;i<flash_len;i++)
{
char bytes[6];
char n = data[i];
bytes[0] = (n >> 24) & 0xFF;
bytes[1] = (n >> 16) & 0xFF;
bytes[2] = (n >> 8) & 0xFF;
bytes[3] = n & 0xFF;
for (int k=0;k<4;k++)
printf(message:%c,bytes[k]
}我该怎么循环才能把单词提取回来?
发布于 2017-05-24 09:38:27
问题是:
char n = data[i];它应该是
uint32_t n = data[i];https://stackoverflow.com/questions/44154526
复制相似问题