Сбой указателя на векторные данные

У меня есть класс, который манипулирует блоком памяти.

class cPacket {
public:
cPacket(
: vBuffer( 96000 )
{
#ifdef USE_VECTOR
myPacketBuffer = vBuffer.data();
#else
myPacketBuffer = aPacketBuffer;

}

...

protected:
unsigned char * myPacketBuffer;
std::vector< unsigned char > vBuffer;
unsigned char aPacketBuffer[ 96000 ];
};

В коде только указатель myPacketBuffer используется для доступа к блоку памяти 96000 байт

Используя массив, все работает отлично.

Используя вектор, все модульные тесты работают, но производственное приложение работает некоторое время, а затем таинственно падает в системном коде, очевидно, что-то связанное с выделением памяти.

Program received signal SIGTRAP, Trace/breakpoint trap.

введите описание изображения здесь

Использование вектора будет намного удобнее — я могу выделить меньшие блоки памяти, если максимум не нужен.

В чем разница между использованием массива и вектора, которые могут вызывать сбои при использовании вектора.

2

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector