Maybe this is what you're after. The code uses the pointers p1 and p2 to point alternatively at array1/array2 or array2/array1 respectively.
#include <stdio.h>
static void dump_array(const char *tag, int num, double *data)
{
printf("%8s", tag);
for (int i = 0; i < num; i++)
printf(" %4.0f", data[i]);
putchar('\n');
}
int main(void)
{
int dim = 10;
double array1[dim];
double array2[dim];
for (int i = 0; i < dim; i++)
array1[i] = i;
double *p1 = array1;
double *p2 = array2;
dump_array("p1:", dim, p1);
for (int i = 0; i < 5; i++)
{
for (int j = 0; j < dim; j++)
p2[j] = 2 * (p1[j] + 2) + j;
dump_array("p2:", dim, p2);
dump_array("array1:", dim, array1);
dump_array("array2:", dim, array2);
double *tp = p1;
p1 = p2;
p2 = tp;
putchar('\n');
}
}
Sample output:
p1: 0 1 2 3 4 5 6 7 8 9
p2: 4 7 10 13 16 19 22 25 28 31
array1: 0 1 2 3 4 5 6 7 8 9
array2: 4 7 10 13 16 19 22 25 28 31
p2: 12 19 26 33 40 47 54 61 68 75
array1: 12 19 26 33 40 47 54 61 68 75
array2: 4 7 10 13 16 19 22 25 28 31
p2: 28 43 58 73 88 103 118 133 148 163
array1: 12 19 26 33 40 47 54 61 68 75
array2: 28 43 58 73 88 103 118 133 148 163
p2: 60 91 122 153 184 215 246 277 308 339
array1: 60 91 122 153 184 215 246 277 308 339
array2: 28 43 58 73 88 103 118 133 148 163
p2: 124 187 250 313 376 439 502 565 628 691
array1: 60 91 122 153 184 215 246 277 308 339
array2: 124 187 250 313 376 439 502 565 628 691
for (int i=0; i<dim; i++) array[i] = temparray[i];memcpy.