Alright you probably already figured this out by now, but this is a simple problem... You are overloading the stack therefore crashing your app (oh this would have been a great post on stackoverflow! lol) You should dynamically allocate memory for those arrays of ints (32 bits each) rather than making them local stack variables. Also remember to free them once your done...
Now I'm not sure what your memcpy code is all about, or whether it works or what it's supposed to do. But assuming it works for you and does what you want, this last line 'memcpy(arrB, arrA, 349152);' would only possibly make sense if the memory was together, so I allocated your two arrays of 600,000 bytes total as two one contiguous block of memory, and made a pointer to the second half called 'arrB'. Now since arrA and arrB are actual pointers to the arrays of ints, &arrA and &arrB would now be the address of the pointer rather then the address of the array itself. (I have updated the first memcpy line to 'memcpy(arrA, arrB, 15000);' instead of 'memcpy(&arrA, &arrB, 15000);' to reflect this change. ['memcpy(&arrA, &arrB, 15000);' would also be acceptable :)])
int *arrA = new int;
//int *arrA = (int*)malloc(600000);
int *arrB = &arrA;
//could also initialize it to zero or something else if desired
memset(arrA, 0, 600000);
memcpy(arrA, arrB, 15000);
memcpy(arrB, arrA, 25000);
memcpy(arrA+242152, arrB+242152, 15000);
memcpy(arrA, arrB, 235152);
memcpy(arrB, arrA, 349152);
//whatever other code you have here
//dont forget to free your memory after you're done!
delete arrA; //if you used 'new'
//free(arrA); //if you used 'malloc' and type cast