You are using Visual Studio community edition? In that case you pretty much have one of the best IDEs already so that's a great start. To run with debugging just hit F5. To put down a breakpoint (so it will stop and let you look at what is going on while running) click a line and press F9. You can then press F10 to move along one step at a time.
c++ is a hard language to learn initially as there are so many places where you can go wrong, hopefully it will help if I clarify the issue you currently have.
class Sprite
{
public:
Sprite();
Sprite(SDL_Renderer* renderer, InputCore* inputcore, std::string FilePath, int x, int y, int w, int h);
~Sprite();
InputCore* inputcore;
};
That is a trimmed down version of your sprite class. The default constructor is the one that takes no parameters.
In EngineCore you create a player:
player = new Sprite;
Because you have not provided any values to the constructor it decides to use the default constructor but when you look at the code for that it is:
Sprite::Sprite()
{
}
It doesn't really do anything (your other constructor does though). So you have a bunch of variables one being inputCore that are not initialised, when something isn't initialised it could quite literally be anything. In a debug build it will usually get initialised to 0/null but in a release build it will be totally undefined. Later on you then attempt to use that variable but since it was never created and is completely random it causes your crash.
You need to do at least 2 things, first you need to make that constructor initialise sensible values:
Sprite::Sprite()
{
image = nullptr;
renderer = nullptr;
inputcore = nullptr;
posX = 0;
posY = 0;
}
And secondly you need to get the part where you create the object to use the correct constructor, you can do that by passing it values:
player = new Sprite(renderer, NULL, "C:\\Users\\Devlin\\Documents\\Visual Studio 2015\\Projects\\Project Flesh\\Dependencies\\bob.png", 300, 250, 50, 100);
Be careful though because you have player in two places, delete the one you don't need; probably the one from graphics_core.