An Array of Time Zones

Did you try this method of creating the array, as an array of pointers to time zones?:-

#include <Timezone.h>    //https://github.com/JChristensen/Timezone

//Australia Eastern Time Zone (Sydney, Melbourne)
TimeChangeRule aEDT = {"AEDT", First, Sun, Oct, 2, 660};    //UTC + 11 hours
TimeChangeRule aEST = {"AEST", First, Sun, Apr, 3, 600};    //UTC + 10 hours
Timezone ausQLD(aEST, aEST);
Timezone ausNSW(aEDT, aEST);

//Australia Central Time Zone (Darwin)
TimeChangeRule aCDT = {"ACDT", First, Sun, Oct, 2, 630};    //UTC + 10.5 hours
TimeChangeRule aCST = {"ACST", First, Sun, Apr, 3, 570};    //UTC +  9.5 hours
Timezone ausNT(aCST, aCST);
Timezone ausSA(aCDT, aCST);

//Australia Western Time Zone (Perth)
TimeChangeRule aWST = {"AWST", First, Sun, Apr, 3, 480};    //UTC + 8 hours
Timezone ausWA(aWST, aWST);

#define NUMBER_OF_TIME_ZONES 5
Timezone* timeZones_arr[NUMBER_OF_TIME_ZONES] =
{
    &ausQLD,
    &ausNSW,
    &ausNT,
    &ausSA,
    &ausWA
};