c语言realloc使用
写了一个求交集的函数,使用到了realloc函数,有一个地方不理解,恳请大家指点int *arrayIntersection(int *item, int item_total, int *list, int list_total, int *total_count)
{
int count = 1;
int total = 0;
int *res = (int *)malloc(sizeof(int)*count);
int *p = res;
int i,j;
i = j = 0;
while(i < item_total && j < list_total){
if(item[i] < list[j]){
i++;
}else if(list[j] < item[i]){
j++;
}else{
count++;
res = (int *)realloc(res, sizeof(int)*count);
res[total++] = item[i];
i++;j++;
}
}
*total_count = total;
return p;
}
--------------------------------------------------
res = (int *)realloc(res, sizeof(int)*count);
res[total++] = item[i];
赋值的时候为啥不能用*res++,必须使用数组的形式,另外请大家看看,代码有没有什么需要改进的地方