C初心者です。フォーラムを見回しましたが、必要なヘルプが得られないようです。私がやろうとしていることはとても簡単です。ヘッダーで構造体を宣言してから、この構造体の配列を作成しました。
次に、関数を呼び出して、この構造体の配列へのポインターを渡しますが、関数内でエラーが発生します。
エラー: 構造体または共用体ではないメンバー 'XXXXX' の要求
このエラーは、構造体の配列を関数に渡す方法だと思いますが、正しい方法を理解できないようです。
私の header.h は次のとおりです。
#ifndef HEADER_H_INCLUDED
#define HEADER_H_INCLUDED
typedef struct PhoneNumber
{
char name[40];
unsigned char number[10];
} PhoneNumber;
#endif // HEADER_H_INCLUDED
私のコードでは、次のようになります。
#include <stdio.h>
#include <stdlib.h>
#include "header.h"
int main()
{
struct PhoneNumber PhoneNumbers[10];
//input phone number
inputPhoneNumbers(&PhoneNumbers);
//display PhoneNumber
displayPhoneNumbers(&PhoneNumbers);
return EXIT_SUCCESS;
}
int inputPhoneNumbers(int size, PhoneNumber *details[size])
{
size = 0;
printf("Enter a name\n");
scanf("%s\n", &details[size].name);
printf("Enter %s's number\n", details[size]->name);
scanf("%s\n", &details[size].number);
return EXIT_SUCCESS;
}
int displayPhoneNumbers(PhoneNumber *number)
{
printf("%s\n",number->name);
printf(number->number);
}
誰かが私を正しい方向に向けることができますか?
乾杯!