Tema: Leer char*
Ver Mensaje Individual
  #5 (permalink)  
Antiguo 02/01/2014, 13:57
carbon
 
Fecha de Ingreso: enero-2012
Ubicación: Buenos Aires
Mensajes: 745
Antigüedad: 12 años, 8 meses
Puntos: 35
Respuesta: Leer char*

Me alegro que te haya servido, pero esa no era mi idea! Ya que estás usando malloc de forma estática, siempre almacenará 100 bytes sin importar el temaño de la cadena leída. La idea de usar malloc() es almacenar la cantidad exacta de bytes para la cadena.

Edito: aquí hice un ejemplo de lo que yo pretendía:

Código C:
Ver original
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. int main()
  5. {
  6.     int bytes = 0;
  7.     char current_char;
  8.     char *input = NULL;
  9.  
  10.     printf("Ingrese una cadena: ");
  11.  
  12.     while ((current_char = getchar()) != '\n')
  13.     {
  14.         bytes++;
  15.         input = (char *)realloc(input, bytes);
  16.         input[bytes - 1] = current_char;
  17.     }
  18.  
  19.     printf("Has ingresado '%s'.\n", input);
  20.  
  21.     free(input);
  22.  
  23.     return 0;
  24. }

Como verás solo se almacena la memoria necesaria para la cadena ingresada. Espero que te sirva!


Última edición por carbon; 02/01/2014 a las 17:31