I need to create a large two dimensional array of objects. I've read some related questions on this site and others regarding multi\_array, matrix, vector, etc, but haven't been able to put it together. If you recommend using one of those, please go ahead and translate the code below.

Some considerations:

* The array is somewhat large (1300 x 1372).
* I might be working with more than one of these at a time.
* I'll have to pass it to a function at some point.
* Speed is a large factor.

The two approaches that I thought of were: 

```
Pixel pixelArray[1300][1372];
for(int i=0; i<1300; i++) {
    for(int j=0; j<1372; j++) {
        pixelArray[i][j].setOn(true);
        ...
    }
}

```

and

```
Pixel* pixelArray[1300][1372];
for(int i=0; i<1300; i++) {
    for(int j=0; j<1372; j++) {
        pixelArray[i][j] = new Pixel();
        pixelArray[i][j]->setOn(true);
        ...
    }
}

```

What's the right approach/syntax here?

**Edit:**

Several answers have assumed `Pixel` is small - I left out details about `Pixel` for convenience, but it's not small/trivial. It has ~20 data members and ~16 member functions.