использовать realloc () много раз - PullRequest
0 голосов
/ 18 августа 2011

какое из следующих предпочтительнее

file=fopen(argv[1],"r");
arr=(unsigned int *)malloc(4);

while(!feof(file))
{
  ++arr_size;
  arr=(unsigned int *)realloc(arr,arr_size*sizeof(unsigned int)
  fscanf(file,"%u\n",&arr[arr_size-1]);
}
fclose(file);

или это

arr=(unsigned int *)malloc(some_size*sizeof(unsigned int));
file=fopen(argv[1],"r");
arr=(unsigned int *)malloc(4);

while(!feof(file))
{
  ++arr_size;
  fscanf(file,"%u\n",&arr[arr_size-1]);
}
fclose(file);

1 Ответ

1 голос
/ 18 августа 2011

Почему бы не третий способ - сработает, когда вы открываете файл, сколько памяти вам требуется?

...