【发布时间】:2020-02-20 04:49:02
【问题描述】:
所以我有一个名为 cmd_t 的 typedef 结构和一个名为 argv 的字符数组成员。 而且我有一个接受字符数组参数的函数,我希望它使用与输入数组具有相同值的数组初始化结构,但我需要此分配使用 strdup 来复制元素。到目前为止,我有这样的事情:
typedef struct {
char *argv[ARG_MAX+1]; //ARG_MAX being a defined constant
...
} cmd_t;
cmd_t *cmd_new(char *argv[]){
cmd_t *cmd;
for (int i = 0; i < ARG_MAX; i++){ //Last element must be NULL
cmd->argv[i] = strdup(argv[i]);
}
...
}
虽然我收到了令我担心的警告。
warning: ‘cmd’ may be used uninitialized in this function [-Wmaybe-uninitialized]
cmd->argv[i] = strdup(argv[i]);
我认为我的方法相当幼稚,如果我能在正确的方向上得到一些指示,那就太棒了。
【问题讨论】:
标签: c arrays struct initialization