??? 01/18/05 19:33 Read: times |
#85218 - bounds checks, error testing, comments Responding to: ???'s previous message |
Andy Neil said:
Jan Waclawek said:
PS. To feed the flames: this is also a very example of the C's weakness compared to Pascal - there is no check for overflow of either of the pointers. That has nothing to do with the language - that's the programmer's fault. The loop could easily have included bounds-checks on the pointers. And if 'C' did bounds-check every single pointer reference, think what that'd do for the code's size! Then we'd really get people saying, justifiably, "'C' generates bloatware - I have to do it in assembler" - but, of course, they'd do it in assembler without the bounds checking! Of course, if Pascal automagically does the bounds-checking, then isn't the resulting code larger? BTW, I'm not arguing. And you're right -- some sort of sanity check on parameters is always good. Another thing that is important, but many programmers blow off, is the simple act of testing a function call's return value for correctness or for errors. For example, say I wanted a thousand-character string: char *foo; foo = (char *) malloc(1000); would do the trick. Of course, what did I leave out? Obvious: I never tested to see if foo was returned NULL. And hopefully, I freed foo somewhere else in the program. -a |