PeterO,
Of course "white bearded" C programmers know when to use arrays and when to use pointers.

They can also tell when people are pontificating about "smart C programmers" without actually being one themselves.
As you are clearly referring to me there I have to say:
White bearded programmers should know better than to stoop to argumentum ad hominem.
I am saddened to find you resort to unnecessary insult to support your ill thought out argument. If you want to check my C coding skill, or lack of, please take a look at for example:
https://github.com/ZiCog/fftbench/blob/ ... fftbench.c
https://github.com/ZiCog/fibo_4784969/b ... B/fibo.cpp
https://github.com/ZiCog/fibo_4784969/b ... %2B/bint.h
I look forward to your review comments.
To listen to them you would think that no one has ever succeeded in writing anything other than trivial little programmes in C.
Good. If you start to think that you are on the right track at last. Because overwhelming evidence over decades suggests that no one has ever succeeded in writing any thing other than a trivial little program in C
correctly.
As evidence I present the Linux kernel:
https://github.com/torvalds/linux
As you know Linux is a gigantically huge and complex code base that has been worked on by thousands of programmers. I'm pretty sure the vast majority of those programmers are actually very smart and skillful in C. They also have a stringent review process in place.
Linux is also riddled with bugs and security issues which get uncovered everyday. There is a lot of discussion and work going on in the kernel community to try and address this.
It seems to me that a lot of programmers today use modern language features as a "crutch" to make up for their own lack of attention to details when writing code.
Perhaps true. On the other hand a lot of skillful programmers of the past and present have used old languages, we are talking C/C++ here, to create all the bugs and security issues we live with today. And they continue to do so. Even if they do pay a lot of attention to details.
With edit/compile/test cycles easily taking 15 minutes you quickly learn to plan out your code rather than "designing at the keyboard" which seems to be popular these days.
I have a lot of sympathy for that view.
Memory in C++ is a leaky abstraction .