大小相同的内存分配问题

时间:2014-10-15 06:00:26

标签: c++ arrays allocation

我的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),则一切正常。

有没有人遇到过类似的行为?我不知道问题的原因是什么。

0 个答案:

没有答案