Strings and arrays begin with one pointer-sized word that indicates the size of the string&#x2F;array, thus making all the various mutant versions of functions that work with them unnecessary. And eliminate the requirement to specify length separately when passing as a function argument. And make bounds-checking trivial. And almost entirely eliminate buffer overflows.<p>This would naturally want malloc to know the type and count, eg: char[] x = malloc(char[], 100). That means no opportunity to screw it up (let the compiler turn that into the sizeof math to pass to the actual allocator).<p>If bounds checking is a performance bottleneck you could turn it off with compiler flags; that&#x27;s not a valid argument against it.<p>But hey... all the various buffer overflows, RCEs, and various exploits are totally worth the minor performance gains &#x2F;sarcasm.