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

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

Re: your mail



On Tue, 11 May 1999, Eloy Espozo Espinoza wrote:

> holax de nuevo
> 
> 	tons me explico mejor: estoy tratando de hacer un programa que lea
> un mensaje de distintos procesos, el codigo es como el que sigue:
> 
> #include <stdio.h>
> 
> void algo()
> {
> 	char *cadena;
> 	scanf("%s",&cadena);
> 	printf("Se leyo: %s",cadena);
> }
> 
> main()
> {
> 	algo();
> 	if(fork()==0)
> 	{
> 		algo();
> 		exit(1);
> 	}
> 	printf("Listo");
> 	exit(0);
> }

Hola,

Lo que no entiendo es como te puede funcionar la función algo(). Más que
nada por dos cosas:

1) cadena es un char*, no un array y por lo tanto no tienes memoria
reservada para el array. (Allí le llamais arreglo?).

2) En el scanf, pasas la _dirección_ del puntero cuando se debería pasar
la dirección de la primera casilla del array, es decir, sólo el puntero.

Con todo esto, al ejecutar algo(), te debería dar un "segmentation fault"
o un "bus error"... no sé, curioso...

Saludos.

-----------------------------------------------------------------------------
Xavier Gonzalez Onrubia			E-Mail:   	 is04392 en salleURL edu
					WWW: http://www.salleURL.edu/~is04392
					Linux User no.66357

"Programming today is a race between software engineers striving to build
   bigger and better idiot-proof programs, and the universe trying to produce
   bigger and better idiots.
				So far the universe is winning." - Rich Cook



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