[comp.lang.c] Bounds checking

karl@haddock.UUCP (12/03/86)

In article <3950002@nucsrl.UUCP> gore@nucsrl.UUCP (Jacob Gore) writes:
>[Putting each object in its own segment won't be accepted by hardware
>vendors.] Besides, there is a neat and simple software solution.  It is used
>in C++, which, hopefully, will replace C eventually:  You can define a class
>of arrays that always check that the index is within the boundaries.  Arrays
>in this class are used in exactly the same way as normal arrays are used, so
>it does not change the appearance of the program.

I don't think so.  I know I can declare a class intarray, which includes the
bounds as well as the address, and I can dereference an instance of it with
"*a" or "a[i]", and in the newer versions of C++ I can use it in a context
that expects "int *" -- but if I have to declare it "intarray a" instead of
"int *a" (or "intarray a(SIZ)" instead of "int a[SIZ]"), then it does change
the appearance of the program.  I've heard there is a preprocessor that will
insert run-time bounds checking into C code, but it's not C++.

Karl W. Z. Heuer (ima!haddock!karl or karl@haddock.isc.com), The Walking Lint
(I've added the c++ newsgroup; be careful if you followup.)