如何使用以下约束动态创建固定长度字符串的数组

how to create an array of fixed length strings dynamically with following constraint

本文关键字:字符串 数组 创建 何使用 约束 动态      更新时间:2023-10-16

约束是它应该是连续内存。原因是,这是被发送到另一个语言遗留代码,它期望它的格式为2D数组。

所以实际上我想发送

char *temp[20] = { "abc", "def"};

等,其中abc, def20字节长度的空间的一部分。现在,我想动态地创建这个数组,并添加尽可能多的20字符或更少的字符串到它。

然后把它作为数组发送到另一个层。什么是最好的方法?

std::vector< std::array<char, 20> >就可以了

vector允许为更多字符串动态分配更多内存,std::array<char,20>类型确保vector的每个成员确实是20个字符(确保验证复制等的边界,与任何数组一样)。

这是针对较新的c++标准IIRC的,所以旧的编译器可能不支持它。使用增加。