一世轻尘 发表于 2021-1-23 16:53:37

一个指针小问题

本帖最后由 一世轻尘 于 2021-1-23 16:55 编辑

/*插入结点*/
/*参数:链表的第一个结点,插入的位置*/
void ds_insert(node **pNode , int i)
{
    node *temp;
    node *target;
    node *p;
    int item;
    int j = 1;

    printf("输入要插入结点的值:");
    scanf("%d", &item);

    if(i == 1)
        { //新插入的结点作为第一个结点
       temp = (node *)malloc(sizeof(struct CLinkList));

                if(!temp)
            exit(0);

                temp ->data = item;

      /*寻找到最后一个结点*/
      for(target = (*pNode); target->next != (*pNode); target = target->next)
                        ;

                temp->next = (*pNode);
      target->next = temp;
      *pNode = temp;
    }
在这里temp如果开辟失败了,temp的值会是什么,为什么此时if语句可以运行

刘珊水 发表于 2021-1-23 22:07:34

没有见过**pNode的结点格式,可以问下结点的结构体是怎么声明的吗?

一世轻尘 发表于 2021-1-23 22:38:41

刘珊水 发表于 2021-1-23 22:07
没有见过**pNode的结点格式,可以问下结点的结构体是怎么声明的吗?

typedef struct CLinkList
{
    int data;
    struct CLinkList *next;
}node;**pNode就是一个函数参数,跟结构体没啥关系

永恒的蓝色梦想 发表于 2021-1-25 10:29:15

开辟失败了就是 NULL, 也就是 0
页: [1]
查看完整版本: 一个指针小问题