2 visual0522 Visual0522 于 2015.07.05 18:24 提问

C语言,这个错误是什么意思呀?

图片说明
#include
#include
struct data
{
char s[30];
int n;
float x;
};
struct data example()//定义结构体类型函数
{
struct data emp;
strcpy_s(emp.s, "An example!");
emp.n = 68;
emp.x = 213.52;
printf("%s%d%f\n", emp.s, emp.n, emp.x);
printf("Function to run after:\n");
return(emp);
}
void main()
{
struct data redata;
printf("\nOperation function:\n");
redata = example();
printf("%s%d%f\n", redata.s, redata.n, redata.x);
}

6个回答

caozhy
caozhy   Ds   Rxr 2015.07.05 18:30
已采纳
oyljerry
oyljerry   Ds   Rxr 2015.07.05 18:30

你参数不对,还要给一个长度的参数,这样才能防止越界拷贝。

Visual0522
Visual0522 谢谢,不知道为什么放到c++里就可以运行了
2 年多之前 回复
caozhy
caozhy   Ds   Rxr 2015.07.05 18:29

strcpy_s多一个参数,第二个参数是字符串长度。

Visual0522
Visual0522 谢谢,不知道为什么放到c++里就可以运行了
2 年多之前 回复
imabqian
imabqian   2015.07.05 18:46

strcpy 和strcpy_s 参数列表不一样strcpy_s还多一个字符串长度

Visual0522
Visual0522 谢谢
2 年多之前 回复
miracle_yao
miracle_yao   2015.07.05 20:46

strcpy 和strcpy_s 参数列表不一样吧

gou12341234
gou12341234   2015.07.06 11:34

struct data example()
函数中结构体的作用域只在函数体中生效,应该用指针接收返回值,函数中应该分配堆空间

Csdn user default icon
上传中...
上传图片
插入图片