我被要求找出以下代码中的两个主要问题。
char* name(char* first_name, char* last_name){
char buff[100];
sprintf (buff, "%s %s", first_name, last_name);
return (buff);
}
我只发现一个问题。 buff 数组是在函数作用域内声明的。这意味着当返回调用该函数的函数时,它将返回一个指向“空”的指针(不是 buff 数组)。 我找不到第二个问题。 你能帮忙吗? 谢谢!
最佳答案
一个就是你说的,返回一个局部变量。
一是如果这个人名字很长,固定的buff[100]就会溢出。
关于c - 下面的C函数有什么问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16984327/