我发现很难找到下面的代码有什么问题。我试图将一个简单的整数指针复制到我的一个本地整数指针(或Interger数组)中,该指针作为我的结构构造函数的参数。由于某些奇怪的原因,它在for循环内的第一次迭代中崩溃。 请帮忙
struct mystruct{
UINT8 command;
UINT8 nextOffset;
UINT8* writeBuffer1;
UINT8 checkSum;
mystruct( UINT8 devAddress, UINT8 commandIn, UINT8 nextOffsetIn, UINT8 bufferSizeIn, UINT8 dataBufcheckSumIn, UINT8* writeBufferIn )
: command( commandIn )
, nextOffset( nextOffsetIn )
{
writeBuffer1 = new UINT8[bufferSizeIn];
memset( &writeBuffer1, 0, bufferSizeIn );
for( int i = 0; i < bufferSizeIn; i++ ) {
writeBuffer1[i] = writeBufferIn[i]; //Program crashes here in the first iteration itself
}
checkSum = (UINT8) ~( devAddress + command + nextOffset + dataBufcheckSumIn) + 1; dbg::info() << "Line5" << std::endl;
}
};
答案 0 :(得分:5)
你的问题在
memset( &writeBuffer1, 0, bufferSizeIn );
您没有填充缓冲区,但是您正在覆盖成员变量。使用
memset( writeBuffer1, 0, bufferSizeIn );