Inspired by this question about whether the compiler can optimize away a call to a function without side effects. Suppose I have the following code:
delete[]
new and delete in usual cases will result in calls to the operating systems heap manager, and this can very well have some side effects. If your program only has a single thread the code you show should not have side effects but by my observations on windows (mostly on 32 Bit platforms) show that at least large allocations and following deallocations often lead to 'heap contention' even if all of the memory is been released. See also this related post on MSDN.
More complex problems may occur if multiple threads are running. Although your code releases the memory in the meantime a different thread may have allocated (or freed) memory, and your allocation might lead to further heap fragmentation. This all is rather theoretical but it may sometimes arise.
if your call to new fails, depending on the compiler version you use probably a exception bad_alloc will be thrown and that will of course have side effects.