首页 > 解决方案 > 错误:从类型“char **”分配给类型“struct XXX”时类型不兼容

问题描述

我的 C 代码中出现错误:

error: incompatible types when assigning to type ‘struct command’ from type ‘char **’.

我不知道为什么我不能将 char *var[] 分配给 char **。

typedef struct Appstruct{
    char *app[10];
} APP;
struct command
{
   char **argv;
};
struct command cmd[10];
for(i=0;i<pipecount+1;i++)
{
       cmd[i]=APPS[i].app;
}

但是,如果我直接将数组一一分配(不使用循环分配),就可以了:

struct command cmd [] = { APPS[0].app, APPS[1].app }; 

我应该如何修改我的代码?

标签: c

解决方案


您不能分配给struct对象,您需要分配给它的成员:

cmd[i].argv = APPS[i].app;

推荐阅读