次のコードがあるとします。
void Allocate(int *p)
{
p = new int;
*p++ = 2;
}
int main()
{
int i = 10;
Allocate(&i);
std::cout << i << std::endl;
}
私は次の意味について少し自信があります:
*p++ = 2;
出力は10
であり、なぜこれが事実であるかについての私の推論は、それ*p++
は一時的なものであるため、それへの割り当ては のスコープの最後で失われAllocate(int *p)
ます。
これは事実ですか?よろしくお願いします!