1
struct TCB_t *del = RunQ;
del->next = NULL;
在上面的代码行中,对del执行的任何更改也会对RunQ进行。在第一行中,RunQ的所有值也被赋予给del。我认为在这一行之后,对del的任何改变都不会影响RunQ。但是在第二行之后,RunQ-> next是空的。这是为什么,什么做我这样做改变了我做出德尔不影响RunQC中的指针和变量
struct TCB_t *del = RunQ;
del->next = NULL;
在上面的代码行中,对del执行的任何更改也会对RunQ进行。在第一行中,RunQ的所有值也被赋予给del。我认为在这一行之后,对del的任何改变都不会影响RunQ。但是在第二行之后,RunQ-> next是空的。这是为什么,什么做我这样做改变了我做出德尔不影响RunQC中的指针和变量
struct TCB_t del = *RunQ;
del.next = NULL;
或
struct TCB_t newRunQ = *RunQ;
struct TCB_t *del = &newRunQ;
del->next = NULL;
请确保阅读_deep copy_ vs. _shallow copy_在采用之前。 – moooeeeep 2014-10-31 18:01:11
您可能希望复制对象。 – moooeeeep 2014-10-31 17:00:20
我建议你在指针上做更多的阅读,因为你似乎误解了它们。你正在观察的是预期的行为。 – skrrgwasme 2014-10-31 17:00:21
指针*指向*其他的东西。第一行使'del'指向与'RunQ'相同的对象。 – crashmstr 2014-10-31 17:00:28