Creo Que la Falla La Tienes en el Concepto
de Punteros. Espero que Te sirva La Sugerencias en el codigo
#include <stdio.h> 
#include <conio.h> 
#include <string.h> 
char encriptacion (char *); 
void main (void)
 {
  /***************************
  FALTA INICIALIZAR EL PUNTERO
  ***************************/
  char *mens = NULL; 
  int i,longitud,aux; 
  clrscr(); 
  printf("Escriba el mensaje que quiere encriptar:"); 
  printf("Escribalo y al final pulse enter "); 
  /**********************
  Inicalizar El Puntero Por Ejemplo Con la
  Funcion malloc
  ***************************************/
  mens = malloc(512);/*buffer de 512 bytes*/
  if (!mens)
   {
    perror("Error en la Asignacion de memoria");
    exit(0);
    }
  /*********************
  Inicializar el Buffer: Con "/0"
  ******************************/
  i = 0;
  while(i<512) mens[i++]= 0x00;
  /***
  No Recuerdo la Funcion Coloca
  El "/0" de Fin de Streen Verificar
  *********************************/
  scanf("%[^n]",mens);
  longitud=strlen(mens); 
  /* aqui imprimo lo que meti antes*/ 
  /****
  Si Desea Imprimir el Estreen Byte a byte
  La Impresion Para al Encontrar "/0"
  ***************************************/
  for(i = 0; mens; i++)
   {
    /***
    Se Rompe Si Se Recibirieron mas de 512 
    *************************************/
    if(i == 512); break
    printf("%c",mens);
    } 
  getch(); 
  clrscr(); 
  printf("La frase encriptada es"); 
  /*ahora utilizo la funcion de encriptacion*/ 
  mens = ecriptacion(mens);/* Elimine & */ 
  for(i = 0; mens; i++)
   {
    /***
    Se Rompe Si Se Recibirieron mas de 512 
    *************************************/
    if(i == 512); break
    printf("%c",mens);
    } 
  getch(); 
  } /* Fin del Programa Principal */ 
void encriptacion (char *mensaje)
 { 
  char *mensaje; 
  int i,longitud,aux; 
  longitud = strlen(mensaje); 
  /***
  Creo Que lo Que Esta Tratando de Encriptar
  Es el Valor Ascci+la Pos *2 lo que es incorecto Por Que Desborda la Cap de un char
  *****************************************/
for(i=0;i!=longitud;i++){ 
aux=(int) mensaje; /* Guarda el lvalue */
aux=aux+i*2; 
mensaje=(char) aux;
  /***
  Sugiero Un Algoritmo Por Ej.
  ***************************/
  for(i = 0; mens; i++)
   {
    /***
    Se Rompe Si Se Recibirieron mas de 512 
    *************************************/
    if(i == 512); break
    aux = (mens+ i)* 2;
    if(aux < 256)mens = aux;
    else
     {
      /***
      Considerar Que En una Variable
      Tipo Char No SE Puede Exeder de 255
      Por Ejemplo: 
      **********************************/
      mens+= 2; 
      } 
    } /* Fin del For */ 
  } /* Fin de la Funcion */
 
[Modificado el 2/22/02 por bench]
[Modificado el 2/23/02 por bench]
[Modificado el 2/23/02 por bench]