On Tue, May 14, 2013 at 5:02 AM, <goodmenzy@gmail.com> wrote:
On 2013-05-14 04:50:11, Daniel Micay wrote:
Date: Tue, 14 May 2013 04:50:11 -0400 From: Daniel Micay <danielmicay@gmail.com> To: General Discussion about Arch Linux <arch-general@archlinux.org> Subject: Re: [arch-general] gcc: loop do not terminate
On Tue, May 14, 2013 at 3:49 AM, <goodmenzy@gmail.com> wrote:
If this function initArr() is moved to the same cpp file of main(), all optimization level get the same result.
That's the great thing about undefined behaviour, you never know what you'll get. It's really not something anyone should be relying on though.... there's a well defined, valid way of declaring a flexible-length struct member.
Could you please tell me the "well defined, valid way"?
The two ways given in my earlier message, either the standard C99 `foo_t array[];` for the last member or the GNU-ism (non-standard) `foo_t array[0]`. Using `array[1]` and indexing past the end isn't valid C.