Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 修复用于解决搜索范围问题的代码_C_Arrays_Malloc - Fatal编程技术网

C 修复用于解决搜索范围问题的代码

C 修复用于解决搜索范围问题的代码,c,arrays,malloc,C,Arrays,Malloc,以下代码针对leetcode问题--(请单击查看详细信息)。代码的运行时复杂性尚未得到优化,但预计不会出现一些bug。你能帮我找到臭虫在哪里吗? 代码及其结果如下所示 代码: /** * Return an array of size *returnSize. * Note: The returned array must be malloced, assume caller calls free(). */ int* searchRange(int* nums, int numsSize

以下代码针对leetcode问题--(请单击查看详细信息)。代码的运行时复杂性尚未得到优化,但预计不会出现一些bug。你能帮我找到臭虫在哪里吗? 代码及其结果如下所示

代码:

/**
 * Return an array of size *returnSize.
 * Note: The returned array must be malloced, assume caller calls free().
 */
int* searchRange(int* nums, int numsSize, int target, int* returnSize) {
    int* a = malloc(sizeof(int) * (*returnSize));
    a[0] = -1;
    a[1] = -1;
    int i;
    for(i = 0; i < numsSize && a[0] == -1; i++){
        if(nums[i] == target)
            a[0] = i;
    }
    for(int j = i+1; j < numsSize; j++){
        if(nums[j] == target)
            a[1] = j;
    }
    return a; 
}
你的回答

[]
预期答案

[3,4]

错误行为可以通过代码使用
*returnSize
指向的变量值来解释。您的输出意味着该值为0。
根据名称和一般用途,您需要找出该变量的合适值,并在使用该变量之前通过指针
returnSize
写入该变量。
您正在使用它将返回内存的大小mallocing为0。这使得对
a
的任何mmember成员的访问都非常可疑,例如

a[0] = -1;
a[1] = -1;
您的输出有零个数字,这可能是一个循环(未显示),它只对
returnSize==0
进行注释

我建议首先确定目标值和第一个索引的出现次数。
然后通过
*returnSize
写入该值
然后是适当大小的malloc和数组。

然后用循环0填充数组,使其大小为1,使用
第一个索引+计数器

@mullinganage,我希望它没有bug,尽管它的运行时复杂性不好。我将对问题进行编辑,以使表达式更清晰。@mulligana似乎您还没有阅读代码针对的问题。您提到的变量已经指定,我所要做的就是填充函数。@我想看看我问题的运行代码结果部分。变量是由提供的,用于测试我的代码是否有效。@如果您还没有理解我的问题。您是否单击了该链接以查看发生了什么?当询问有关运行时问题的问题时,正如此问题所做的那样,请发布一条消息,以便我们可以重现该问题,以便我们可以帮助您调试它。
a[0] = -1;
a[1] = -1;