【发布时间】:2018-07-21 12:58:52
【问题描述】:
typedef struct node {
struct node* next;
int hash;
symbol_t symbol;
} node_t;
typedef struct symbol {
char* name;
int addr;
} symbol_t;
以上是我正在使用的两个结构的定义。我正在尝试将新的 node_t 添加到链接列表中。首先,我为node_t分配内存:
node_t* newSymbol = malloc(sizeof(node_t));
那么,node_t 应该包含一个嵌套结构(符号)。我尝试修改 node_t 中符号结构内的名称属性(字符串):
newSymbol->symbol.name = name;//name is a parameter to function I'm in
我尝试在符号嵌套结构中初始化名称和地址;但是,我收到此错误:
warning: assignment discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers] newSymbol->symbol.name = name;
^
我尝试了多种方法来修改嵌套符号结构中的数据,但它要么抛出我上面列出的错误,要么导致分段错误。我不确定我做错了什么。提前感谢您的帮助。
【问题讨论】:
-
密切注意错误。它与您所指的嵌套结构无关。您正在尝试将
const指针分配给非常量指针。