If you enable the pragma gcc_extensions, the compiler allows the initialization of local arrays and structs with non-constant values.
void myFunc( int i, double x )
{
int arr[2] = { i, i + 1 };
struct myStruct = { i, x };
}