我的C ++代码有一种奇怪的行为。在这里。
OI_Id * Reqlist = 0;
int * Idlist = 0;
int Reqsize = listcount; // we calculate listcount somehow earlier.
Idlist = new int [Reqsize];
if (Idlist == 0)
{
return;
}
printf ("Idlist = %0x",Idlist);
Reqlist = new OI_Id [Reqsize]; // OI_Id is a 3rd party lib simple struct.
if (Reqlist == 0)
{
return;
}
printf ("Reqlist = %0x",Reqlist);
所以问题是在两种情况下它都打印相同的值 - new运算符返回相同的指针。但!如果我们将第二个已分配数组的长度更改为另一个值(例如Reqsize+ 1
),则一切正常。
有没有人遇到过类似的行为?我不知道问题的原因是什么。