c - 下面的C函数有什么问题?

标签 c

我被要求找出以下代码中的两个主要问题。

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/

相关文章:

c - C中putc()的宏实现

c - 加法练习程序中的错误

计算函数内部数组中的元素

c - 将多个输入行加载到二维数组中

c - 输入 case 时切换 case 菜单不会退出程序

c - 我的 C 脚本停止工作

c - 返回多维数组的函数

c - PIC16F648A编程-某些功能不起作用

递归计算从(0,0)到(x,y)的格子路径数

c++ - 文件记录的有效方法