С++ Увеличивает размер многомерных массивов

У меня есть функция, которая сохраняет данные в 2D-массиве. Проблема в том, что массив должен быть отправлен в Интернете 50 раз в секунду, поэтому я хочу, чтобы размер массива был как можно меньше, без потерь. Итак, скажем, что моей программе удается обновить 3 раза за эту 50-ю секунду, я хочу, чтобы второе измерение массива было exatly 3. Если он обновляется 10 раз, это будет 10, если только 1, 1. Я пытаюсь достичь этого, добавив второй размер измерения на 1 перед каждым обновлением.

char* a[254];

/* every tick */ 

for (int i=0; i<254; i++)
{
 a[i]=new char[counter]; //counter is incremented by one every update
}

будет ли это работать, или это просто переместит границы массива и испортит уже существующие данные?

EDIT: Я попытаюсь объяснить немного лучше. Если у меня есть [2] [2] массив, третья позиция - [2] [1]. Пусть говорят, что весь массив равен 0, за исключением [2] [1], который равен 1. Теперь, если я увеличиваю второе измерение с помощью new, переместится 1 в новую позицию [2] [1] или он все равно останется включенным третий, который сейчас [1] [3]?

1 ответ

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

licensed under cc by-sa 3.0 with attribution.