static versus auto initialization
    Bob Devine 
    devine at cookie.dec.com
       
    Thu Jan 19 04:15:00 AEST 1989
    
    
  
  Would someone explain to me why the discrepancy between the
uninitialized elements of static and auto arrays?  Someone in
our group asked me a question on this point and the best answer
that I could generate was, in essence, "Cuz D.R. did it for speed".
  The problem looks like this:
        static char abc_static [5] = { 'a', 'b', 'c' };
        main()
        {
            auto char abc_auto [5] = { 'a', 'b', 'c' };
            . . .
        }
  For `abc_static', elements [3] and [4] are guarenteed to be zeroed 
out.  However, for `abc_auto', the same elements are garbage.  
  You can probably see that he initially had the static version and
was relying upon the zeros, so when he moved the array inside a
function he got burned...
Bob Devine
    
    
More information about the Comp.lang.c
mailing list