e_level1[0] = &Enemies(sdlLib, 500, 2, 3, 128, -250, 32, 32, 0, 1);
не делает то, что вы думаете, что делает. Если это вызов конструктора, он создает временный объект и его адрес сохраняется в e_level1 [0]. Когда e_level1 [1] инициализируется, деструктор e_level1 [0], вероятно, уже вызывается.
Вы, вероятно, хотите сделать
Enemies* e_level1[3] =
{
new Enemies(sdlLib, 500, 2, 3, 128, -250, 32, 32, 0, 1) ,
new Enemies(sdlLib, 500, 2, 3, 128, -325, 32, 32, 3, 1) ,
new Enemies(sdlLib, 500, 2, 3, 128, -550, 32, 32, 1, 1)
};