Is there a way, at runtime, for me to detect any instances of accessing arrays with negative indexes?
Replace your global array by std::vector. Replace use of the array[index] syntax by
vector.at(index)
This does the same thing except thatexactly what you ask for: it adds runtime array bound checks.