構造体の構造体の構造体をまとめて初期化したい
gnuplotをCで吐くためのプログラムを作成していますが、
構造体の構造体の構造体をまとめて初期化することができません。
以下がコードそのコードです。
#define MAX_PLOT_DATA_NUM 8
#define MAX_GRAPH_SET_NUM 35
//child --------------------------------------------------
typedef struct {
char *fileName;
int column[2];
char *caption;
} Col;
//child --------------------------------------------------
typedef struct {
char *category;
char *subCategory;
char *xLabel, *yLabel;
char *saveFileName;
Col col[MAX_PLOT_DATA_NUM];
} GraphSet;
//child --------------------------------------------------
typedef struct {
char *lineFormat;
int lineWidth;
} Common;
//mother -------------------------------------------------
typedef struct {
GraphSet gs[MAX_GRAPH_SET_NUM];
Common common;
} PlotFormats;
int main(){
PlotFormats pF = {
{"Motor angle","right","Time [s]","Angle [rad]","ang_R",
{"motor.dat",1,2,"ang #1 "},
{"motor.dat",1,3,"ang #2 "},
{"motor.dat",1,4,"ang #3 "},
{"motor.dat",1,5,"ang #4 "},
{"motor.dat",1,6,"ang #5 "},
{"motor.dat",1,7,"ang #6 "},
},
//ここから下のコメントアウトしてる部分をはずすとコンパイルが通らなくなります。
//{"Motor angle","left","Time [s]","Angle [rad]","ang_L",
// {"motor.dat",1,12,"ang #1 "},
// {"motor.dat",1,13,"ang #2 "},
// {"motor.dat",1,14,"ang #3 "},
// {"motor.dat",1,15,"ang #4 "},
// {"motor.dat",1,16,"ang #5 "},
// {"motor.dat",1,17,"ang #6 "},
//},
{"w l", 5}};
return 0;
}
エラーは
・間接参照のレベルが 'char *' と 'int' で異なっています。(複数)
・初期化子の数が多すぎます。
と出ます。
長くなりましたが、わかる方がいましたら、よろしくお願いします。
お礼
すみません、解決しました; 寝不足で「関数の中で走らせてる」つもりが 「構造体の宣言の中」に書いてしまってました・・・ ちゃんと動いてくれました、本当にすみませんでした・・! ありがとうございました~っ orz
補足
ご回答ありがとうございます。 この様なエラーが出ます。 error C2143: 構文エラー : ';' が '.' の前にありません。 error C4430: 型指定子がありません - int と仮定しました。メモ: C++ は int を既定値としてサポートしていません error C2238: ';' の前に無効なトークンがあります。 実体化しようとしている data::SET_A dataseta; dataseta.time = 1; ここを削ればコンパイル~実行が正しく行われるので 問題が有るのはこの2行だと思うのですが・・ 宜しくお願いします orz