一段小程序运行错误,求大神帮忙看看

jiahao__liu 2017-11-29 04:21:01
一道题目,输入一段序列,输出在序列中出现两次的数。在OJ系统上函数已经提交通过了,但完整程序运行却总出错,在findDuplicates函数中若倒数第二行注释掉就不出错,否则就会运行出错,求大神帮忙看看怎么回事。


#include<stdio.h>
#include<stdlib.h>

int* findDuplicates(int* nums, int numsSize, int* returnSize);

int main(void)
{
int N;
scanf("%d",&N);
int arr[N];
int* size=malloc(sizeof(int));

for(int i=0;i<N;i++)
scanf("%d",&arr[i]);
int* duplicates=findDuplicates(arr,N,size);
//for(int i=0;i<*size;i++)
// printf("%d ",duplicates[0]);

return 0;
}

int* findDuplicates(int* nums, int numsSize, int* returnSize)
{
int* result=malloc(sizeof(int)*numsSize);
int count=0;
for(int i=0;i<numsSize;i++)
{
int index=abs(nums[i])-1;
if(nums[index]<0)
result[count++]=index+1;
else
nums[index]=-nums[index];
}
*returnSize = count;
return result;
}


...全文
367 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
丁劲犇 2017-12-03
  • 打赏
  • 举报
回复
这个程序 malloc 没有 free 作伴!
赵4老师 2017-11-29
  • 打赏
  • 举报
回复
崩溃的时候在弹出的对话框按相应按钮进入调试,按Alt+7键查看Call Stack即“调用堆栈”里面从上到下列出的对应从里层到外层的函数调用历史。双击某一行可将光标定位到此次调用的源代码或汇编指令处,看不懂时双击下一行,直到能看懂为止

15,440

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 非技术区
社区管理员
  • 非技术区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧