下列哪一個是最好期運用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);
第二個有內存泄漏?你重新分配malloced空間而不釋放它,甚至不使用第一行? –
使用'realloc'時,您還必須小心,如果出現錯誤並且它返回null,則會按照寫入方式丟失原始指針。 –
假設輸入文件長度超過4個字節,第二個緩衝區溢出。 –