char strOut[20] = "";
...
char *outPtr = (char *)&strOut;

Nur mal als Gedankenstütze. strOut ist bereits ein Pointer auf strOut[0]. outPtr ist somit eigentlich ein Pointer auf den Pointer strOut.

Und mit dieser Information solltest du dir mal
*++outPtr = '\n';
vkOut = atoi(strOut);
ansehen.

PS: mein Tipp:
char *outPtr = strOut; oder char *outPtr = (char *)&strOut[0];

sast