多次使用realloc()

时间:2011-08-18 10:34:48

标签: c memory dynamic allocation realloc

以下哪一项更可取

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 个答案:

答案 0 :(得分:1)

为什么不是第三种方式 - 在打开文件时需要多少内存?