我创建了一个结构,其中包含一个char变量。在方法中使用它时,我想为它分配一个字符串值,然后将其打印出来。我一直在环顾四周,但找不到有效的答案,但找不到我做错了什么。为什么我得到下面的错误?将变量赋值给结构成员
这是我曾尝试:
struct node{
char *val;
struct node *first;
struct node *last;
};
void main(){
struct node *new_node;
new_node =(struct node *)malloc(sizeof(struct node));
new_node.val = "a";
printf("%s",new_node.val);
}
我得到的错误:
request for member 'val' in something not a structure or union
您需要使用' - >'not'.',因为它是一个指针。 –
您还应该使用“%c”而不是“%s” - “%s”正在等待指向NULL终止的字符数组的指针。如果您提供带有字符的“%s”,则printf会将该字符视为会崩溃或输出一些垃圾的指针。 – thisisdog
我做了一个编辑...我应该写char * val – JustBlossom