Any thoughts on why it does not work this way? My best guess is that it has to do with order of operations, but I tried adding some parenthesis in different places with no luck.
This line is undefined anyways since you are accessing modifying Index multiple times in between a sequence point. The order in which function arguments are evaluated is undefined.