代码:
#include <stdio.h>
#include <stdlib.h>
int* twoSum(int* nums, int numsSize, int target, int* returnSize) {
for (int i = 0; i < numsSize; ++i) { // ++i比i++的性能更好
for (int j = i + 1; j < numsSize; ++j) {
if (nums[i] + nums[j] == target) {
int *ret = malloc(sizeof(int) * 2); //申请动态数组
ret[0] = i,ret[1] = j;
*returnSize = 2;
return ret;
}
}
}
*returnSize = 0;
return NULL;
}
报错内容为:[Error] invalid conversion from 'void*' to 'int*' [-fpermissive]
int *ret = malloc(sizeof(int) * 2);
改为
int *ret = (int*)malloc(sizeof(int) * 2);
malloc返回的是void*,需要强制转换一下
你int这个函数为什么最后还不返回?
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!