Re: [OT] lista para desarrolladores de C en linux (en castellano)

2003-03-12 Por tema Emilio J. Padrón
On Tue, Mar 11, 2003 at 04:11:36PM -0300, Matías nnss wrote:
 char * regreso; strcpy(regreso, );

El problema ahí lo tendrás si no estás reservando memoria para el
string regreso, o si no estás reservando suficiente memoria para lo que
vas a escribir ahí con el strcpy, pues este no reserva memoria, sólo
copia. Sacado del man de strcpy():

Si la cadena destino de un strcpy() no es bastante  grande
   (esto  es, si el programador fue estúpido o perezoso, y no
   comprobó el tamaño antes de la copia) entonces puede ocur­
   rir cualquier cosa.  Provocar el desbordamiento de cadenas
   de caracteres de longitud fija es una técnica favorita  de
   los piratas informáticos.

Una opción (a parte de usar tú mismo el malloc) para reservar la memoria
justa que necesitas para la cadena
es utilizar strdup, que te crea un duplicado del string que le pases
reservando la memoria necesaria:  char *strdup(const char *s);

 Pero bueno, eso me lo merezco por querer aprender C yo solito.

Equivocarse es una buena forma de aprender así que no desesperes.

Un saludo.



Re: [OT] lista para desarrolladores de C en linux (en castellano)

2003-03-11 Por tema Santiago Vila
Matías nnss:
  Estoy tratando de aprender a programar en C, y para eso hice un
  pequeño programita, pero cada vez que quiero ejecutar el programa que
  acabé de compilar (sin ningún error) me aparece el mismo querido
  error: Violación de segmento.
  Y es por eso que estoy tratando de buscar alguna lista para gente que
  hace cosas en C, y que sea en castellano. Les agradecería cualquier
  orientación sobre este tema.

Pues hay una en hispalinux que encaja perfectamente con tu descripción:

[EMAIL PROTECTED]

(funciona con mailman, escribe a gnu-c-request para suscribirte).



Re: [OT] lista para desarrolladores de C en linux (en castellano)

2003-03-11 Por tema Emilio J. Padrón
On Tue, Mar 11, 2003 at 05:01:57AM -0300, Matías nnss wrote:
 Hola:
  Estoy tratando de aprender a programar en C, y para eso hice un
  pequeño programita, pero cada vez que quiero ejecutar el programa que
  acabé de compilar (sin ningún error) me aparece el mismo querido
  error: Violación de segmento.
  Y es por eso que estoy tratando de buscar alguna lista para gente que
  hace cosas en C, y que sea en castellano. Les agradecería cualquier
  orientación sobre este tema.
 

Hola,

con el 99% de probabilidad tienes un error con algún puntero. Vamos,
que o no inicializas alguno, o estás pasando alguna dirección chunga
de memoria a alguna función... Las causas del problema pueden ser
múltiples, pero ese es el principal problema del lenguaje C: los
punteros. Casi todos los errores en tiempo de ejecución vienen de ahí.

Para depurar el programa puedes usar la táctica del printf,
imprimiendo cosillas por pantalla hasta que aisles el problema, o algún
depurador como el gdb. Yo uso el gdb dentro del propio emacs, que es muy
cómodo, pero también puedes usar una interfaz llamada xxgdb si te
resulta incómodo manejarte por completo en consola con gdb.

No conozco listas de distribución al respecto, pero seguro que hay
bastantes. Prueba a buscar con google.

Un saludo.



Re: [OT] lista para desarrolladores de C en linux (en castellano)

2003-03-11 Por tema nmag only
La señal es SIGSEGV, esta señal es generada cuando un programa trata de 
leer o escribir fuera de la memoria que ha sido localizada para el. (la 
señale sólo ocurren cuando el programa es detectado fuera de su espacio 
reservado por el mecanismo de protección de memoria del sistema). El 
nombre de esta señal es una abreviación para Segmentation violation.
La forma más común de obtener un estado SIGSEGV es dereferenciando un 
puntero no inicializado o nulo. Un puntero nulo refiere la dirección 0, 
y la mayoría de sistemas operativos toman esta dirección como inválida.
También se obtiene SIGSEGV cuando se usa un puntero para mediante un 
array, pero falla al verificar el final del array.


La mejor documentación de C (no hay otra) la encuentra en

   http://www.gnu.org/manual/glibc-2.2.5/libc.html

The GNU C library (aprox 1100 páginas)

Saludos!

nmag only
_


Matías nnss escribió::


Hola:
Estoy tratando de aprender a programar en C, y para eso hice un
pequeño programita, pero cada vez que quiero ejecutar el programa que
acabé de compilar (sin ningún error) me aparece el mismo querido
error: Violación de segmento.
Y es por eso que estoy tratando de buscar alguna lista para gente que
hace cosas en C, y que sea en castellano. Les agradecería cualquier
orientación sobre este tema.






 




--
***
Telefónica: Crece el ruido de la Co###ªf|#A==-icàà[[ió+++ 
NO CARRIER

***
Si Bill Gates es un dios, Windows debe ser una plaga divina.
***






Re: [OT] lista para desarrolladores de C en linux (en castellano)

2003-03-11 Por tema Matías nnss
Gracias, el problema ya lo solucioné. Estoy haciendo una función que
traduzca los números a sus palabras (i.e. 22 a veintidos). Es que en
un principio funcionaba el char * regreso;strcpy(regreso, ); pero
despues (cuando en ciclo empeso a crecer para abarcar a 10^6 -1) se fue
todo de control.
Pero bueno, eso me lo merezco por querer aprender C yo solito.






-- 
Atentamente, yo Matías

cita quien=Alfredo Valles
 Pon el codigo y deja ver si podemos decirte por que es el error.