【发布时间】:2020-02-03 13:45:36
【问题描述】:
#include <stdio.h>
#include <malloc.h>
//#include "ans.c"
int *decompressRLElist(int *nums, int numsSize, int *returnSize);
int main()
{
int nums[] = {39, 1};
int length = 2;
int returnlength;
int *p = decompressRLElist(nums, length, &returnlength);
int *pp = p;
while (returnlength-- != 0)
{
putchar(*(p++)+'0');
}
system("pause");
return 0;
}
int *decompressRLElist(int *nums, int numsSize, int *returnSize)
{
int *ans = (int *)malloc(100);
int *p = ans;
*returnSize = 0;
numsSize /= 2;
while (numsSize-- != 0)
{
while ((*nums)-- != 0)
{
*(p++) = *(nums + 1);
(*returnSize)++;
}
nums += 2;
}
return ans;
}
我正在处理一个 leetcode 问题,在运行调试器后,发生了一个名为跟踪/断点陷阱的异常。令人困惑的是,数组长度小于39时不会出错,但大于或等于39时会出错。
【问题讨论】:
标签: c