You'll need to make both the index and each array volatile. This is pretty much a textbook case for when you would need to use volatile. The arrays must be volatile because func2 could modify them at any moment.
You can read DataAccess_G into a temp variable in func2 as long as no other interrupt could change it.