c++ - 为结构体灵活数组赋值

标签 c++ c

所以我有一个结构如下:

typedef struct {
     ......
     char* filenames[];
}

int myFunction(char* filenames[]) {
     myStruct->filenames = filenames;
}

这给了我一个“灵活数组成员的无效使用”错误。为什么是这样?我知道我无法 malloc 我的结构数组,因此我不确定如果无法为其赋值,我将如何使用它。

最佳答案

您需要使用char** filenamesc++不接受可变长度数组。

参见example .

作为建议,而不是答案,请使用 std::string 。或者如果您需要容器,std::vector<std::string>

关于c++ - 为结构体灵活数组赋值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29638944/

相关文章:

c++ - 显示字符串的地址

c++ - 如果我还需要使用 ODE,我应该从 Eigen 切换到 MTL4 吗?

c++ - 当我在调用追加后立即实例化一个节点时,链表被破坏

c# - 哪种数据类型最适合 C++ 中 Thrift 通信中的日期时间?

c - 指针和函数调用

c++ - C/C++ 的偏最小二乘法实现?

c - GCC 对宏中使用的 __builtin 函数的优化

c++ - C++初始化列表,类中的类(聚合)

c - 评论总是在预处理器之前处理吗?

c - 有用于 C 的 wxWidgets 框架吗?