开发者社区> 问答> 正文

C语言 数组元素为结构体,把数组作为函数返回值的问题?报错

一个长度为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

请问该怎么写返回值呢?

展开
收起
爱吃鱼的程序员 2020-06-22 15:14:54 871 0
1 条回答
写回答
取消 提交回答
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB

    我汗。。。double拼错了,结构体定义没有;

    JAVA的路过

    sorry.....只是简化了一下模型,没想到又写错了。。。。楼主想法挺好,就是不太务实。哈。上面的逻辑,没有写成函数的必要。嗯,是了,我也知道这样的办法是不好的,果然还是经验很重要,务实更重要。

    1.c语言主张谁申请谁释放,通常内存的申请者和释放者是同一段代码或者同一个函数或者同一个生存周期。所以不建议如此申请内存。不然项目大了以后,其他人可能看到你的代码,一时间无法知道某一块内存是哪里申请的,然后在不断地版本更新中出现野指针类似的问题。

    2.double拼错了

    3.struct定义的结尾是要加分号的

    是不是应该写成structA*function(),写成void*function()是肯定没错的。这样的情况,函数应该定义为bool或者int型的,把需要用到的数组或者结构体作为参数传入,调用此函数后,自然会被赋值的。我也是刚刚学到,一起分享啦~
    2020-06-22 15:15:10
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载