C++ Logo

STD-DISCUSSION

Advanced search

Subject: Re: dynamic size of a fixed array - compiles well on gcc, why?
From: Bernhard Manfred Gruber (bernhardmgruber_at_[hidden])
Date: 2020-06-15 02:23:36


Hi Hollowone PL,

what you discovered is actually a feature. It's called VLAs (Variable
Length Arrays).

Strictly speaking, VLAs are not a C++ feature but were introduced in the
C99 standard and then made optional in C11.
Your compiler is supporting them, because it supports C as well to C++.

Cheers,
Bernhard

On Mon, 15 Jun 2020 at 09:12, Hollowone PL via Std-Discussion <
std-discussion_at_[hidden]> wrote:

>
> Hello everybody,
>
> I'm writing as I'm curious about one accidental discovery, due to bug that
> compiles well and works well on gcc.
>
> I declare fixed size array like I used to for years:
>
> int my_array[] = { 0, 1, 2, 3, 4};
>
> then I found code that accidentally allocates size of such array with a
> variable that is defined during runtime
>
> int some_size = value_retrieved_from_somewhere_else;
> int my_array[some_size];
> my_array[3] = 123;
>
> and this code compiles and works well under gcc's c++ even though
> some_size is not constexpr.
>
> Obvious bug in the compiler or some feature I'm not aware of?
>
> -
> /h1
> --
> Std-Discussion mailing list
> Std-Discussion_at_[hidden]
> https://lists.isocpp.org/mailman/listinfo.cgi/std-discussion
>



STD-DISCUSSION list run by herb.sutter at gmail.com

Older Archives on Google Groups