|
|
|
|
|
by uecker
985 days ago
|
|
Yes, pointer + plus length is something else. C has variably modified types (in CS usually known as dependent types), where the length is encoded into the type. A VLA has a dependent type: char buf[n] or a pointer to a VLA has: char (*buf)[n]. This is super powerful and theoretically sound concept although not yet really exploited in C. But the bound travels with the type and you can get bounds checking at run-time: char buf[n];
auto foo = &buf;
buf[n] = 1; // run-time bounds check possible Pascal, Ada, Fortran, D have VLAs and certainly more languages have VLAs. |
|
Between the fact that most modern languages don't have VLAs and that the languages you mention are most certainly not modern, your statement of: "Also note that most other languages except C++ also have VLAs." is not even close to correct.