Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Problema al recorrer una tabla

Estas en el tema de Problema al recorrer una tabla en el foro de C/C++ en Foros del Web. Quiero recorrer una tabla hasta que me encuentre un corchete, y copiar el contenido hasta ese momento en otra tabla, el compilador me da el ...
  #1 (permalink)  
Antiguo 21/04/2010, 04:04
 
Fecha de Ingreso: enero-2006
Mensajes: 94
Antigüedad: 18 años, 3 meses
Puntos: 2
Problema al recorrer una tabla

Quiero recorrer una tabla hasta que me encuentre un corchete, y copiar el contenido hasta ese momento en otra tabla, el compilador me da el siguiente warning: ‘i’ is used uninitialized in this function

Pongo el codigo:
Código PHP:
for(trama[i]=2trama[i]<='['i++)
    
longitud[i]=trama[i]; 
trama es una cadena de caracteres que le paso como parametro a la funcion, y longitud donde quiero copiar la cadena
  #2 (permalink)  
Antiguo 21/04/2010, 04:41
 
Fecha de Ingreso: junio-2008
Ubicación: Seattle, USA
Mensajes: 733
Antigüedad: 15 años, 10 meses
Puntos: 61
Respuesta: Problema al recorrer una tabla

Estas censurando desde que definiste la variable i hasta el punto donde la usas. Las variables no tienen un valor definido al inicio, tienes que darle uno para que el compilador no te reclame.

Dicho de otra forma, que valor tiene la variable i (que le hayas dado explicitamente) al comenzar el ciclo que muestras?
  #3 (permalink)  
Antiguo 21/04/2010, 05:03
 
Fecha de Ingreso: enero-2006
Mensajes: 94
Antigüedad: 18 años, 3 meses
Puntos: 2
Respuesta: Problema al recorrer una tabla

mmm creo que es lo que tu dices. Al declarar la variable "int i;" no la inicialice a cero. Al poner "int i=0;" no me da el warning, pero ¿A que es debido? No lo entiendo :S
  #4 (permalink)  
Antiguo 21/04/2010, 05:04
 
Fecha de Ingreso: junio-2008
Ubicación: Seattle, USA
Mensajes: 733
Antigüedad: 15 años, 10 meses
Puntos: 61
Respuesta: Problema al recorrer una tabla

Pense que decir "Las variables no tienen un valor definido al inicio, tienes que darle uno para que el compilador no te reclame" era suficiente explicacion. Que es lo que no se entiende?
  #5 (permalink)  
Antiguo 21/04/2010, 05:13
 
Fecha de Ingreso: enero-2006
Mensajes: 94
Antigüedad: 18 años, 3 meses
Puntos: 2
Respuesta: Problema al recorrer una tabla

pues que al iniciar el bucle for, yo ya doy a i el valor 0 para que empiece a recorrer la cedena,¿Que diferencia hay entre eso e inicializarla en la declaracion?
  #6 (permalink)  
Antiguo 21/04/2010, 05:24
 
Fecha de Ingreso: junio-2008
Ubicación: Seattle, USA
Mensajes: 733
Antigüedad: 15 años, 10 meses
Puntos: 61
Respuesta: Problema al recorrer una tabla

Eso es interesante. No hay ninguna inicializacion en 0 para la variable i, al menos no en el codigo que muestras. Donde le estas dando el valor 0?

Tengo la impresion que crees, erroneamente, que por escribir "for" el compilador de manera implicita inicializa las variables a 0, o no es asi? (lo digo porque el codigo que muestras no tiene ningun "i = 0", y sin embargo dices "al iniciar el bucle for, yo ya doy a i el valor 0").
  #7 (permalink)  
Antiguo 21/04/2010, 05:38
 
Fecha de Ingreso: enero-2006
Mensajes: 94
Antigüedad: 18 años, 3 meses
Puntos: 2
Respuesta: Problema al recorrer una tabla

perdon, he dicho cero y queria decir dos, pero para el caso es lo mismo...

Asi si funciona:
Código PHP:
 int i=0;

  for(
trama[i]=2trama[i]<='['i++)
    
longitud[i]=trama[i]; 
Asi no funciona:
Código PHP:
 int i;

  for(
trama[i]=2trama[i]<='['i++)
    
longitud[i]=trama[i]; 
¿Ves a que me refiero?
  #8 (permalink)  
Antiguo 21/04/2010, 05:46
 
Fecha de Ingreso: enero-2010
Mensajes: 6
Antigüedad: 14 años, 3 meses
Puntos: 1
Respuesta: Problema al recorrer una tabla

Hola!
Creo que el código que no te funciona es pq simplemente el compilador no sabe a que posición de la cadena le asignas 2, ya que i no tiene ningun valor, pq como muy bien te han apuntado anteriormente, las variables no toman ningun valor predefinido, si no les indicas nada tienen "basura", por lo que al poner int =0 y luego trama[i]=2, ya sabe la posición, si no no.
  #9 (permalink)  
Antiguo 21/04/2010, 07:48
 
Fecha de Ingreso: junio-2008
Ubicación: Seattle, USA
Mensajes: 733
Antigüedad: 15 años, 10 meses
Puntos: 61
Respuesta: Problema al recorrer una tabla

Deduzco que crees, erroneamente, que la instruccion trama[i] es lo mismo que i, puesto que dices que al hacer trama[i] = 2, crees estar inicializando a i, cuando en realidad estas inicializando una expresion donde i esta involucrada.

i = 2 seria la manera de inicializar a i

Cambiando el codigo que presentas, aun definiendo la variable i sin inicializar, pero cambiandola en el comienzo del ciclo, quedaria
Código C++:
Ver original
  1. int i;
  2.  
  3.   for(i=2; trama[i]<='['; i++)
  4.     longitud[i]=trama[i];

La comparacion del ciclo for (trama[i] <= "[") tambien parece extraña.

Etiquetas: recorrer, tablas
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 10:44.