Why Do We Say C is Unsafe?
When the C programming language was developed circa 1970, computers had vastly smaller resources. The PDP-11, for example, came with 4KB of memory. Not gigabytes or megabytes – kilobytes. In such an environment, assembler was typically used, and C – sometimes known as “portable assembler” – is a very low-level language. With C, every bit counts, and one of its strengths is producing tight code and small executables, which is why it’s so often used for embedded systems. (Amusingly, what’s considered a “tiny embedded system” in 2026 would be a massive room-sized computer in 1970).
C is a wonderful language, but it comes with some limitations. These reflect the constraints that C was created within, but also the era. Many modern concepts simply hadn’t been invented yet.
Here are some limitations with C.