指向矢量数据的指针失败

时间:2016-10-07 15:32:01

标签: c++ vector

我有一个操纵一块内存的类。

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.

enter image description here

使用向量会更方便 - 如果不需要最大值,我可以分配更小的内存块。

使用数组和向量之间的区别是什么,可能会在使用向量时导致崩溃。

0 个答案:

没有答案