At least C++ has a stack to re-invent. With C you're missing Vector and Map before you even start.
Re:My Most Important C++ Aha Moments (2006)
by humanrebar on Sunday June 26, 2016 @06:33AM
(#11980187)
> every library tends to reinvent the whole stack
This is a problem with vocabulary types. C tends to do a good job of providing them. C++ tends not to, though there has been some progress in the standard lately in defining classes like unique_ptr and string_view.
C tends to fall down by providing raw memory (an int and a char) to represent fairly subtle relationships (the int represents the size of the string pointed to by the char... what happens when the int is negative?). So C libraries don't 'reinvent the whole stack', but this sort of bookkeeping logic tends to cause bugs (at least security bugs).
RAII and scope based construction/destruction is actually quite nice.