新手想请教看到的一个问题:
链结阵列:
struct data {
int value;
datatype *pt;
};
void deletept(struct data *dataptr)
{
struct data *temp;
temp = dataptr->pt;
*dataptr = *(dataptr->pt);
free(temp);
}
我想问的是为什么这边*dataptr = *(dataptr->pt);
这样不就只是很单纯的把下一个值的value搬过来而已吗?
我的理解里*是指标,可以将内存中的值取出来
而link list 的delete,一般是delete 传入node的next node,
应该是用*dataptr->pt=*dataptr->pt->pt才对,
而这题只是单纯的把*dataptr(取出data物件)后又把*(dataptr->pt)assign给他,
然后再free dataptr->pt,这样是变成砍node 本身?
请问我的理解有错吗?