【发布时间】:2018-02-27 04:22:13
【问题描述】:
boolean consume_first(struct list ** ptrptr, float * value){
struct list * temp;
if((*ptrptr) != NULL){
*value = (*ptrptr)->data; //HERE
temp = (*ptrptr);
*ptrptr = (*ptrptr)->next;
free(temp); //and HERE
return TRUE;
}else{
return FALSE;
}
}
这里(在代码中)
一旦我使用“免费”,数据也会擦除吗?
“程序”不是功能性的,我调用并传递参数的唯一目的是稍后“实现”它。
主要内容和其他内容:
struct list{
float data;
struct list * next;
};
void init(struct list**);
void visit(struct list*);
int get_value(float*);
void pre_insert(struct list**, float*);
boolean consume_first(struct list**, float*); //HERE
void suf_insert(struct list **, float*);
int main(){
struct list * listA;
struct list * listB;
init(&listA);
init(&listB);
float * data = NULL;
*data = get_value(data);
pre_insert(&listA, data);
pre_insert(&listB, data);
visit(listA);
visit(listB);
consume_first(&listA, &listA->data); //HERE
consume_first(&listB, &listB->data); //HERE
suf_insert(&listA, data);
suf_insert(&listB, data);
return 0;
}
(抱歉英语不好,我尽力了)
【问题讨论】:
标签: c list pointers linked-list