cafがhttps://stackoverflow.com/a/1113041/1354779で説明したように、変数が宣言されているときに初期化子を使用して、既に宣言されている配列を初期化する方法があります。それは素晴らしいことです。配列のすべての項目を 1 つずつ使用する方法があるかどうかを知りたいと思います。
これを使用して、パイプを介してコマンドのリストを渡します。これが機能することはわかっています。
char* script[]={"report blabla","report bla"};
char line[200];
char** command;
for (command = script ; **command ; **command ? command++ : 0){
if (**command){
SendCommand(*command, line, sizeof(line));
}
}
しかし、以下のコードを試すと、「pipe_GWB9.exe の 0x778915de で未処理の例外: 0xC0000005: アクセス違反の読み取り場所 0xcccccccc」が表示されます。
char* request[] = {"report watact"};
char line[200];
// [...] Other code [...]
static const char *tmp[8] =
{
"report molality H+",
"report molality Cl-",
"report molality Ca++",
"report molality Mg++",
"report molality K+",
"report molality Fe++",
"report molality SO4--",
"report molality Na+"
};
memcpy(request, tmp, sizeof request);
char** command;
command=request;
SendCommand(*command, line, sizeof(line));
// Until here, everything works great.
**command ? command++ : 0;
SendCommand(*command, line, sizeof(line));
// But THAT doesn't work!!
配列リクエストの他のアイテムを呼び出すのを手伝ってくれませんか?
ありがとう