链表节点移除
if (head->next) {
while (workptr->next && (workptr->next->index != index)) {
workptr = workptr->next;
}
if (workptr->next) {
tempptr = workptr->next;
workptr->next = tempptr->next;
free(tempptr); //这里用delete就会出错
tempptr = nullptr;
--this->size;
}
}
貌似delete把后面的节点一起释放掉了?
ps: 为什么我不很清楚,兄弟不要作死,先遵循这条信条,在慢慢搞明白原因
C++中的new/delete是新实现的
内存分配
器,而malloc和free是C标准库实现的另一套内存分配
器,他们走的是不同的算法,所以当然不能混用了.至于一些奇葩的C++编译器实现,可能用C标准库中的free和malloc来实现new/delete,那我们还是不能确定能不能混用,如果你用了好使,也别混用