28800 x 28800 may be way too big for a texture. When using textures, SDL is basically a shim over OpenGL/DirectX which talks directly with your graphics card. Texture size limits will depend on your hardware - better graphics cards can use larger textures. For example, OpenGL provides an integer variable
GL_MAX_TEXTURE_SIZE which represents the maximum width and height supported by the current graphics hardware. According to this crowd-sourced report by Wildfire Games, about 44% of its users' machines support the highest value available, 16384. Those figures may change as new hardware is released.
Keep in mind that if this 28800 x 28800 texture were stored uncompressed, it would be a little over 3 GB, which as of writing requires a mid-level discrete graphics card to even fit in memory. It may be tempting to, for example, use a single mega texture for the entire map, but most games don't do this because this takes up so much memory, which is why techniques like tiling are so common. Whatever your reason for using that giant texture, there's probably a more conventional, memory-efficient alternative.
Finally, for C libraries like SDL2, the convention is to check all return values of functions, since C doesn't have exceptions. Typically, functions return an error code or, in SDL2's case, simply an error indicator like -1, after which you can find out the exact error with a function like
SDL_GetError(). Failing to do this means you may experience errors that are difficult to diagnose, as this question shows.