Foros del Web » Programación para mayores de 30 ;) » Programación General »

Dudas sobre C

Estas en el tema de Dudas sobre C en el foro de Programación General en Foros del Web. Una duda. NODO *creanodo (char * i,char * f) { NODO *p=NULL; p=(NODO *) malloc(sizeof(NODO)); if(p!=NULL) { p->ip=(char *)calloc(f-i,sizeof(char)); } } Suponiendo la siguiente función ...
  #1 (permalink)  
Antiguo 11/08/2002, 14:39
 
Fecha de Ingreso: julio-2002
Ubicación: Córdoba
Mensajes: 54
Antigüedad: 21 años, 9 meses
Puntos: 0
Dudas sobre C

Una duda.

NODO *creanodo (char * i,char * f)
{
NODO *p=NULL;
p=(NODO *) malloc(sizeof(NODO));
if(p!=NULL)
{
p->ip=(char *)calloc(f-i,sizeof(char));
}
}
Suponiendo la siguiente función estaría bien definida la reserva de memoria???.
Creo que lo de f-i no es muy logico, verdad?
En realidad lo que quiero es reservar memoria para una cadena que se supone que va desde i hasta f.

Gracias por la ayuda.
  #2 (permalink)  
Antiguo 12/08/2002, 10:35
 
Fecha de Ingreso: junio-2002
Mensajes: 39
Antigüedad: 21 años, 11 meses
Puntos: 0
Re: Dudas sobre C

no, la verdad es que no creo que este bien, ya que los punteros, apuntan(valga la reduncancia) a una posicion de memoria, y tu no puedes saber exactamente si esas posiciones estan juntas o no.

Una solucion que puedes hacer es un bucle para calcular el numero de caracteres del que se compone la cadena.

aahh por cierto, la funcion no tiene que devolver un NODO *???

Bueno, espero que te haya ayudado en tu duda.

  #3 (permalink)  
Antiguo 12/08/2002, 13:33
 
Fecha de Ingreso: julio-2002
Ubicación: Córdoba
Mensajes: 54
Antigüedad: 21 años, 9 meses
Puntos: 0
Re: Dudas sobre C

Gracias Logic por tu información. Yo la verdad lo veía un poco raro.
Lo de devolver el puntero no te preocupes, es que aquí solo puse un trozo de la función.
Gracias por tu interés.
Un saludo.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:34.