Таким образом, начальная емкость указателя равна 5, тогда он будет изменяться сама по себе, зависит от чисел целого в файле, после чего я хотел бы напечатать прочитайте целое число в массиве. Но я получил эту ошибку во время ее запуска.Ошибка при запуске кода с массивом realloc'ed при чтении int из файла
ERROR:a.out: malloc.c:3574: mremap_chunk: Assertion `((size + offset) & (mp_.pagesize-1)) == 0' failed.
Aborted
(тонн) питания После сего
КОД:
#include<stdio.h>
#include <stdlib.h>
int main(void)
{
int index=0;
int cap=5;
int *arr = malloc(cap*sizeof(int));
FILE *f;
if((f=fopen("/home/alexchan/Downloads/fileOints000.txt","r"))==NULL)
printf("You cannot open");
int *y = arr;
while(fscanf(f, "%d", arr++)!=EOF)
{
index++;
if(index==cap)
arr = realloc(arr, (cap +=10) * sizeof(int));
}
int x;
for(x=0;x<index;x++)
printf("%d\n",*(y++));
return 0;
}
Это не работает, я прокомментировал часть кода printf и все еще отображаемую ошибку, означающую, что во время цикла возникает ошибка, когда я realloc arr, любая идея, почему? –