Nope KErn-Exec 3 doesn't necessarily mean NULL pointer. It means memory vilation error, and in this case it is cased by invalid pointer (that has other value than NULL).
Just remove the following delete line
iList->Append(tempVariable); // at index 0
simply remember that the array is holding the pointer to a object and the object is somewhere elde. The tempVariable is also a pointer having same value as the zero index pointer in iList. So if you delete the tempVariable, you delete the object and leave both of the pointers to point into that area still. So then when you try using one of these pointers, it is pointing to address that used to have the object. But since it was deleted, the pointer is really not pointing to anything.