當前,我正面臨着我的代碼和對指針的理解問題。這裏的代碼使用指向數組的指針
struct command
{
int type;
int *input;
int *output;
union{
struct command *command[2];
char **word;
}u;
};
據我瞭解,實例struct command * command [2]是一個指向數組的指針數組。所以我分配這些陣列:
cur_command->u.command[0] = malloc(sizeof(struct command[2]));
所以它給了我一個二維數組的命令。然而,我的老師告訴我,struct command * command [2]是一個指向數組命令大小2的指針。所以cur_command->u.command[0]
給出第一個命令元素,而不是指向命令數組大小2的指針。我的問題是,我如何分配內存來開發這種行爲。 thx
http://cdecl.org對於這樣的事情是非常有用的。基本上你所擁有的是*指針*的大小數組*結構命令 –
你和你的老師都是錯誤的。 'command'是一個包含兩個指向'struct command'的指針的數組。 –
@Carl Norum所以,我不能直接設置cur_command-> u.command [0]的值而不分配內存權限? –