Isn't is just a memory problem ? The "RAM" of iPad and iPhone is really limited, if you use too much of it, the system will send level 1 warning and level 2 warning. If you still use too much memory after that, it will kill your application.
You don't encounter the problem on the simulator because your computer have much more memory.
If you want to simulate such memory warning to see how your code behave in such a situation. Use this code :
// Do as if there has been a memory warning in the simulator
+ (void)simulateMemoryWarningInSimulator
{
#if TARGET_IPHONE_SIMULATOR
#ifdef DEBUG
CFNotificationCenterPostNotification(CFNotificationCenterGetDarwinNotifyCenter(), (CFStringRef)@"UISimulatedMemoryWarningNotification", NULL, NULL, true);
#endif
#endif
}