• Domingo 15 de Diciembre de 2024, 06:57

Autor Tema:  Violación De Segmento  (Leído 1619 veces)

ka_1989

  • Nuevo Miembro
  • *
  • Mensajes: 8
    • Ver Perfil
Violación De Segmento
« en: Jueves 27 de Diciembre de 2007, 01:01 »
0
Muy buenas a todos. Tengo un problema que no se porque puede ser.
Lo que ocurre es lo siguiente:
Código: Text
  1.  
  2. /*problema de VIOLACION DE SEGMENTO*/
  3. if (encontrado){
  4.   cout<<"Los datos del productos seleccionado son: "<<endl;
  5.   cout<<"Código:  "<<productos[numproductos].codigo<<endl;
  6.   cout<<"Nombre:  ";escribircadena(productos[numproductos].nombre);
  7.   cout<<endl;
  8.   cout<<"Peso:    "<<productos[numproductos].peso<<" Kg"<<endl;
  9.   cout<<"Volumen: "<<productos[numproductos].volumen<< " Litros"<<endl;
  10.   cout<<"Zona:    "<<productos[numproductos].zona<<endl;
  11.   cout<<"Repisa:  "<<productos[numproductos].nrepisa<<endl;
  12.   cout<<endl;  
  13. }
  14. else{
  15.   ......
  16. }
  17.  
  18.  
Aquí esta el código y lo que ocurres es que cuado se va a mosrar esto por pantalla me da Violación de segmento.
Este mismo algoritmo lo tengo escrito en otra parte del programa, identicamente, y no me da ningún problema.
Si alguien pudiera ayudarme se lo agradezco.
Muchisimas gracias a todos, y si alguien supiera algo más sobre este error por favor nos cuente algo sobre él para evitar problemas futuros.
Muchas gracias por adelantado y Felices Fiestas a todos.

ProfesorX

  • Moderador
  • ******
  • Mensajes: 796
  • Nacionalidad: mx
    • Ver Perfil
Re: Violación De Segmento
« Respuesta #1 en: Jueves 27 de Diciembre de 2007, 03:11 »
0
Pues el segfault, o violacion de segmento, puede ser por muchas causas, pero lo mas comun es por utilizar punteros sin inicializar, o por leer fuera de los indices de un array.

Verifica que no estes leyendo datos fuera del indice del vector productos.

NOTA:
==================================================================
Este foro es para ayudar, aprender, compartir... usenlo para eso,
NO SE RESUELVEN DUDAS POR MENSAJE PRIVADO Y MENOS POR CORREO
==================================================================

ka_1989

  • Nuevo Miembro
  • *
  • Mensajes: 8
    • Ver Perfil
Re: Violación De Segmento
« Respuesta #2 en: Jueves 27 de Diciembre de 2007, 15:42 »
0
Muxisimas gracias, estube mirando haber cual es el valor que tomaba numproductos, y comprobaba ke se salía del rango.
Claro lo que me ocurría era que en el bucle donde se le asignaba el valor a numproductos tenia puesto:

numproductos==i;

y esto no hacia nada y me tomaba valores del orden de 100000, y claro el array era como máximo 49 [50], jeje.

Muchas gracias por tu ayuda, y así ya se para otras veces donde puede estar el error.

GRACIAS, y ke paseís unas felices fiestas.