在leetcode刷题中,自己定义的一个新函数时,会遇到这样的错误:
error: control reaches end of non-void function [-Werror=return-type]
比如:
void *sort(int *nums, int numsSize) {
int temp;
for(int i = numsSize -1; i > 0; i--) {
for(int j = 0; j < i; j ++) {
if(nums[j] > nums[j+1]) {
temp = nums[j];
nums[j] = nums[j+1];
nums[j+1] = temp;
}
}
}
}
这是一个冒泡排序,void没有返回值的,在调用的时候是这样子的:
sort(nums, numszise)
结果:
会出现上面那个错误,但只要在函数后面加上return nums就可以了,
void *sort(int *nums, int numsSize) {
int temp;
for(int i = numsSize -1; i > 0; i--) {
for(int j = 0; j < i; j ++) {
if(nums[j] > nums[j+1]) {
temp = nums[j];
nums[j] = nums[j+1];
nums[j+1] = temp;
}
}
}
return nums; //加上类型一致的返回值
}
不要管这个返回值,也不管后面会不会用得上,加上就行,就可以正常运行了。