gdb调试执行没有异常 正常运行有异常
gdb调试执行没有错误 正常运行有错误
#include <stdlib.h>
#include <stdio.h>
int intcomp(void *a,void *b)
{
return *(int*)a - *(int*)b;
}
int num[1000000];
int main(int argc,char* argv[])
{
FILE *file = fopen("rand_num_file.txt", "a+");
FILE *result_file = fopen("result.txt","a+");
int i;
int n=0;
while(fscanf(file,"%d",&num[n]) != EOF)
n++;
qsort(num,1000000,sizeof(num[0]),(__compar_fn_t)intcomp);
for(i=0;i<1000000;i++)
fprintf(result_file,"%d\n",num[i]);
//fclose(file);
//fclose(result_file);
return 0;
}
------解决方案--------------------
文件数据太多,超过了100000个![gdb调试执行没有异常 正常运行有异常 gdb调试执行没有异常 正常运行有异常](/default/index/img?u=aHR0cDovL3d3dy5teWV4Y2VwdGlvbnMubmV0L2ltZy8yMDEzLzExLzA4LzExMjcyMTE3MC5naWY=)
------解决方案--------------------
可能越越界了
#include <stdlib.h>
#include <stdio.h>
int intcomp(void *a,void *b)
{
return *(int*)a - *(int*)b;
}
int num[1000000];
int main(int argc,char* argv[])
{
FILE *file = fopen("rand_num_file.txt", "a+");
FILE *result_file = fopen("result.txt","a+");
int i;
int n=0;
while(fscanf(file,"%d",&num[n]) != EOF)
n++;
qsort(num,1000000,sizeof(num[0]),(__compar_fn_t)intcomp);
for(i=0;i<1000000;i++)
fprintf(result_file,"%d\n",num[i]);
//fclose(file);
//fclose(result_file);
return 0;
}
------解决方案--------------------
文件数据太多,超过了100000个
------解决方案--------------------
可能越越界了
//while(fscanf(file,"%d",&num[n]) != EOF)
while(n < 100000 && fscanf(file,"%d",&num[n]) == 1)
n++;