Título: Problema con struct Publicado por: Luchoz95 en 26 Marzo 2013, 18:39 pm tengo un problema con la siguiente structura
Código
bueno el problema es que no se imprime el nombre del producto (producto1.nombre_product) se imprime un caracter cualquiera , la verdad no se que puede ser ... la unica forma que pude hacer andar cambiandole la cantidad de vectores de la variable precio a [2] .. alguien me puede ayudar ? S2! Título: Re: Problema con struct Publicado por: rir3760 en 26 Marzo 2013, 19:05 pm Cuando declaras un array:
Código Indicas el numero de elementos (N = 1) y accedes a ellos mediante los indices 0 .. N-1. Como declaras un array de un solo elemento (no tiene caso) accedes a este mediante "precio[0]". El elemento "precio[1]" no existe ya que seria el segundo elemento del array. Un saludo Título: Re: Problema con struct Publicado por: avesudra en 26 Marzo 2013, 19:25 pm El elemento "precio[1]" no existe ya que seria el segundo elemento del array. No me queda muy claro a mí eh, ya que he hecho esto y salen dos direcciones de memoria distintas para el precio y dos valores distintos que los he asignado yo, cuando ¿debería dar error por acceder a una memoria que no es la suya al asignarle los valores?:Código Siendo esta la salida(en breve la pongo): Código: Direcciones de memoria nombre_product[0]: 5b6d2250 Valor: A Es curioso porque si pongo la estructura así: Código Se arregla :¬¬ Título: Re: Problema con struct Publicado por: 85 en 26 Marzo 2013, 21:56 pm a veces no da error mientras no modifiques algo crítico, es decir si te salís fuera del límite de una cadena y escribís otra, en teoría no pasa nada. Pero si al pasarte fuera, terminás modificando la dirección almacenada de un puntero por ejemplo, entonces si sería una modificación crítica.
array[2] en teoría debería guardar 2 elementos que son array[0] y array[1], si usás [2] sería el tercero. aunque si no tira error debés estar modificando el dato que se encuentra a continuación, o a no ser que el compilador sea inteligente como para haber creado un array de 3. Título: Re: Problema con struct Publicado por: avesudra en 26 Marzo 2013, 22:20 pm a veces no da error mientras no modifiques algo crítico, es decir si te salís fuera del límite de una cadena y escribís otra, en teoría no pasa nada. Pero si al pasarte fuera, terminás modificando la dirección almacenada de un puntero por ejemplo, entonces si sería una modificación crítica. En este caso si le asigno valores a producto1.precio[1] no da error pero asignandolo a producto.precio[2] sí. Bah acabo de mirar en un libro y llevais razón :/ array[2] en teoría debería guardar 2 elementos que son array[0] y array[1], si usás [2] sería el tercero. aunque si no tira error debés estar modificando el dato que se encuentra a continuación, o a no ser que el compilador sea inteligente como para haber creado un array de 3. Título: Re: Problema con struct Publicado por: Luchoz95 en 27 Marzo 2013, 00:15 am a ver yo tengo entendido que esto :
Código es un vector .. donde puedo guardar dos enteros Código
pero por lo visto ahi no esta el erro , si no, en gets , me equivoco ? y la dos soluciens posibles son las siguientes :
Código por esto ... Código
Muy loco no ?
Código
ahora mi pregunta es , realmente donde esta el error ? Título: Re: Problema con struct Publicado por: durasno en 27 Marzo 2013, 01:37 am Citar a ver yo tengo entendido que esto : No, la respuesta ya te la dio rir3760 anteriormente. Solo podes acceder a la posicion 0 al declarar:Código int precio [1]; es un vector .. donde puedo guardar dos enteros Código precio[0]; precio[1]; Código
Saludos |