
...
In this noncompliant code example, two allocations are attempted within the same try
block, and if either fails, the catch
handler attempts to free resources that have been allocated. However, because the pointer variables have not been initialized to a known value, calling delete
a failure to allocate memory for i1
may result in passing ::operator delete()
a value that (in i2
) that was not previously returned by a call to ::operator new()
, resulting in undefined behavior.
...