У меня есть структура, называемая symbolEntry, которая содержит переменную char [31], называемую «имя». У меня есть функция, в которой я передаю char *, по существу строку, и попытаюсь присвоить ее значению имени символаEntry. Однако, я придумал следующую ошибку.Преобразование из char * в char [31] в C
symList.c: 19: ошибка: несовместимые типы при назначении типа «символ [31]» от типа «символ *»
Я попытался создать временную переменную а [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;
}
strncpy (entry-> name, symbolName, 30); entry-> имя [31] = '\ 0'; – ChuckCottrill
И вы, вероятно, хотите * first = entry; – ChuckCottrill