Stacks on arrays on arrays
C(++) does not natively let you "add" arrays like that.  Your code looks like maybe Python.

There are several ways to do what you want to do.  You could make your code which writes the pattern to the array accept an offset - so rather than always starting at position 0, you could tell it where to start.

You could write a function to "concatenate" arrays, or use one someone else has written, if you can find one.  It's pretty trivial to do.

However the method I'd use in your situation, probably just a matter of preference really, is this:

Let's say (for example) you have 6 strips of 10 LEDs each.  You need 60 elements to represent them all.  (I'm assuming each element is an int; I can't remember if it is.)  Create one big array for the whole lot:

int allElements[60];


You might think of the variable allElements as an array, but it is really an int* (a pointer to an int), with that memory address happening to have 59 other memory addresses after it reserved.  C knows that when you say allElements[7] it needs to looks 7 ints on from the address pointed to by allElements.  What this means is that you can create new variables which point to parts of that array, and use those variables as if they were their own arrays.  For example:

int *firstStrip = &amp;(allElements[0]);
int *secondStrip = &amp;(allElements[10]);
int *thirdStrip = &amp;(allElements[20]);
/* ... and so on */


(There is a more idiomatic way to write this which is exactly equivalent, but I think the above is more explicit if you're new to it.)

As an extra improvement you might now notice that you have a load of similarly-named variables with similar functions -- and you might want to put them into an array.

int* strips[] = { &amp;(allElements[0]), &amp;(allElements[1]), &amp;(allElements[2]) /* and so on */};


Now you can use strips[3] to give you the fourth strip.

There are several other ways too, but I think this will get you going.