On Mon, Apr 1, 2019, at 11:33, Kyohei Kadota wrote: > Hi, 9fans. I use 9legacy. > > About below program, I expected that flags field will initialize to > zero but the value of flags was a garbage, ex, "f8f7". > Is this expected? > > ``` > #include <stdio.h> > > struct option { > int n; > char *s; > int flags; > }; > > int > main(void) > { > struct option opt = {1, "test"}; > printf("%d %s %x\n", opt.n, opt.s, opt.flags); > return 0; > } > ``` > >
According to C99: "If an object that has automatic storage duration is not initialized explicitly, its value is indeterminate." Stack variable == automatic storage duration. This appears to be correct behavior to me.