函数作用域导致的问题

今天写了个程序要求字符串提取字符,结果用了以下代码不能正确返回。

char* CharToStr(char a, char b)
{
	char str[3];
	str[0] = a;
	str[1] = b;
	str[2] = '\0';
	return str;
}

后来网上查了下,才发现是作用域的问题。

可以用static保存返回值。

char* CharToStr(char a, char b)
{
	static char str[3];
	str[0] = a;
	str[1] = b;
	str[2] = '\0';
	return str;
}

放着提醒自己下。

原文地址:https://www.cnblogs.com/ZzzZzz/p/2706388.html