This is what I found (and the finest solution):
1st solution:
To restart a race from beginning, we can allocate buffer, which buffer size may as large as race savegame file. When a race starting, we copy all backups data into new allocate buffer. The disadvantage is, may causing memory leak when we exiting a race by pressing Esc key (not when race was over).
2nd solution:
By simulating save/load game. a temporary savegame file needed and will created (and overwrite the old one) as soon as a race started. This is the safest way to ensure game runs smoothly. The disadvantage is, you need to wait that loading progress thingy.
In reality, doesn't matter who's
right but most important is who's
left.