程序报错 看不明白原因

代码:

#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这个函数为什么最后还不返回?

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632