That code isn't going to work for a variety of reasons. Let's say the user enters 5 for the value i. iSUPERMAN is only an array of 1 integer pointer. Therefore the second iteration and beyond will result in undefined behavior. Secondly, since the loop might create multiple integer pointers and iSuperman is an array the delete statement makes no sense. iSUPERMAN itself is an array of integer pointers and should not be deleted at all. It is a stack array. It is the contents of each element that you would want to delete.
1 2
// delete the element but there is only one element in the first place.
delete [] iSUPERMAN[0];