ProMonkey不会编程 2021-12-19 23:58 采纳率: 100%
浏览 40
已结题

c语言力扣的题出现的问题

img

/**
 * Note: The returned array must be malloced, assume caller calls free().
 */
int* twoSum(int* nums, int numsSize, int target, int* returnSize){
int i,j;
int res[2];
int *result=res;
for(i=0;i<numsSize;i++)
    for(j=i+1;j<numsSize;j++)
        if(nums[i]+nums[j]==target)
        {
            res[0]=i;
            res[1]=j;
        } 
        return result;
}

不知道那有错,求教导?

  • 写回答

1条回答 默认 最新

  • _GX_ 2021-12-20 00:28
    关注

    程序要求的是返回数组是动态分配的,你返回的是局部变量

    /**
     * Note: The returned array must be malloced, assume caller calls free().
     */
    int *twoSum(int *nums, int numsSize, int target, int *returnSize)
    {
        for (int i = 0; i < numsSize; i++)
        {
            int x = target - nums[i];
            for (int j = i + 1; j < numsSize; j++)
            {
                if (nums[j] == x)
                {
                    *returnSize = 2;
                    int *result = (int *)malloc(2 * sizeof(int));
                    result[0] = i;
                    result[1] = j;
                    return result;
                }
            }
        }
        *returnSize = 0;
        return NULL;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 12月28日
  • 已采纳回答 12月20日
  • 创建了问题 12月19日