Re: Don't Plan 9 C compiler initialize the rest o f member of a struct?
"Jeremy O'Brien" <[email protected]>
| Newsgroups | gmane.os.plan9.general |
|---|---|
| Message-ID | <[email protected]> |
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.