【发布时间】:2020-05-03 06:45:43
【问题描述】:
我的上述问题的代码收到以下运行时错误 “第 207 行:字符 3:运行时错误:加载 'int' 类型的空指针 (Serializer.c)” 关于我做错了什么的任何建议。 我的代码:
int* twoSum(int* nums, int numsSize, int target, int* returnSize)
{
int x=0,i,j;
returnSize = (int*)malloc(2 * sizeof(int));
for (i=0; i<numsSize; i++)
{
x = nums[i];
for (j=i+1; j<numsSize; j++)
{
if (nums[j] == target-x)
{
returnSize[0] = i;
returnSize[1] = j;
break;
}
}
}
return *returnSize;
}
【问题讨论】:
-
第 207 行是哪一行? (我几乎可以肯定你想返回
returnSize,而不是*returnSize。) -
那么您是否检查过
returnSize或nums是否为NULL?return *returnSize;- 这是否打算将int转换为int*?您是否启用了编译器警告? -
回归!你需要返回一个指针而不是一个引用!!返回您从 malloc 收到的指针。这段代码有太多问题要讨论,检查malloc返回值,变量名,检查输入参数等等
标签: c