将整数数组复制到另一个数组时代码崩溃(使用整数指针)

时间:2014-08-05 14:23:13

标签: c++ pointers memory

我发现很难找到下面的代码有什么问题。我试图将一个简单的整数指针复制到我的一个本地整数指针(或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;
  }
};

1 个答案:

答案 0 :(得分:5)

你的问题在

memset( &writeBuffer1, 0, bufferSizeIn ); 

您没有填充缓冲区,但是您正在覆盖成员变量。使用

memset( writeBuffer1, 0, bufferSizeIn );