1. ホーム
  2. c

[解決済み] struct has no member named

2022-01-31 03:01:29

質問

私のプログラムには、2つの配列メンバを含む構造体が含まれています。この構造体を関数パラメータ内のvoid関数に呼び出しています。

構造体の定義です。

struct caketime
{
    double baking_time [4]={20,75,40,30};
    double prepare_time[4]={30,40,25,60};
};

void関数です。

void prepareorder(struct caketime p) {

int i=0;
    for (i=0;i<LIMIT;i++)
    {
        if(p.prepare_time[i]==25)
            printf("Choclate");
        else if (p.prepare_time[i]==30)
            printf("Sponge Cake");
        else if (p.prepare_time[i]==45)
            printf("Meringue");
        else if (p.baking_time[i]==60)
            printf("Red_velvet");
    }
}

このプログラムをコンパイルすると、以下のようなエラーが発生します。

In function 'prepareorder': error: 'struct caketime' has no member named 'prepare_time'
error: 'struct caketime' has no member named 'baking_time'

こちらは何が問題になっているのでしょうか?

解決方法は?

試してみてください。

struct caketime
{
   double baking_time[4];
   double prepare_time[4];  
};

の代わりに

struct caketime
{
   double baking_time [4]={20,75,40,30};
   double prepare_time[4]={30,40,25,60};
};

構造体の内部で配列の要素を初期化してはいけません。