Programación General => C/C++ => Mensaje iniciado por: Rombus en Domingo 12 de Octubre de 2008, 04:43
Título: Problema con gcc
Publicado por: Rombus en Domingo 12 de Octubre de 2008, 04:43
Hola gente!
estube aberiguando sobre la funcion memcpy, ya que siempre tengo problemas de fallos de segmentacion y encontre un codigo de ejemplo en la pagina de c con clase.
deberia de andar, ya que parece bastante razonable y a parte esta en c con clase que es una pagina bastante confiable...
el problema es que en mi gcc desde ubuntu me tira un segmentation fault en el memcpy
alguien sabe a q se debe esto?
gracias de antemano!
Título: Re: Problema con gcc
Publicado por: robbie110487 en Domingo 12 de Octubre de 2008, 06:25
Hola, prueba en vez de declarar a ptr como puntero, declararlo como un arreglo de caracteres, algo asi:
Código: Text
char ptr[LEN1]
Asi deberia funcionar.
Saludos
Título: Re: Problema con gcc
Publicado por: Eternal Idol en Domingo 12 de Octubre de 2008, 13:44
Si, ahi ptr apunta a una direccion indefinida, otra opcion (incluyendo stdlib.h):
Código: Text
char *ptr = (char*)malloc(LEN1 + 1);
PD. LEN1 esta mal (por eso tengo que hacer LEN1 + 1), tiene que ser 8 para que haya espacio para el terminador de cadena. Mejor usar char a[] = "abcdefg"; y despues sizeof(a) para obtener lo que seria LEN1.
Título: Re: Problema con gcc
Publicado por: Rombus en Domingo 12 de Octubre de 2008, 23:18
ahh!!
y sigo con el problema de asignarle cosas a memoria no definida XD
che, pero que mal los de C con clase al poner ese codigo.
o en otros compiladores anda?
gracias por las respuestas!!
Título: Re: Problema con gcc
Publicado por: Eternal Idol en Lunes 13 de Octubre de 2008, 00:23
Cita de: "Rombus"
ahh!!
y sigo con el problema de asignarle cosas a memoria no definida XD
che, pero que mal los de C con clase al poner ese codigo.
o en otros compiladores anda?
gracias por las respuestas!!
¿Donde esta exactamente ese codigo? No deberia funcionar correctamente independientemente del compilador (si funciona es por casualidad), es mas el VC++ no te lo compila siquiera por el tema del terminador de cadena que no entra en un array de ese tamaño.
Título: Re: Problema con gcc
Publicado por: Rombus en Lunes 13 de Octubre de 2008, 02:08
esta acà: http://www.conclase.net/c/librerias/fun ... fun=memcpy (http://www.conclase.net/c/librerias/funcion.php?fun=memcpy" onclick="window.open(this.href);return false;)
yo le agregue un par de cosas para ver si funcionaba, pero el codigo en si es el mismo. carece de la asignacion.
habia otro tambien q me daba error...
ahora no me acuerdo cual era.
si, tiene sentido pensar q no ande en ningun lado, pq estas asignando algo a ul lugar de memoria que es basura.
habria que mandarles un mail o comunicarse de alguna forma para que lo arreglen los de c con clase, que tiene toda la onda esa pag XD
Título: Re: Problema con gcc
Publicado por: Eternal Idol en Lunes 13 de Octubre de 2008, 08:10
En fin, pesimo codigo por lo anteriormente expuesto :bad:
Título: Re: Problema con gcc
Publicado por: ProfesorX en Lunes 13 de Octubre de 2008, 17:41
Vaya, tambien revise la pagina y que mal.
Es una lastima que los de C con clase no hayan notado un error de ese tamaño :blink:
Título: Re: Problema con gcc
Publicado por: Rombus en Lunes 13 de Octubre de 2008, 19:32
si la verdad...
voy a ver si me puedo poner en contacto para que lo corrigan