Ver Mensaje Individual
  #1 (permalink)  
Antiguo 24/07/2011, 10:39
Checho360
 
Fecha de Ingreso: marzo-2011
Mensajes: 94
Antigüedad: 13 años, 9 meses
Puntos: 3
problema realloc

Hola. Tengo las siguientes funciones:

Código C:
Ver original
  1. int tam_infijo (char * array){
  2.    
  3.     int cont = 0;
  4.    
  5.     while ( *( array + cont ) != '\0' ){
  6.          
  7.           cont++;
  8.          
  9.     }
  10.    
  11.     return cont - 1;
  12.    
  13. }
  14.  
  15. char * scan_infijo (){
  16.    
  17.     char * expresion;
  18.    
  19.     expresion = (char*) calloc (200, sizeof (char));
  20.    
  21.     fgets (expresion, 200, stdin);
  22.    
  23.     realloc (expresion, sizeof(char) * (tam_infijo (expresion) + 1) );
  24.    
  25.     puts (expresion);
  26.    
  27. }

Alguien me podría decir que estoy haciendo mal a la hora de llamar a realloc? esque al programa le da igual que escriba:

(tam_infijo (expresion) + 1) que (tam_infijo (expresion) - 2), hace lo mismo...

Tambien me estoy dando cuenta que malloc hace exactamente lo mismo. Da igual si pones (malloc (4)) que malloc (4*sizeof(char)) que lo que sea porque almacena todos los caracteres :S

Un saludo!