c - 错误:从类型“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 };
我应该如何修改我的代码?
解决方案
您不能分配给struct
对象,您需要分配给它的成员:
cmd[i].argv = APPS[i].app;
推荐阅读
- sql - 如何限制用户在 PowerBI 中查看某些数据过滤器?
- html - 将多件小件包裹在一件大件旁边
- excel - 当第一个事件重复发生时,是否可以运行多个准时事件?
- java - EasyMock - 由于父类私有对象(i18n)无法访问而引发 NullPointerexception
- go - 调试 gRPC 拨号中的连接问题
- php - PHP:可以将一个类中的属性值转移到另一个具有相同名称的类中的属性吗?
- azure-cognitive-search - Azure 商业搜索与 Azure 政府搜索之间的差异
- amazon-web-services - 如何建立 AWs Systems Manager PortForwarding 会话?未知会话类型端口
- mongodb - 在 protobuf java 中生成自定义 _id 以将其保存在 Mongodb 中
- c# - Unity Google Play 许可证验证 (LVL)