I've amended the source to pass the strings pointer (path.ptr) after adding a null but the problem still persists.
I lost for what it could be and I'm certain this is where the problem is, because if I remove the method call, the program runs fine. I've noticed that calling SDL_LoadBMP and passing a string literal seems to work, instead of a string variable. I might load all the images independently into an array and have each object reference that array, instead of every object loading its own.