現在、コードとポインターの理解に問題があります。ここにコードがあります
struct command
{
int type;
int *input;
int *output;
union{
struct command *command[2];
char **word;
}u;
};
私の理解では、インスタンス struct コマンド *command[2] は、コマンドの配列へのポインターの配列です。したがって、これらを使用して配列を割り当てます。
cur_command->u.command[0] = malloc(sizeof(struct command[2]));
したがって、コマンドの2次元配列が得られます。しかし、私の先生は、struct コマンド *command[2] は配列コマンド サイズ 2 へのポインターであると教えてくれました。したがってcur_command->u.command[0]
、サイズ 2 のコマンド配列へのポインターではなく、最初のコマンド要素を指定してください。私の質問は、この種の動作を開発するためにメモリをどのように割り当てることができるかです。どうも