c语言结构体问题
#include <stdio.h>#include <stdlib.h>
#include <malloc.h>
typedef struct
{
char *data;
struct Node *next;
}Node;
void creat(Node* *L)
{
*L->data="huguyguy";
}
void main()
{
Node *p;
p=(Node *)malloc(sizeof(Node));
p->next =NULL;
creat(&p);
printf("%s\n",p->data );
}
哪里错了???????? 目测字符串不能这样赋值,未验证。 注意表达式优先级,->的优先级比*高,
*L->data="huguyguy";改成 (*L)->data="huguyguy"; struct Node
{
char *data;
struct Node *next;
};
void creat(Node* *L)
{
(*L)->data="huguyguy";
}
void main()
{
Node *p;
p = (Node *)malloc(sizeof(Node));
p->next = NULL;
creat(&p);
printf("%s\n", p->data);
}
貌似这样就可以了 好好学习下 都是技术行人才~ 你倒是把编译的错误显示出来啊,难不成让我们去运行编译去,好懒 #include <stdio.h>
#include <stdlib.h>
#include <malloc.h>
typedef struct node
{
char *data;
struct node *next;
}Node;
void creat(Node* *L)
{
(*L)->data="huguyguy";
}
int main()
{
Node *p;
p=(Node *)malloc(sizeof(Node));
p->next =NULL;
creat(&p);
printf("%s\n",p->data );
return 0;
}
devc++ 中运行通过,建议不清楚运算优先级的情况下加括号 就跟加减乘除一样,要看那个先运算
页:
[1]