如何使用指针确保函数调用正确
How to make sure function call proper with pointer
当我这样调用时,以下代码将工作:
char arr[] = "foobar";
reverse(arr);
但当我这样调用时,它不起作用,因为它指向只读部分
char*a = "foobar";
reverse(a);
现在我的问题是,有什么方法可以避免用户这样打电话吗?
void reverse(char *str)
{
char * end = str;
char tmp;
if (str)
{
while (*end)
{
++end;
}
--end;
while (str < end)
{
tmp = *str;
*str++ = *end;
*end-- = tmp;
}
}
}
char arr[] = "foobar";
是char
s的数组,包含以下字符:f
、o
、o
、b
、a
、r
、