我有一个操纵一块内存的类。
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.
使用向量会更方便 - 如果不需要最大值,我可以分配更小的内存块。
使用数组和向量之间的区别是什么,可能会在使用向量时导致崩溃。