我使用带指针的 char 创建字符串。因此,当我想将我的字符串保存在 EEPROM 中时,我使用下面的代码。
char *Password= "1234";
int i = 0;
for(i = 0; i <= 3; i++)
{
DataEEWrite(i, *Password);
Password++;
}
这段代码工作正常。我怎样才能从 EEPROM
中读取每个 byte(char)
并创建一个 string
?例如,我试过了,但没用。
char *Password;
int i = 0;
for(i = 0; i <= 3; i++)
Password[i] = DataEERead(i);
Password.Value[4] = '\0';
我在输出中得到一个未知字符。
最佳答案
您声明 Password
的方式不正确。
char *Password;
这是一个指向内存中某个随机位置的指针,您没有在代码中的任何地方指定它,因此您会得到未定义的行为。您可以使用 malloc()
为它分配一些分配的内存,或者对于这个简单的示例更好的方法是使用数组代替,如下所示:
char Password[10];
如果你要使用 malloc()
你会这样做:
char *Password;
Password=malloc(10);
当你用完内存后,你必须记得释放它。
free(Password);
要复制字符串,您可以使用 strcpy
,它适用于我指定的任一选项
strcpy(Password,"1234");
关于c - 从 EEPROM 读取每个字符到字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52149975/