0
을 감지 내 코드입니다 :이 오류 메시지는 다음오류가 glibc는 여기
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
main(int argc, char *argv[])
{
struct numbers_struct {
char numbers_array[1000];
};
char Line[300];
FILE *Fp;
int i=0;
long size;
Fp=fopen("input2.txt","r");
fscanf(Fp, "%ld", &size);
struct numbers_struct *numbers = malloc(sizeof(struct numbers_struct) * size);
while(!feof(Fp))
{
if (fgets(Line,1000,Fp)!=NULL)
{
strncpy(numbers[i].numbers_array,Line,1000);
i++;
}
}
int k;
k=i;
for(i=k-1;i>=0;i--)
printf("%s",numbers[i].numbers_array);
free(numbers);
fclose(Fp);
return 0;
}
나는 그것을 실행, 프로그램 인쇄 올바른 출력 :
*** glibc detected *** ./part2: double free or corruption (out): 0x08834170 ***
part2: malloc.c:2451: sYSMALLOc: Assertion `(old_top == (((mbinptr) (((char *) &((av)->bins[((1) - 1) * 2])) - __builtin_offsetof (struct malloc_chunk, fd)))) && old_size == 0) || ((unsigned long) (old_size) >= (unsigned long)((((__builtin_offsetof (struct malloc_chunk, fd_nextsize))+((2 * (sizeof(size_t))) - 1)) & ~((2 * (sizeof(size_t))) - 1))) && ((old_top)->size & 0x1) && ((unsigned long)old_end & pagemask) == 0)' failed.
Aborted (core dumped)
내가 무슨 일을 했는가?