为什么我的链串地址传不出来
本帖最后由 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(未初始化) 领鱼币{:10_256:} for(i = 0; pre!='\0'; i++)pre 是个数组,怎么可能等于 '\0' ? 永恒的蓝色梦想 发表于 2020-4-30 17:39
领鱼币
{:10_277:} 永恒的蓝色梦想 发表于 2020-4-30 17:39
pre 是个数组,怎么可能等于 '\0' ?
那是 pre[i]。只是没有以代码的型式贴进来,[i]被当做斜体标记吃掉了 sunrise085 发表于 2020-4-30 17:51
那是 pre[i]。只是没有以代码的型式贴进来,[i]被当做斜体标记吃掉了
额{:10_245:} 虽然不知道你的这个PNODE是什么。但是能看出来你传递过去的是一个变量,在函数中创建了之后,函数结束也就没有了。不会被带回主函数。 sunrise085 发表于 2020-4-30 17:55
虽然不知道你的这个PNODE是什么。但是能看出来你传递过去的是一个变量,在函数中创建了之后,函数结束也就 ...
typedef struct Node
{
char data;
struct Node* pNext;
}NODE,*PNODE; 本帖最后由 CutAllTrees 于 2020-4-30 18:43 编辑
。。 想要传出一级指针,参数需要是2级指针
页:
[1]