Ver Mensaje Individual
  #1 (permalink)  
Antiguo 16/06/2011, 12:14
tawky
 
Fecha de Ingreso: noviembre-2009
Mensajes: 36
Antigüedad: 14 años, 5 meses
Puntos: 0
Problema con cadenas y punteros.

Tengo una función para ir leyendo linea a linea un fichero.

int _file_ply::read_line(){
if (!feof(File)){
fgets(Buffer,MAX_LENGTH_LINE,File);
if (strlen(Buffer)==0) return(-1);
Num_lines++;
printf(" - %d - ",strlen(Buffer));
//printf("%d:%s",Num_lines,Buffer);
return(0);
}
return(-1);
}

El documento que leo 1º tiene una etapa de 3 numeros y luego de 4 numeros.

ej:


1 2 4
2 3 6
2 4 6
3 1 2 3
3 4 5 7
3 4 5 6

El problema empieza cuando empezamos con las lineas de 4 numeros.

strlen(Buffer) me dice que que tiene tamaño 9 las lineas.

Luego lee el 1 numero, strlen(Buffer) = 8

Luego lee el 2 numero, strlen(Buffer) = 6

Luego lee el 3 numero, strlen(Buffer) = 4

Pero cuando va a leer el 4 numero dice que encuentra un '\n' y si fuerzo el puntero al Buffer haciendole p1=Buffer; p1++; entonces me da una violacion de segmento, no lo entiendo ya que aun tendriamos 4 posiciones de memoria mas donde seguir mirando.

Por favor , me podríais ayudar????

Muchas gracias.