Defining array elements all at once

I want to use an array of integers to define positions on a touch screen. As different images appear on the screen, I need to alter the array to reflect different touch positions. Now when I first define an array, I can use

int touchPos[10] = {1, 2, 3, ..., 10}

which is a nice succinct way to set the elements.

But then anywhere else in the program, I can't do this again, or the compiler accuses me of redeclaring a variable.

The only alternative I know of is to redefine the elements of the array one by one. So my question is, is there a way of quickly redefining a whole array like this with one line, or, failing that, can I "undefine" this array somehow, so that the initial declaration statement can be used more than once.

I don't know for sure but maybe the memcpy function can do what you want.

memcpy reference

But at 16,000,000 instructions per second, the Arduino can make it look like it happened instantly, even if it actually only processes one at a time.

// probably want to use PROGMEM here

int defaultTouchPos[10] = {1,2,3,4,5,6,7,8,10};
int touchPos[10];

void resetTouch() {
  memcpy(touchPos, defaultTouchPos, sizeof(touchPos));
}

void setup() {
  // initialise touch pos
  resetTouch();
}

See: avr-libc: <string.h>: Strings

I would use a pointer to an array. You could then point the pointer at the array that matches the current screen.