1. Were it not for Scipio, his base in Spain would be fine.
2. Hannibal's plan was to get rid of Roman's allies, not to kill as many as possible. Because Roman is much more powerful than Carthaginians.
3. He has no equipment to attack a city protected by city walls. And his army is stronger only at Cavalry troops.
I am going to write about the Battle of Cannae in a couple of days. And we can continue our talk about this great man : One Man Against Rome.