[Ayuda de programación] ¿En C, el vector se inserta en una referencia en lugar de un valor?
El vector inserta valores. A lo largo del ciclo, el valor de strTmp no ha cambiado. Siempre apunta a la misma cadena, por lo que los punteros de caracteres insertados en el vector apuntan a la misma cadena, por lo que cambian juntos.
Una modificación:
char chTmp[256];
Cambiar a
char *chTmp = new char[256] ;
De esta manera, solicite un nuevo espacio de memoria cada vez, coloque la cadena en él y luego presione el puntero en el vector.