The term "memory management" almost invariably means allocating and freeing dynamic memory. So for C, that means calls to "malloc" and "free", and for C++ it means "new", "delete", or (better) using smart pointers and containers that handle the memory management automatically. For other languages, memory management is usually handled by higher level types (lists, dictionaries, and other containers) with garbage collection.
As a proportion of security flaws in modern software, buffer overflows are a minor concern. (That does not mean they are of /no/ concern, of course - I see no excuse for buffer overflows of any sort.)
And as I have explained, C does /not/ mix up memory sections, nor would greater separation of memory sections give the slightest benefit against buffer overflow flaws, and modern systems usually already have the kind of memory access protection that you seem to think will stop buffer overflow problems.
And I would like to see pigs flying.
No, it does not "anger" me. Your inability to comprehend reality frustrates me. Your continual misinterpretation and misrepresentation of what I write irritates me.
So in yet another attempt to set you straight, let me be clear here - I want a reduction in the flaws in software and other systems, and an improvement in their quality. That applies across the board - security flaws are just bugs that get exploited. Work on reducing the rate of errors (in design and implementation), and security improves.
But I do not want to waste time and resources on chasing the impossible. Aim to avoid or fix all the bugs you can reasonably do within time and resource budget. If you are not satisfied until you are guaranteed to have zero bugs in a system of reasonable complexity, you will never be satisfied - and that helps no one.
Yes, I have. You just haven't been interested in reading what I wrote. Maybe you'd like a chance to re-read my posts.
Testing does not prove that code is correct - it can only prove that code is incorrect. Good testing improves confidence in a system, and is an absolutely essential part of the development process. Many types of flaws will almost never be revealed during testing, however. That includes specification issues, race conditions, security against attacks, long-term problems, etc.
You can be confident that you have a solid development process that minimises the risk of flaws, and you can be confident that you have no known bugs when you release your system, and you can be confident that you have processes in place to find and fix flaws that are discovered later. You can't get better than that.
You have /almost/ understood. But as we have seen so often in your posts, you have missed a key point. You see the world in black-and-white - you want "perfect". You can't have that - it does not even make sense as a concept for real systems.
Within a very limited context, it is possible to make a design that is bug-free. And that is fine - that should be your target when you are at that stage. A VHDL/Verlilog module, or a C file, can be written without bugs. At that level, you have complete control of the system and it lives in an ideal world - there are no cosmic rays causing hiccups in the system, no glitches in the power, no unexpected inputs, no stray pointers in other code that trashes your data.
As the system complexity increases, however, it becomes harder and harder to keep such guarantees of perfection. It must then be balanced against the costs of the system - no one wants a perfect product if the development costs are sky-high and the release time is next to eternity. (At the highest levels of software quality, for the most safety critical systems, productivity for a programmer might be half a dozen lines of code in per week. Are you willing to pay that cost?)
What /I/ would like to see is less ambitious, and more realistic - I would like to see more effort put into quality, and I would like to see people being willing to accept higher prices and longer development times to achieve that. I want progress - I want things to be better. I don't want to waste time and money pointlessly chasing a mythical "perfection". Can you understand that?
Some universities do that. My university degree emphasised provably correct software development. But I understand that while such code may be bug-free, it is only part of a more complete system.