|
Authored by: Anonymous on Tuesday, February 12 2013 @ 01:25 PM EST |
I am not worried about too many programmers, I am worried about bad code. I
have had too many arguments like this with young coders:
someone write code like this:
float x[100];
float y[100];
int i;
for (i=0; i<=100; i++) x[i]=0.0;
I say: that's wrong, you are running off the end of the array.
They say: there's nothing wrong, it compiles and works fine for me.
(It did. His compiler allocated y after x in memory. Mine allocated the other
way around and so it stomped on something else.)
I complain to manager. Code still won't get fixed because "it works
fine." We have broken code, clearly wrong to anyone who can actually read
and follow code and understand what it is doing, but I can't get the but fixed
because the author and the manager are both "experimental" coders. To
them, if it happens to work for their situation, it must be ok.
Similar thing in the linux kernel (old aironet driver):
delete p;
*p = 0;
Stomps on memory that just got freed. Probably typo, extraneous asterisk.
Author won't fix it because "it works fine."
When you do not understand how your own code works, bad things are waiting for
us all. Experimental coding does not work. You need to UNDERSTAND what you are
doing.[ Reply to This | Parent | # ]
|
|
|
|
|