ので、私は、次の構造体を得た:別の構造体の内部で構造体の配列を初期化するにはどうすればよいですか?
typedef struct typeData{
char name[20];
double weightIn;
double weightOut;
}dataType;
typedef struct fifoTable{
unsigned short int start;
unsigned short int end;
dataType data[N];
} fifoTable;
と構造体を初期化することになって、次の機能:「割り当て:
fifoTable *initFifo(){
fifoTable table;
table.start = 0;
table.start = 0;
dataType data[N];
table.data = data;
return table;
}
私が遭遇した問題は、私はエラーメッセージを言ってしまうことがあり配列型の式への変換」を参照してください。私はそれを見て、私はそれのような構造体内の配列を初期化することは不可能だと思った。 char、intなどの配列を使った例がいくつか見つかりましたが、dataType構造体内に他の要素があるため、このテーブルを初期化する方法が見つかりません。
ご回答ありがとうございます。
初期化コードでポインタとしてスタック変数を返そうとしています。 mallocを使うべきです。 –
@ChristopherSchneider:C言語にスタックはありません。 'table'は自動変数です。しかし、はい、変数は戻り値の後に寿命があります。したがって、アクセスはすべてUBです。しかし、これはコンパイラエラーの理由ではありません。 – Olaf
@Olafどこで読むことができますか?私が聞いたのはこれが初めてのことです。 –