You end up at exactly the same point you did with C, except now you have 100-500 MB of garbage to haul around with your application.
Cross platform dev and deployment is hard, Java and C# just push the work somewhere else while adding garbage that gets in the way.
If you want to make GUIs for iOS,Android,Windows,OSX, and Linux use HTML/CSS/JS.
If you want to process data on iOS,Android,Windows,OSX, and Linux use C/C++, using only the std C/C++ libs, or a portability library.
You mean someone else, which is the entire point of why you would use any platform/library/framework.
Oh? You have a cross platform path separator builtin? Wow that must be totally worth 200 MB of garbage.
I'm sure the client will be fine with fucking around with the CLR / JVM all day instead of just downloading a 200 KB executable. It's just what they need, now not only do they need to update your application but they have a dependency nightmare too.
To be fair I haven't tried to release an app for Windows/OSX from Xamarin but my understanding is that it requires the .NET or Mono frameworks which on most computers is a 100 to 200 MB install.
For Java you're for sure going to have to download the JRE. When you start the app it eats gobs of memory.
Maybe it's changed but even Xamarin itself requires Mono to be installed, this is the kind of shit I'm talking about, you should download the app, drag it to applications, done. Or on Windows click Next a whole bunch of times.
Even the monstrosity that is XCode is a one drag install.
There isn't even a Boost for C.
Honestly, I'd be surprised if you actually knew C with a statement like that.