题目
求教free(q);q=q->next
void delnodes(Linklist &L,ElemType min,Elemtype max)
{
LinkList *p=L,*q=p->next,*r;
while(q!=null)
{
if(q->data>=min&&q->datanext;
p->next=q->next;
free(q);
q=r;
}else
{
p=q;q=q->next;
}
}
}
为什么free(q),q已经被释放了,后面又能把r赋给q呢?
void delnodes(Linklist &L,ElemType min,Elemtype max)
{
LinkList *p=L,*q=p->next,*r;
while(q!=null)
{
if(q->data>=min&&q->datanext;
p->next=q->next;
free(q);
q=r;
}else
{
p=q;q=q->next;
}
}
}
为什么free(q),q已经被释放了,后面又能把r赋给q呢?
提问时间:2020-12-13
答案
free释放的是q指针所指向的由malloc所分配的内存单元,q指针本身是不会释放的,所以之后可以将q指针重新指向新的内存地址,即指针r指向的位置;这里是因为外层有循环,所以需要将q指针移动到它的下一个元素,以便继续迭代执行.
举一反三
已知函数f(x)=x,g(x)=alnx,a∈R.若曲线y=f(x)与曲线y=g(x)相交,且在交点处有相同的切线,求a的值和该切线方程.
我想写一篇关于奥巴马的演讲的文章,写哪一篇好呢?为什么好
奥巴马演讲不用看稿子.为什么中国领导演讲要看?
想找英语初三上学期的首字母填空练习……
英语翻译
最新试题
热门考点
- 1The ball which is on the floor is mine.这句话对吗?为什么?
- 2已知方程组三x加二y等于m加一,二x加y等于m减一求使x大于y的m的最小整数值.
- 3我要起个英语手抄报的名字,有关动物的!要English的哦!
- 4有一种地板砖,长20厘米,宽15厘米,至少需要多少块这样的地砖才能拼成一个是实心的正方形?(用短除法)
- 5如图,等腰梯形ABCD中,AD‖BC,角ABC=60°,AC⊥BD,AB=4cm,求梯形ABCD的周长
- 6几道一元二次方程数学填空题
- 7哪些诗句中含有成语
- 8当x>3时,化简【根号下(x-2)的平方】+【根号下(1-x)的平方】
- 91.已知a小于0,b小于0,c小于0.比较a分之cb与a分之b+c大小.(a分之cd是分数,a为分母cd为分子)
- 10由驻波理论,相邻波腹间和相邻波节间的距离都等于半波长,为什么超声光栅常数等于超声波的波长?