it's uncommon and not at all idiomatic in C to start an array at anything but 0
I can agree with this, as long as you come from a knowledgeable perspective we will have no problems. Like i said i prefer to save index 0 for defining the array data or just to have a tmp value. Just don't be an ass. lol

it's good defensive programming technique to return a testable error value
I can agree that it would be a good habit to include error checks and all possibilities. Most of the code i post on here is just a quick n dirty solution to the problem without thinking about all sorts of input and errors. I usually just post a quick solution for the developer to expand on.