当您有一个从一个指针结构指向另一个已分配内存的结构的指针时,函数调用后会发生什么?我之前问过一个关于结构的问题,导致我提出这个问题: 函数中结构指针的范围
例如:
struct example{
//variables and pointers
struct clip *next;
}*Head
然后我在函数中有一个数据类型结构的指针:
struct example *newNode=malloc(sizeof(struct example));
在同一个函数中,我将第一个节点(头)链接到第二个节点(新节点):
Head->next=newNode;
函数退出后链接/指向是否仍然存在?我不确定这是否有意义,但是当您在链表的末尾添加一个新节点时,您必须首先通过链表查看它的结束位置(下一个指针 = NULL)。
例如:
void insert_at_end(){
//We have a pointer cp that goes through the linked list, initially cp->next points to `null so we create a newnode right away`
//struct example cp and newnode gets malloc'd here
if(Head != NULL){
cp=Head;
while(cp->next !=NULL){
cp=cp->next;
}
cp->next=newNode;
else{
//We link the head to the newNode `because we don't want to change the head for each new node added.`
head=newNode;
}
}
但是在列表末尾添加了每个 newNode 之后,我们退出了函数,那么当我们重新进入函数并通过链表查看它在哪里结束时会发生什么?它怎么知道 cp->next 指向什么?