不知道为什么多申请了一个空间

#include <stdio.h>
#include<string.h>
#include<stdlib.h>
struct ListNode
{
    int val;
    struct ListNode *next;
    
};
void createLink(struct ListNode * head)
{
    head=(struct ListNode * )malloc(sizeof(struct ListNode));
    head->next=NULL;
}
void insertNode(struct ListNode * head,int val)
{
    struct ListNode * node=(struct ListNode * )malloc(sizeof(struct ListNode));
    printf("%p\n",node);
    node->val=val;//
    node->next=head->next;
    head->next=node;
    
}
void printList(struct ListNode * head)
{
    struct ListNode * pmove;
    pmove=head;
    while(pmove!=NULL)
    {
        printf("%d ",pmove->val);//我没有多mallco一个空间,但是在单步调试的时候,却看到我多申请了一个空间。
        printf("%p\n",pmove);
        
        pmove=pmove->next;
    }

}
int main(int argc, const char * argv[])
{
    int i;
    struct ListNode *List=(struct ListNode *)malloc(sizeof(struct ListNode));

    createLink(List);

    for(i=0;i<10;i++)
    {
        insertNode(List,i);
    }
    printList(List);
    
    return 0;
}

不知道为什么

猜你喜欢

转载自www.cnblogs.com/aria-garden/p/10357654.html