array index

Is there any way to start an array with the first cell being [1] instead of

Yes: point the pointer to the one unit before the start of the array. so new_array will be mapped to old_array[i-1].