Code::Blocks中Process Returned -1073741819错误及返回值警告求助
问题解释与关联说明
关于那个警告
你写的milesToKm_函数开头声明了要返回float类型,但函数里只做了修改传入参数的操作,完全没写return语句。编译器看到这种“说好了要返回值却没返回”的情况,就会弹出Warning: no return statement in function returning non-void [-Wreturn-type]的警告,这就是第12行警告的原因。
关于错误码-1073741819 (0xc0000005)
这个是Windows系统的访问违规/内存错误。你现在的代码里调用milesToKm_(distance)时没用到它的返回值,看起来好像不该崩溃,但C++有个规则:非void类型的函数如果没返回值就被调用,属于未定义行为——简单说就是编译器可以随便处理,运气好能正常跑,运气差直接崩给你看。所以这个错误码和那个警告是有关联的,警告提示的问题是导致崩溃的潜在原因。
怎么解决
二选一就行:
- 把
milesToKm_的返回类型改成void(因为它本来就是通过引用修改原变量,不需要返回值),修改后函数长这样:
void milesToKm_(float& distance) { distance = distance*1.60934; }
- 或者给函数加个return语句,比如返回修改后的distance:
float milesToKm_(float& distance) { distance = distance*1.60934; return distance; }
内容的提问来源于stack exchange,提问作者Tufi
相关产品推荐
相关产品推荐

