Muchas gracias, me ha sido de gran ayuda. Lo he modificado un poco quitandole lo de reservar memoria y tal.
Envio siempre una cadena de caracteres de tamaño 20. Dejo el codigo que he dejado al final.
En C++ Builder
void _dineropunto(char* cadena){
int i;
int j;
int k;
int tam = strlen ( cadena );
int a;
if ( tam % 3 == 0 )
a = tam + tam / 3 - 1;
else
a = tam + tam / 3;
char cadena1[20]="";
for ( i = tam, j = 0, k = a; i >= 0; i--, j++, k-- ){
if ( j % 3 == 0 && j != 0 ){
cadena1[k] = cadena[i];
k--;
cadena1[k] = '.';
}
else{
cadena1[k] = cadena[i];
}
}
strcpy ( cadena, cadena1);
ShowMessage(cadena);
}
Gracias Checho360