【发布时间】:2016-12-16 14:05:44
【问题描述】:
我有一个这样声明的结构:
typedef struct {
char InstrumentDB[128];
char GeneralSettingsDB[128];
char LiveDB[128];
char SystemsDB[128];
} Address;
但是,当我尝试调用函数 OpenDatabase(char* filepath, ...) 时,我得到一个错误。我这样称呼它:
OpenDatabase(Filepath.InstrumentDB, db);
但是,当我创建一个大小相同但在不归因于结构的单独变量中的新 char 数组时,它会起作用吗?为什么是这样?确定它们是同一类型的吗?
编辑:Filepath.InstrumentDB 声明如下:
Address Filepath;
Filepath.InstrumentDB = "/root/BBBTest/Instruments.db";
这是我得到的错误:error: incompatible types when assigning to type ‘char[128]’ from type ‘char *’
【问题讨论】:
-
“我收到一个错误” - 什么错误?
-
那么
Filepath是如何定义和初始化的? -
请添加一个显示错误的最小示例(并在您的问题中包含错误)。
-
可以很好地编译一个超级最小的例子:gist.github.com/anonymous/f463003547050e14aef069974e57ad95。你有什么问题。
-
要复制一个字符串,你不能只分配它,而必须使用 strcpy(Filepath.InstrumentDB, "...")
标签: c arrays function char structure