rabbitlpa 2022-06-30 20:24 采纳率: 50%
浏览 18
已结题

用结构变量做函数参数出错

问题遇到的现象和发生背景 用结构变量做函数参数出错。电脑用的国产机,操作系统是银河麒麟,应该是基于ubuntu做的吧。gcc版本信息是gcc (Ubuntu/Linaro 5.4.0-6kord1~16.04.12) 5.4.0 20160609
问题相关代码,请勿粘贴截图

struct Point2d
{ float x;
float y;
}Point2d;

Point2d * middlepoint(Point2d * P1,Point2d * P2);

Point2d * middlepoint(Point2d * P1,Point2d * P2)
{ Point2d * p;
p->x = (p1->x + p2->x)/2;
p->y = (p1->y + p2->y)/2;
return p;
}

运行结果及报错内容 这几行简单语句,在codeblock里无论用c还是c++编译都出错,用c编译出错信息是error: unknown type name ‘Point2d’而用cc++编译出错信息是error: ‘p1’ was not declared in this scope
我的解答思路和尝试过的方法 我没有思路和办法,因为我本来只在二十多年前学了一点皮毛,长时间没有用(一直用的是free pascal/lazarus)现在准备重新捡起来。
我想要达到的结果 下午能知道出错的原因和解决办法
  • 写回答

2条回答 默认 最新

  • 快乐鹦鹉 2022-06-30 20:38
    关注

    Point2d * p你只定义了指针,没有分配空间,直接p->x会崩溃的
    改为
    Point2d * p = new Point2d;

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 7月9日
  • 已采纳回答 7月1日
  • 创建了问题 6月30日

悬赏问题

  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器