Changing data in 2d arrays?

Im working on a school project to control and 8x8 LED matrix. I've got the matrix all wired and tested but im having trouble with 2 dimensional arrays.

I've gotten the array to initialize and I can read values from it. But I am going to want to change those values based on user input later.

How do I change the values after I initialize my 2d array?

the offending line of code is...

frames[0][0]][0] = 0;

The rest of my code is below

#include <Sprite.h>
#include <Matrix.h>

const int size = 8; //8x8 LED array
const int numFrames = 2;

//create a new matrix Matrix(dataIn, load, clock)
Matrix myMatrix = Matrix(4, 2, 3);

//Creating a number of frames of 64 LEDS
boolean frames[numFrames][size][size] = 
{
 {
   {1, 0, 0, 0, 0, 0, 0, 0},
   {0, 0, 0, 0, 0, 0, 0, 0},
   {0, 0, 0, 0, 0, 0, 0, 0},
   {0, 0, 0, 0, 0, 0, 0, 0},
   {0, 0, 0, 0, 0, 0, 0, 0},
   {0, 0, 0, 0, 0, 0, 0, 0},
   {0, 0, 0, 0, 0, 0, 0, 0},
   {0, 0, 0, 0, 0, 0, 0, 0}
 },
 {
   {0, 0, 0, 0, 0, 0, 0, 0},
   {0, 0, 0, 0, 0, 0, 0, 0},
   {0, 0, 0, 0, 0, 0, 0, 0},
   {0, 0, 0, 0, 0, 0, 0, 0},
   {0, 0, 0, 0, 0, 0, 0, 0},
   {0, 0, 0, 0, 0, 0, 0, 0},
   {0, 0, 0, 0, 0, 0, 0, 0},
   {0, 0, 0, 0, 0, 0, 0, 0}
 }
};

void setup() {
     myMatrix.clear(); //clear whatever is on the matrix
}

void loop() {
  //Read the 1st "pixel" of the first frame
  int data = frames[0][0][0];
  
  //if that pixel is 1 (on) turn it on
  if (data == 1){
    myMatrix.write(0,0, HIGH);
  }
  
  //stop for 3 seconds
  delay(3000);
  
  //turn that pixel off
  frames[0][0]][0] = 0;

}

Without the offending line at the bottom this works as expected when I upload it. It lights up the top-left LED of the Matrix.

If anyone could help me figure this out I would greatly appreciate it.

frames[0][0]][0] = 0;
         ^
Too many closing braces. Count 'em

That's a 3-d array reference.

byte frames[numFrames][size] =
 {
   B10000000,
   B00000000,
   B00000000,
   B00000000,
   B00000000,
   B00000000,
   B00000000,
   B00000000,
 },
 {
   B00000000,
   B00000000,
   B00000000,
   B00000000,
   B00000000,
   B00000000,
   B00000000,
   B00000000,
 };

//later
bool isOn = bitRead(frames[frame][row],col); //retrieve a state
bitWrite(frames[frame][row],col, isOn); //set a state

I hate it when things are just simple syntax errors...

Totally making a suggestion to Arduino to add character and line counts to the software they would make development a lot easier, and less error prone.

Thanks a lot.