If you want to change an argument in a function and have it reflected in the caller of the function, you need to pass the argument by reference. Otherwise the arguments are copied and you only change the copies.
In your start_app
function you want to change both _startTPtr
and _endTPtr
so you need to pass them as references to pointers to MyTime
:
void start_app(MyTime *&_startTPtr, MyTime *&_endTPtr, Clock *clock, char *ch) { ... }