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)
你的问题在于
memset( &writeBuffer1, 0, bufferSizeIn );
Run Code Online (Sandbox Code Playgroud)
你没有填充缓冲区,但是你正在覆盖成员变量.使用
memset( writeBuffer1, 0, bufferSizeIn );
Run Code Online (Sandbox Code Playgroud)