1

我有一个名为 symbolEntry 的结构,其中包含一个名为“name”的 char[31] 变量。我有一个函数,我在其中传递一个 char *,本质上是一个字符串,并尝试将其分配给 symbolEntry 的名称值。但是,我想出了以下错误。

symList.c:19:错误:从类型“char *”分配给类型“char [31]”时类型不兼容</p>

我尝试创建一个临时变量 a[31] 并使用 strncopy 复制传递的字符串,但我一直收到同样的错误。有任何想法吗?

这是我的代码:

typedef struct symbolEntry
{
    char type;
    char name[31];
    struct symbolEntry * next;
} symbolEntry;

void insertN(symbolEntry ** first, char * symbolName, char type)
{
    symbolEntry * entry = (symbolEntry *)malloc(sizeof(symbolEntry));
    entry->type = type;
    char a[31];
    strncpy(a, symbolName, 31);
    entry->name = a;
    entry->next = *first;
    first = &entry;
}
4

1 回答 1

2

无需创建临时数组。只需使用strncpy直接复制到结构的name字段中。

于 2013-11-12T01:59:35.217 回答