一个长度为500的数组,数组中每一个元素都是一个结构体,这个结构体中有一个成员数组v[4];
struct A
{
doule v[4];
}
我想把这个数组作为一个函数的返回值,后续计算需要用到。
形式是这样的:
struct A *function()
{
//数组定义:
struct A *num;
num= (struct A *)malloc(sizeof(struct A) * 500);
//对数组里每个结构体元素的赋值计算部分////
最后返回:
return num;
}
上面这样的形式可以吗?我这样写了以后,编译时报错:error: return value type does not match the function type
请问该怎么写返回值呢?
我汗。。。double拼错了,结构体定义没有;
JAVA的路过
sorry.....只是简化了一下模型,没想到又写错了。。。。楼主想法挺好,就是不太务实。哈。上面的逻辑,没有写成函数的必要。嗯,是了,我也知道这样的办法是不好的,果然还是经验很重要,务实更重要。1.c语言主张谁申请谁释放,通常内存的申请者和释放者是同一段代码或者同一个函数或者同一个生存周期。所以不建议如此申请内存。不然项目大了以后,其他人可能看到你的代码,一时间无法知道某一块内存是哪里申请的,然后在不断地版本更新中出现野指针类似的问题。
2.double拼错了
3.struct定义的结尾是要加分号的
是不是应该写成structA*function(),写成void*function()是肯定没错的。这样的情况,函数应该定义为bool或者int型的,把需要用到的数组或者结构体作为参数传入,调用此函数后,自然会被赋值的。我也是刚刚学到,一起分享啦~版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。