1

「name」という char[31] 変数を含む、symbolEntry という構造体があります。本質的に文字列である char * を渡し、それを symbolEntry の name 値に割り当てようとする関数があります。ただし、次のエラーが発生します。

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 に答える