im пытается прочитать слово от пользователя, затем динамически выделяет память для слова и сохраняет его в массиве struct, который содержит char *. Я продолжаю получать неявное объявление функции âstrlenâ, поэтому я знаю, что я что-то не так.Выделение памяти для указателя char, являющегося частью структуры
struct unit
{
char class_code[4];
char *name;
};
char buffer[101];
struct unit units[1000];
scanf("%s", buffer);
units[0].name = (char *) malloc(strlen(buffer)+1);
strcpy(units[0].name, buffer);
Я предполагаю, что это должно быть 'struct unit', а не' struct class'. –
@ Ken, это совершенно законно в C. – Earlz
@Earlz - факт, что он является законным C, совершенно не имеет значения. Он объявляет структуру с тегом «класс», который никогда не используется, но использует структуру с тегом «единица», которая нигде не объявлена. – Dipstick