CutAllTrees 发表于 2020-4-30 17:35:09

为什么我的链串地址传不出来

本帖最后由 CutAllTrees 于 2020-4-30 18:19 编辑

typedef struct Node
{
    char data;
    struct Node* pNext;
}NODE,*PNODE;
void StrAssign(PNODE chainStr, char pre[])
{
    int i;
    PNODE pNew,pTail;
    pTail = chainStr = (PNODE)malloc(sizeof(NODE));
    if (chainStr == NULL)
    {
      printf("链头创建失败!\n");
      exit(-1);
    };
    for(i = 0; pre!='\0'; i++)
    {
      pNew = (PNODE)malloc(sizeof(NODE));
      if(pNew == NULL)
      {
            printf("新节点串创建失败!\n");
            exit(-1);
      }
      pNew->data = pre;
      pTail->pNext = pNew;
      pTail = pNew;
      
    }
    pTail->pNext = NULL;
}
int main()
{
    NODE chainStr
    char pri[] = "abc";
    StrAssign(&chainStr, pri);
    return 0;
}
想要把 chainStr串的值打印出来,但是chainStr->pNext指向的地址是0xCCCCCCCCC(未初始化)

永恒的蓝色梦想 发表于 2020-4-30 17:39:00

领鱼币{:10_256:}

永恒的蓝色梦想 发表于 2020-4-30 17:39:43

for(i = 0; pre!='\0'; i++)pre 是个数组,怎么可能等于 '\0' ?

老八秘制 发表于 2020-4-30 17:39:52

永恒的蓝色梦想 发表于 2020-4-30 17:39
领鱼币

{:10_277:}

sunrise085 发表于 2020-4-30 17:51:09

永恒的蓝色梦想 发表于 2020-4-30 17:39
pre 是个数组,怎么可能等于 '\0' ?

那是 pre[i]。只是没有以代码的型式贴进来,[i]被当做斜体标记吃掉了

永恒的蓝色梦想 发表于 2020-4-30 17:51:37

sunrise085 发表于 2020-4-30 17:51
那是 pre[i]。只是没有以代码的型式贴进来,[i]被当做斜体标记吃掉了

额{:10_245:}

sunrise085 发表于 2020-4-30 17:55:03

虽然不知道你的这个PNODE是什么。但是能看出来你传递过去的是一个变量,在函数中创建了之后,函数结束也就没有了。不会被带回主函数。

CutAllTrees 发表于 2020-4-30 18:19:53

sunrise085 发表于 2020-4-30 17:55
虽然不知道你的这个PNODE是什么。但是能看出来你传递过去的是一个变量,在函数中创建了之后,函数结束也就 ...

typedef struct Node
{
    char data;
    struct Node* pNext;
}NODE,*PNODE;

CutAllTrees 发表于 2020-4-30 18:41:55

本帖最后由 CutAllTrees 于 2020-4-30 18:43 编辑

。。

flamer 发表于 2020-5-5 10:02:51

想要传出一级指针,参数需要是2级指针
页: [1]
查看完整版本: 为什么我的链串地址传不出来