如何使用以下约束动态创建固定长度字符串的数组
how to create an array of fixed length strings dynamically with following constraint
约束是它应该是连续内存。原因是,这是被发送到另一个语言遗留代码,它期望它的格式为2D数组。
所以实际上我想发送
char *temp[20] = { "abc", "def"};
等,其中abc, def
是20
字节长度的空间的一部分。现在,我想动态地创建这个数组,并添加尽可能多的20
字符或更少的字符串到它。
然后把它作为数组发送到另一个层。什么是最好的方法?
std::vector< std::array<char, 20> >
就可以了
vector
允许为更多字符串动态分配更多内存,std::array<char,20>
类型确保vector
的每个成员确实是20个字符(确保验证复制等的边界,与任何数组一样)。
这是针对较新的c++标准IIRC的,所以旧的编译器可能不支持它。使用增加。
相关文章:
- 将C#字符串数组传递给C++
- 如何为 C 型字符串数组编写 getter 和 setter?
- 有没有办法使用 strcpy 将字符串数组复制到另一个字符串或其他数组中?
- 尝试将 c 字符串数组与分隔符连接起来
- 将字符串数组传递给接受常量字符**的函数
- 返回 C++ 中的字符串数组
- 如何从COM模块中的函数返回字符串数组?
- 无法将字符串数组声明为类成员而不是字符 (C++)
- 删除字符串数组
- 如何将字符串数组返回到 java JNI
- 将字符串数组作为函数参数传递
- C++将字符串数组的元素存储到变量中
- 循环访问还包含未使用元素的字符串数组
- 字符串数组上的 sizeof 运算符以 C++ 为单位给出不同的输出
- 乘以字符串/数组和全局数组
- 递归二进制搜索与字符串数组
- 如何初始化一个标准::字符串数组?
- 无法在声明时使用初始值设定项列表初始化常量字符*/字符串数组的向量
- C++字符串数组的动态向量
- 给定一个等长字符串数组