【发布时间】:2014-09-29 01:52:34
【问题描述】:
我试图将字符串传递给 c 中的函数,出于某种原因,即使我没有为变量设置值,但它已经拥有另一个变量的值,如果我更改它,更改似乎覆盖另一个变量。代码如下:
void reverse(char *s, char *reverse)
{
uint32_t length = str_length(s);
Serial.println(reverse);
Serial.println(s);
for (uint32_t i = 0; i < length; i++)
{
Serial.print(length - i - 1);
Serial.println(s[length - i - 1]);
reverse[i] = s[length - i - 1];
}
for (uint32_t i = 0; i < length; i++)
{
Serial.print(i);
Serial.println(s[i]);
}
reverse[length] = '\0';
Serial.println(reverse);
}
char* readstring()
{
char s[128];
readline(s, 128);
return s;
}
char* str_reverse(char *r)
{
char rev[128];
reverse(r, rev);
return rev;
}
readstring() 在代码的前面被调用并成为str_reverse 中的参数 r。如果我输入 face 作为我的字符串,这是输出:
face
face
3e
2c
1c
0e
0e
1c
2c
3e
ecce
为什么要把字符串映射到同一个内存槽?
【问题讨论】: