Hi Michael, I added a link with an article about what I see as deficiencies. This is a bit form the top of my head. I might have to expand on this later: https://erik-engheim.medium.com/what-is-wrong-with-c-fca25affb127
Basically I think C type safety is too weak. It doesn't need to be Rust style type safety, but it could be tightened more without reducing usability and suitability for low level programming.
Also as I elaborate on, the manual memory management of C, simply isn't well thought out. I think after decades of using C, the industry has developed a number of patterns and best practices. New languages such as Zig allows us to formalize this without compicating the language much.
I didn't have time to look this up, but I have seen embedded developers remark on how much better Zig is at embedded development and cross compilation than C. C as far as I understand is not generally regarded as being all that good about his. I advice you to Google this topic and look at what people say about Zig on this issue.
Zig is the main reason I began writing these articles on rethinking and replacing C. It is not ready for prime time, but I think it shows a good example of what a replacement for C could look like. It checks a lot of the boxes which makes people still stick with C. Stuff like low memory fotprint and manual memor management which is often crucial in an embedded setting.