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

pab*_*han 1 c++ memory pointers

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

Woj*_*wka 5

你的问题在于

memset( &writeBuffer1, 0, bufferSizeIn ); 
Run Code Online (Sandbox Code Playgroud)

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

memset( writeBuffer1, 0, bufferSizeIn ); 
Run Code Online (Sandbox Code Playgroud)