c
1 //構造体の定義 2typedef struct { 3 4 char srecord0_text[50]; //S0に入れるテキスト 5} opts_t; 6 7 8//オプション解析関数 9opt(int argc, char* argv[], opts_t* opts) { 10 11 int i = 0; 12 13 opts->srecord0_text = argv[i]; 14} 15 16 17//メイン関数 18int main(int argc, char* argv[]) { 19 20 opts_t opts; 21 opts.srecord0_text; 22 23 opt(argc,argv, &opts); 24 return 0; 25}
上記のコードだと
opts->srecord0_text = argv[i];
ここで、式は変更可能な左辺値である必要があります
とエラーが出てしまいます。
構造体で定義した配列に、コマンドパラメータのテキストを格納したいのですが、なかなか上手くいかないのでアドバイス頂けると助かります。
--追記2--
1:strcpy_s(opts->srecord0_text, 50, argv[i] );
としてみました。
2:opts.srecord0_text;
デバッグで変数の中身を見てみると
0x00ebf908 "フフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフ... char[0x00000032]
となっていました。
なので、コマンドパラメータが無くても、 CCCCCCCC と出力されてしまいます(16進数表記)
これは、何の値が入ってしまっているのでしょうか?
回答3件
あなたの回答
tips
プレビュー