【发布时间】:2014-03-19 01:18:27
【问题描述】:
我创建了一个结构,其中包含一个 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
【问题讨论】:
-
你需要使用
->而不是.,因为它是一个指针。 -
您还应该使用“%c”而不是“%s”——“%s”需要一个指向以 NULL 结尾的字符数组的指针。如果你为 "%s" 提供一个字符 printf 会将该字符视为一个指针,它会崩溃或输出一些垃圾。
-
我做了一个编辑...我应该写 char *val
-
你怎么能在任何函数之外调用
malloc?您是否使用main的定义重新排序了该行? -
C 没有方法...