Рассмотрим код:Struct член переменной и структура в определении функции
#define STRINGMAX 50
struct GIFTS {
char whofor[STRINGMAX];
char city[STRINGMAX];
float weight;
struct DIMENSIONS {
float width;
float length;
float height;
} dim;
} gifts[STRINGMAX];
И функция определения:
void takeString(char * structvar, char structarr[], int arrpos) {
while (scanf("%[^\n]%*c]", structarr[arrpos].structvar) != EOF) {
scanf("%[^\n]%*c]", structarr[arrpos].structvar);
}
}
Это дает мне ошибку:
request for member ‘structvar’ in something not a structure or union
Есть ли способ передать член структуры в этом случае? Я видел некоторые подобные темы здесь о том, как это сделать, но я не смог представить эти идеи в свой код (я полный C начинающий). Буду признателен за любую помощь, особенно наглядный пример в коде.
КПП. Я знаю, что я не должен использовать scanf, но это, к примеру. Я сделаю что-то еще, когда узнаю, как передать член структуры в параметр функции.
'structarr' имеет тип' '* полукокса, вы имели в виду' structvar'? –
Несвязанный с вашей проблемой, но для входа в считывание цикла требуется, чтобы пользователь вводил одни и те же данные * дважды *. –
Поскольку ни один из параметров функции не является структурой, этот вопрос не имеет никакого смысла. Пожалуйста, отредактируйте его, чтобы стало ясно, что вы имеете в виду. – Lundin