提问人:Keneth Cayas 提问时间:11/6/2020 最后编辑:Vlad from MoscowKeneth Cayas 更新时间:11/6/2020 访问量:1268
[“{”标记前的预期表达式出错
[Error expected expression before '{' token
问:
你好,我是 C 语言的初学者,我不知道为什么 每次尝试编译时,我都会在此行上收到此错误
CURRENT->name = {'L','O','U','D','A'};
这是我的整个代码
#include <stdio.h>
#include <stdlib.h>
struct node{
char name[15];
int age;
struct node *next;
}TEMPLATE;
int main()
{
struct node *HEAD;
HEAD = (struct node*) malloc (sizeof(struct node));
struct node *TAIL;
TAIL = (struct node*) malloc (sizeof(struct node));
struct node *CURRENT;
CURRENT = (struct node*) malloc (sizeof(struct node));
CURRENT->name = {'L','O','U','D','A'};
CURRENT->age = 24;
CURRENT->next = NULL;
return 0;
}
答:
0赞
Vlad from Moscow
11/6/2020
#1
您只能将带支撑的列表用作声明的初始值设定项。
但是这个
CURRENT->name = {'L','O','U','D','A'};
不是声明,而是表达式语句
你可以写
#include <string.h>
//...
strcpy( CURRENT->name, "LOUDA" );
注意全局变量 TEMPLATE 的声明
struct node{
char name[15];
int age;
struct node *next;
}TEMPLATE;
没有意义。所以声明结构
struct node{
char name[15];
int age;
struct node *next;
};
并动态分配节点,如本语句所示
HEAD = (struct node*) malloc (sizeof(struct node))
评论
strcpy
strcpy(CURRENT->name, "LOUDA")