int * data = (int*)malloc(sizeof(int) * w * h);
Int ** a2d = (int **)malloc(sizeof(int*)* h);

for(i =0; i != h; ++I)
a2d[i] = data + w;

a2d[x][y] = 100;

free(a2d);
free(data);