как динамически создать массив строк фиксированной длины с соблюдением следующего ограничения - PullRequest
0 голосов
/ 02 августа 2011

Ограничением является то, что это должна быть непрерывная память.Причина в том, что он отправляется в унаследованный код другого языка, который ожидает его в этом формате в виде двумерного массива.

, поэтому по сути я хочу отправить

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

и т. Д., Где abc, def являются частью пространства, длина которого 20 байт.Теперь я хотел бы динамически создать этот массив и добавить в него как можно больше 20 символов или менее строк.

И затем отправить его в виде массива на другой слой.Какой лучший способ сделать это.

1 Ответ

1 голос
/ 02 августа 2011

std::vector< std::array<char, 20> > сделает свое дело

vector позволяет динамически выделять больше памяти для большего количества строк, тип std::array<char,20> гарантирует, что каждый член vector действительно содержит 20 символов (убедитесь, что проверены границы на копии и т. Д., Как и для любого массива).

Это для более нового стандарта C ++, IIRC, поэтому старые компиляторы могут его не поддерживать. Вместо этого используйте boost.array.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...