我得到这个运行时错误,我不知道代码出了什么问题。“第10行:第31章:运行时错误:存储到地址0x7fff6774f4f4,没有足够空间容纳“int”类型对象“
int *twoSum(int *nums, int numsSize, int target, int *returnSize)
{
for (int i = 0; i < numsSize; i++)
{
for (int j = i+1; j < numsSize; j++)
{
if (nums[i] + nums[j] == target)
{
returnSize[0] = i;
returnSize[1] = j;
}
}
}
return returnSize;
}
2条答案
按热度按时间vi4fp9gy1#
我假设这是leetcode中的Twosum问题,如果是,那么第四个参数
*returnSize
不是一个数组,而是一个指向一个整数的指针,这个整数是你应该返回的数组的大小,下面是经过修改的代码。bxgwgixi2#
由于returnSize不是数组,而是一个指向整数的指针,该指针指示在返回的数组中将返回多少个数字。因此,代码语句“returnSize[1] = j;因此,在我看来,“存储到地址0x 7 fff 6774 f4 f4,但空间不足,无法容纳类型为”int“的对象”只是“超出界限”的委婉说法,这意味着您不应该访问所指区域后面的内存空间。