Article View: es.comp.os.linux.programacion
Article #8475Re: problema con listas enlazadas en C
From: Javier P�rez
Date: Tue, 05 Nov 2002 15:35
Date: Tue, 05 Nov 2002 15:35
54 lines
2644 bytes
2644 bytes
"Oscar" <lucense@hotmail.com> escribi� en el mensaje
news:7ae3d00c.0211041935.2a37bb27@posting.google.com...
> t_list funcion(t_list l, t_elemento e)
> {
> list_anhade(&l, e);
> return l;
> }
> pero no funciona, �sabeis porque o como tendria que hacerlo?. No se si me
> explique bien... Gracias por vuestra ayuda.
Lo que se dice funcionar, funciona... otra cosa es que no haga lo que
pretendes ;)
"&l" es la direcci�n de la variable "l", que es local (un dato de la pila
concretamente),
por lo que "&l" referencia a una variable local, NO a la variable externa
que le pasaste
por par�metro... es as� de simple.
Por lo que si quieres usar dentro de la funcion la direcci�n de una
variable, debes
pas�rsela como par�metro (la direcci�n).
Ejemplo:
Queremos una funci�n que sume 2 a la variable que le pasemos por par�metro:
---1---
// Esto es lo que "hace" tu funcion... ;)
// No hace nada, ya que a�ade 2 a la variable local
void suma2(int a)
{
a+=2;
}
int entero = 0;
suma2(entero); // entero seguir� valiendo 0
---2---
// Y esto es lo que quieres hacer...
void suma2(int *a)
{
*a+=2;
}
int entero=0;
suma2(&entero); // ahora entero vale 2
As� que, como te ha explicado Lepton, la forma correcta ser�a:
t_list funcion(t_list *l, t_elemento e) {
list_anhade(l,e);
return l;
}
ahora s� le pasas la direcci�n correcta a la funci�n "list_anhade".
Saludos
---
Javier P�rez
Technical Details
Message-ID:
<aq8otf$iea$1@localhost.localdomain>Path:
arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!newsfeed.stanford.edu!news-spur1.maxwell.syr.edu!news.maxwell.syr.edu!newsfeed.icl.net!newsfeed.fjserv.net!newsfeed.icl.net!newsfeed.fjserv.net!proxad.net!proxad.net!news-hub.cableinet.net!blueyonder!marmolejo.escomposlinux.org!not-for-mailReferences:
<7ae3d00c.0211041935.2a37bb27@posting.google.com>Show Full Headers
Complete Article Headers
X-Google-Language: SPANISH,ASCII X-Google-Thread: f86c8,f253934d9c0983ae X-Google-Attributes: gidf86c8,public X-Google-ArrivalTime: 2002-11-05 07:42:42 PST Path: arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!newsfeed.stanford.edu!news-spur1.maxwell.syr.edu!news.maxwell.syr.edu!newsfeed.icl.net!newsfeed.fjserv.net!newsfeed.icl.net!newsfeed.fjserv.net!proxad.net!proxad.net!news-hub.cableinet.net!blueyonder!marmolejo.escomposlinux.org!not-for-mail From: "Javier P�rez" <pidemelo@ytelo.doy> Newsgroups: es.comp.os.linux.programacion Subject: Re: problema con listas enlazadas en C Date: Tue, 5 Nov 2002 16:35:48 +0100 Organization: Ecolnet Lines: 57 Message-ID: <aq8otf$iea$1@localhost.localdomain> References: <7ae3d00c.0211041935.2a37bb27@posting.google.com> NNTP-Posting-Host: 212.166.88.182 X-Trace: localhost.localdomain 1036510960 18890 212.166.88.182 (5 Nov 2002 15:42:40 GMT) X-Complaints-To: newsmaster@marmolejo.escomposlinux.org NNTP-Posting-Date: Tue, 5 Nov 2002 15:42:40 +0000 (UTC) X-Priority: 3 X-MSMail-Priority: Normal X-Newsreader: Microsoft Outlook Express 5.50.4920.2300 X-MimeOLE: Produced By Microsoft MimeOLE V5.50.4920.2300