Donar $20 Donar $50 Donar $100 Donar mensualmente
 


Enviar respuesta 
 
Calificación:
  • 0 votos - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5
Buscar en el tema
[C++]Problema con violación de segmento
Autor Mensaje
Feer Sin conexión
Presidente del CEIT
win-win
**********

Ing. Electrónica
Facultad Regional Buenos Aires

Mensajes: 4.565
Agradecimientos dados: 594
Agradecimientos: 2.490 en 411 posts
Registro en: Apr 2010
Mensaje: #1
[C++]Problema con violación de segmento Dudas y recomendaciones Informática II (Electrónica)
Hola, bueno la cosa me tira violación de segmento cuando cargo la chapa y ya ni idea que es...
Me deja poner un valor y ahí me salta la violación y me quede sin saber que hacerConfused

Ayudas?




#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <iostream.h>

typedef struct CAMIONES{
char* marca;
char* modelo;
char* n_chapa;
int interno;
int cantidad_viajes;
}struct_camion;

class VEHICULO{
private:
char *Marca;
char *Modelo;
char *Numero_chapa;
int Anio_fabricacion;
public:
VEHICULO(){};
~VEHICULO();

void set_modelo(char *v_modelo);
void set_marca(char *v_marca);
void set_n_chapa(char *v_chapa);
void set_anio_fabricacion(int v_anio);

char* get_marca(void);
char* get_modelo(void);
char* get_n_chapa(void);
int get_anio_fabricacion(void);
};

class CAMION: public VEHICULO{
private:
unsigned int interno;
unsigned int cantidad_viajes;

public:
void set_camion(struct_camion *);
struct_camion* get_camion(void);
void mirar_todo(void);
CAMION(){};
~CAMION(){};
};

//DECLARO FUNCIONES DE CLASE VEHICULO.

//Seteo de objeto perteneciente a clase vehículo - SET

void VEHICULO::set_marca(char *v_marca){
int tamano;
tamano = strlen(v_marca);
Marca = new char[tamano+1];
strcpy(Marca,v_marca);
}

void VEHICULO::set_modelo(char *v_modelo){
int tamano;
tamano = strlen(v_modelo);
Modelo = new char[tamano+1];
strcpy(Modelo,v_modelo);
}

void VEHICULO::set_n_chapa(char *v_chapa){
int tamano;
tamano = strlen(v_chapa);
Numero_chapa = new char[tamano+1];
strcpy(Numero_chapa,v_chapa);
}

void VEHICULO::set_anio_fabricacion(int v_anio){
Anio_fabricacion = v_anio;
}

//Seteo de objeto perteneciente a clase vehículo - GET


char* VEHICULO:: get_marca(void){
return(Marca);
}

char* VEHICULO:: get_n_chapa(void){
return(Numero_chapa);
}
char* VEHICULO:: get_modelo(void){
return(Modelo);
}
int VEHICULO:: get_anio_fabricacion(void){
return(Anio_fabricacion);
}


VEHICULO:: ~VEHICULO(){
delete [] (Numero_chapa);
delete [] (Modelo);
delete [] (Marca);
}

// Funciones clase CAMION

void CAMION::set_camion(struct_camion *nuevo_camion){

set_marca(nuevo_camion->marca);
set_modelo(nuevo_camion->modelo);
set_n_chapa(nuevo_camion->n_chapa);
if((nuevo_camion->interno>=0)&&(nuevo_camion->interno<=9999)){
interno = nuevo_camion->interno;
}
cantidad_viajes = 0;
}

struct_camion* CAMION::get_camion(void){
struct_camion *aux;

aux->marca = get_marca();
aux->modelo = get_modelo();
aux->n_chapa = get_n_chapa();
aux->interno = interno;
aux->cantidad_viajes = cantidad_viajes;
return(aux);
}

void CAMION::mirar_todo(void){
cout<<"Marca: "<<get_marca() << "Modelo: "<<get_modelo() << "Chapa: "<<get_n_chapa() << "Interno: "<<interno<< "Cantidad de viajes: "<<cantidad_viajes <<endl;
}


int main (void){
struct_camion camion_nuevo;
int cant_camiones = 0;
CAMION camiones[2];
while(cant_camiones<2){
cout<<"Ingrese marca"<<endl;
cin>>camion_nuevo.marca;
cout<<"Ingrese modelo"<<endl;
cin>>camion_nuevo.modelo;
cout<<"Ingrese chapa: "<<endl;
cin>>camion_nuevo.n_chapa;
cout<<"Ingrese interno: "<<endl;
cin>>camion_nuevo.interno;
cout<<"Ingrese cantidad de viajes: "<<endl;
cin>>camion_nuevo.cantidad_viajes;
camiones[cant_camiones].set_camion(&camion_nuevo);
cant_camiones++;
}
cout<<"Ya cargue todos los camiones"<<endl;
for(int i=0;i<2;i++){
camiones[i].mirar_todo();
}
getchar();
return(0);
}




gracia!

[Imagen: digitalizartransparent.png]
25-02-2013 17:01
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
brunodiaz Sin conexión
The Dark Knight
Bla
**********

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 7.762
Agradecimientos dados: 136
Agradecimientos: 381 en 132 posts
Registro en: May 2008
Mensaje: #2
RE: [C++]Problema con violación de segmento
En que linea te salta?
25-02-2013 17:14
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
Feer Sin conexión
Presidente del CEIT
win-win
**********

Ing. Electrónica
Facultad Regional Buenos Aires

Mensajes: 4.565
Agradecimientos dados: 594
Agradecimientos: 2.490 en 411 posts
Registro en: Apr 2010
Mensaje: #3
RE: [C++]Problema con violación de segmento
139
cout<<"Ingrese chapa: "<<endl;
140
cin>>camion_nuevo.n_chapa;


Cuando cargo chapa viola.

[Imagen: digitalizartransparent.png]
25-02-2013 17:19
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
Abend Sin conexión
Campeon del cubo Rubik
Sin estado :(
****

Ing. Electrónica
Facultad Regional Buenos Aires

Mensajes: 180
Agradecimientos dados: 27
Agradecimientos: 35 en 23 posts
Registro en: Feb 2013
Mensaje: #4
RE: [C++]Problema con violación de segmento
No estoy del todo seguro porque no toco C++ hace rato, pero tenes dos posibles errores.

1) El operador CIN no te hace automaticamente la reserva de memoria. Estas mandando todo le flujo a un char *
2) Esta no se si le estoy mandando fruta pero el CIN no trabaja solo con el tipo string y no con char *?
(Este mensaje fue modificado por última vez en: 25-02-2013 18:17 por Abend.)
25-02-2013 18:17
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
[-] Abend recibio 1 Gracias por este post
Feer (25-02-2013)
brunodiaz Sin conexión
The Dark Knight
Bla
**********

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 7.762
Agradecimientos dados: 136
Agradecimientos: 381 en 132 posts
Registro en: May 2008
Mensaje: #5
RE: [C++]Problema con violación de segmento
Como dice el muchacho n_chapa es un char * al que nos e le reservo memoria, al igual que todos los demas.

Comentario aparte, que raro usar char * en C++, si podes evitar usarlo y usar string o stringstream te recomiendo hacerlo.
25-02-2013 18:56
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
[-] brunodiaz recibio 1 Gracias por este post
Feer (25-02-2013)
Feer Sin conexión
Presidente del CEIT
win-win
**********

Ing. Electrónica
Facultad Regional Buenos Aires

Mensajes: 4.565
Agradecimientos dados: 594
Agradecimientos: 2.490 en 411 posts
Registro en: Apr 2010
Mensaje: #6
RE: [C++]Problema con violación de segmento
Joya gracias, en el parcial me lo pusieron como que estaba bien, jajaja
que desastre.

[Imagen: digitalizartransparent.png]
25-02-2013 20:38
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
Adriano Sin conexión
Presidente del CEIT
sonaiNTU arap anoD
**********

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 6.678
Agradecimientos dados: 236
Agradecimientos: 718 en 242 posts
Registro en: Jul 2008
Facebook Twitter
Mensaje: #7
RE: [C++]Problema con violación de segmento
Tenes que reservar memoria para el char* o usar string

Ups, conteste tarde =P

[Imagen: digitalizartransparent.png]
(Este mensaje fue modificado por última vez en: 25-02-2013 20:43 por Adriano.)
25-02-2013 20:43
Visita su sitio web Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
[-] Adriano recibio 1 Gracias por este post
Feer (25-02-2013)
Feer Sin conexión
Presidente del CEIT
win-win
**********

Ing. Electrónica
Facultad Regional Buenos Aires

Mensajes: 4.565
Agradecimientos dados: 594
Agradecimientos: 2.490 en 411 posts
Registro en: Apr 2010
Mensaje: #8
RE: [C++]Problema con violación de segmento
=P, no pasa nada=P
En el parcial lo puso como bien, claramente un desastre.
Gracias a los tres por contestar =)

[Imagen: digitalizartransparent.png]
25-02-2013 20:47
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
brunodiaz Sin conexión
The Dark Knight
Bla
**********

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 7.762
Agradecimientos dados: 136
Agradecimientos: 381 en 132 posts
Registro en: May 2008
Mensaje: #9
RE: [C++]Problema con violación de segmento
No seas amarrete con el botoncito de gracias (?)
25-02-2013 20:54
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
[-] brunodiaz recibio 1 Gracias por este post
frakea (02-03-2013)
Feer Sin conexión
Presidente del CEIT
win-win
**********

Ing. Electrónica
Facultad Regional Buenos Aires

Mensajes: 4.565
Agradecimientos dados: 594
Agradecimientos: 2.490 en 411 posts
Registro en: Apr 2010
Mensaje: #10
RE: [C++]Problema con violación de segmento

Off-topic:
Ahí está.-

[Imagen: digitalizartransparent.png]
25-02-2013 20:57
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
[-] Feer recibio 1 Gracias por este post
Adriano (25-02-2013)
Buscar en el tema
Enviar respuesta 




Usuario(s) navegando en este tema: 1 invitado(s)



    This forum uses Lukasz Tkacz MyBB addons.