[Previo por Fecha] [Siguiente por Fecha] [Previo por Hilo] [Siguiente por Hilo]

[Hilos de Discusión] [Fecha] [Tema] [Autor]

Re: [Ayuda] compilacion gcc



gcc versión 3.2 20020903 (Red Hat Linux 8.0 3.2-7)


--- "Jorge L. Rivas" <jorge_lopez en xiniom com>
wrote:gcc versión 3.2 20020903 (Red Hat Linux 8.0
3.2-7)
> No creo que tenga que ver el X pues a mi si me marca
> el segmentation
> fault...en dos maquinas. Aunque asombrosamente pude
> replicar el
> comportamiento que dices en las maquinas de la
> escuela.
> 
> Mientras encontramos el problema, espero que este
> correo te sirva de
> consuelo :D.
> 
> Por ultimo, ¿que gcc estas usando?
> 
> 
> Saludos
> Jorge L. Rivas
> www.xiniom.com
> 
> 
> 
> On Fri, 2003-10-10 at 11:51, Manuel Morales wrote:
> > bueno, alguien me puede decir porque? pero estando
> en
> > una terminal del X si corre, y cuando estoy en una
> > sesion remota(ej. ssh), no se ejecuta, que tiene
> que
> > ver el entorno X aqui....
> > 
> > las matrices son muy grandes pues es un programa
> para
> > obtener medidas de tiempo de corrida
> > 
> >   tareas de la escuela ya saben!...
> > 
> > 
> > --- "Jorge L. Rivas" <jorge_lopez en xiniom com>
> wrote:
> > > Directo al grano: Tus arreglos son
> > > Gigaaaaaaaaaaaaaaaantes :-o
> > > 
> > > --> Explicación:
> > > 
> > > 
> > > C maneja 4 clases de almacenamiento para las
> > > variables entre ellas auto
> > > y static que definen la duración del
> almacenamiento
> > > (cuanto tiempo
> > > existe en memoria). De forma llana, cuando una
> > > variable es auto (como
> > > tus arreglos ya que auto es el default) se dice
> que
> > > tienen una
> > > persistencia automática, es decir, se asigna
> > > almacenamiento cada vez que
> > > son utilizadas. Cuando las variables son de
> > > persistencia estática
> > > (static), el almacenamiento se asigna al inicio
> del
> > > programa y se
> > > mantienen así hasta que termina la ejecución.
> > > 
> > > Cuando utilizas variables automáticas enormes
> es
> > > común que C te mande un
> > > segmentation fault ya que es incapaz de
> "crearlasâ??
> > > y "destruirlas"
> > > continuamente. 
> > > 
> > > --> Cosas interesantes que observar:
> > > 
> > > Pasa lo mismo con un solo arreglo de tamaño
> > > equivalente a tus tres
> > > arreglos (por ejemplo float arreglo[3000000])
> > > 
> > > 
> > > --> Soluciones
> > > 
> > > 1. Usar apuntadores (solución recomenda): digo,
> a
> > > pesar de que el código
> > > es trivial, es recomendable usar apuntadores y
> > > asignar la memoria de
> > > manera dinámica.
> > > 
> > > 2. Declarar los arreglos como static float
> a[n][m]
> > > 
> > > 3. Declarar las variables fuera del main (como
> > > globales que por default
> > > son static) aunque en lo particular no me gustan
> las
> > > variables globales.
> > >   
> > > 
> > > Saludos 
> > > Jorge L. Rivas
> > > www.xiniom.com
> > > 
> > > 
> > > 
> > > On Thu, 2003-10-09 at 18:29, Manuel Morales
> wrote:
> > > > El programa es el siguiente:
> > > > 
> > > > 
> > > > #define n 1000
> > > > #define m 1000
> > > > 
> > > > int main(void)
> > > > {
> > > > float a[n][m],b[n][m],c[n][m];
> > > > int i,j,k;
> > > > 
> > > > for(i=0;i<n;i++)
> > > >         for(j=0;j<m;j++)
> > > >         {
> > > >                 a[i][j]=10;
> > > >                 b[i][j]=10;
> > > >                 c[i][j]=0;
> > > >         }
> > > > 
> > > > for(i=0;i<n;i++)
> > > >         for(j=0;j<n;j++)
> > > >                 for(k=0;k<m;k++)
> > > >                        
> c[i][j]+=a[i][k]*b[k][j];
> > > > 
> > > > 
> > > > printf ("bueno este termino");
> > > > return 0;
> > > > }
> > > > 
> > > > y gdb da la siguente salida:
> > > > 
> > > > This GDB was configured as
> i386-redhat-linux...
> > > > (gdb) r
> > > > Starting program:
> > > /home/usuarios/bern1629/bin/matriz
> > > > 
> > > > Program received signal SIGSEGV, Segmentation
> > > fault.
> > > > main () at matriz.c:9
> > > > 9       for(i=0;i<n;i++)
> > > > 
> > > > 
> > > > bueno mientras toy checando docs....gracias
> por la
> > > > ayuda...
> > > > 
> > > > bye
> > > > 
> > > > 
> > > > --- Daniel Guerrero <daniel en danguer com>
> wrote:
> > > > > 
> > > > > El Miércoles, 8 octubre, 2003, a las 09:36
> PM,
> > > > > Arturo Espinosa-Aldama 
> > > > > escribió:
> > > > > 
> > > > > >
> > > > > >> From: Manuel Morales
> <unberam_info en yahoo com>
> > > > > >> To: linux_org_mx ayuda
> <ayuda en linux org mx>
> > > > > >> Subject: [Ayuda] compilacion gcc
> > > > > >> Date: Wed, 8 Oct 2003 16:21:10 -0700
> (PDT)
> > > > > >>
> > > > > >> ya se que para algunos lo que voy a
> preguntar
> > > es
> > > > > >> sencillo:
> > > > > >>
> > > > > >> acabo de compilar un programa asi:
> > > > > >>
> > > > > >> gcc -o matriz matris.c
> > > > > >>
> > > > > >> ok crea el ejecutable, y cuando lo
> ejecuto en
> > > una
> > > > > >> terminal dentro del X el programa corre,
> > > cuento
> > > > > lo
> > > > > >> ejecuto desde una consola, u otra sesion
> > > telnet o
> > > > > ssh
> > > > > >> manda el siguiente error:
> > > > > >>
> > > > > >> Segmentation fault
> > > > > >>
> > > > > >> como le hago, necesito correrlo desde
> telnet
> > > o
> > > > > sesion
> > > > > >> ssh?
> > > > > >
> > > > > > Muy interesante, especialmente porque
> parece
> 
=== message truncated ===


__________________________________
Do you Yahoo!?
The New Yahoo! Shopping - with improved product search
http://shopping.yahoo.com
_______________________________________________
Ayuda mailing list
Ayuda en linux org mx
Para salir de la lista: http://mail.linux.org.mx/mailman/listinfo/ayuda/



[Hilos de Discusión] [Fecha] [Tema] [Autor]