c语言如何返回空指针,如何在C中返回NULL对象

我知道这可能是重复的:

Return a “NULL” object if search result not found

但是,我的代码有些不同,因为星号不能解决我的问题,这是:

Normal Sphere::hit(Ray ray) {

//stuff is done here

if(something happens) {

return NULL;

}

//other stuff

return Normal(something, somethingElse);

}

但是我得到一个引用返回NULL行的错误:从’int’转换为非标量类型’Normal’请求

另一个错误和警告,引用最后一个返回行:警告:获取临时地址和从“正常*”转换为非标量类型“正常”请求

我理解为什么我会收到此警告,但我不知道如何解决它.如何在函数结束后持续存在的最后一行返回Normal对象,如何在第一次返回NULL对象? (如果这些类型的退货有一个术语,请告诉我,以便我也可以阅读更多内容.)

为了澄清评论者的问题,我尝试了以下方法:

我尝试这样做:正常*球体::在cpp文件中命中(雷射线)和普通*命中(雷射线);在头文件中,我收到此错误:错误:’Normal * Sphere :: hit(Ray)’的原型与’Sphere’类中的任何一个都不匹配

我也试过这个:普通球体:: *在cpp文件中命中(雷射线)和普通*命中(雷射线);在头文件中我得到第二个return语句的错误:无法将’Normal *’转换为’Normal Sphere :: *’作为回报

进一步澄清:我不是在询问指针是如何工作的. (这不是主要问题.)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值