Operation on … may be undefined?

Line 77 is the line

trackTail[nodeNumber-1] = ++trackTail[nodeNumber-1] % 10;

You are changing trackTail[nodeNumber-1] twice between sequence points: once through ++, and once through assignment.

This is undefined behaviour.

The remedy is to rephrase the statement, for example like so:

trackTail[nodeNumber-1] = (trackTail[nodeNumber-1] + 1) % 10;

or like so:

trackTail[nodeNumber-1]++;
trackTail[nodeNumber-1] %= 10;

Leave a Comment