It is using pointer to pointer for second parameter because it allows the caller to know exact position in string where parsing has stopped - and may be used to continue parsing the stream using some other method. Also, it permits to completely ignore it by supplying NULL
.
Note that your proposed schema does not possess these useful properties.