1) Check return values. Both load_bitmap and create_bitmap can return 0. The moment you try to dereference a null-pointer, you're doomed.
2) struct sprite a_sprite;: Since you're using C++, you won't need the struct here - but you can, of course.
3) a_sprite.id=id, id++;: Please don't do that. This is filled with side-effects and thus, error-prone. Just to check, please explain