Array of pointers and dinamically generated.

This actually compiles on my computer:

#include <iostream>
using namespace std;


int** f; // dynamic -- use new and delete or malloc and free
int* g[5]; // static -- prefered if you know that it'll be five since memory allocation is evil(tm)

int var1 = 12;
int var2 = 41;
int var3 = 913;
int var4 = 153;
int var5 = 1491;

int main() {
    f = new int*[5]; // C++ way
    //f = (int**) malloc(5 * sizeof(int*)); // C way

    f[0] = &var1;
    f[1] = &var2;
    f[2] = &var3;
    f[3] = &var4;
    f[4] = &var5;

    for (int i=0; i<5; i++) {
        cout << *f[i] << endl;
        (*f[i])++;
    }

    cout << var1 << endl;
    cout << var2 << endl;
    cout << var3 << endl;
    cout << var4 << endl;
    cout << var5 << endl;

    delete[] f; // C++ way
    //free(f); // C way I think
}

For the arduino, you'll need to define another version of operator new (the arduino libs only define one) (this compiles but I'm not sure it works properly):

void * operator new[](size_t size) {
    return malloc(size);
}

void operator delete[](void * ptr) {
    free(ptr);
}