Я создал эту структуру
struct dadosPessoais
{
char nome[60];
char end[60];
char cidade[60];
char estado[3];
int cep;
};
typedef struct dadosPessoais dadosPessoais
Кроме того, я объявил эти переменные и указатель
dadosPessoais dp[4], *dpp;
В настоящее время я пытаюсь получить некоторые данные отuser и использует указатель * dpp для хранения этих данных в переменной dp []. Чтобы сделать это, я сделал эту структуру цикла
for (i = 0; i < 4; i++)
{
dpp = &dp[i];
printf("-- Dados da %da pessoa --\n", i + 1);
printf("Nome: ");
scanf("%s", dpp->nome);
getchar();
printf("Endereço: ");
scanf("%s", dpp->end);
getchar();
printf("Cidade: ");
scanf("%s", dpp->cidade);
getchar();
printf("Estado: ");
scanf("%s", dpp->estado);
getchar();
printf("Cep: ");
scanf("%d", dpp->cep);
getchar();
system("clear");
}
Я знаю, что использование что-то вроде dpp->field
некорректно при использовании scanf, так как оператор стрелки (->) используется для возврата структурызначение поля, используя адрес этой структурной переменной, и оно не используется для возврата самого адреса структурного поля. Но если я попытаюсь использовать что-то вроде dpp.field
, оно все равно не будет работать, что сбивает с толку, поскольку оно должно означать что-то вроде &dp[index].field
, верно? Я до сих пор не понял, как решить эту проблему ...