Falsa alarma, se han arreglado otros errores, pero este sigue ahi.<br><br><div class="gmail_quote">2011/6/1 vicente lozano <span dir="ltr"><<a href="mailto:vicentelozano@gmail.com">vicentelozano@gmail.com</a>></span><br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">Joder, solucionado.<div><br></div><div>En el modulo listas.c faltaba #include <stdlib.h>.... me encantan los modulos que nos dan para trabajar sobre ellos.....</div>
<div><br></div><div>Gracias a todos, un saludo!<div><div></div><div class="h5"><br>
<br><div class="gmail_quote">2011/5/31 vicente lozano <span dir="ltr"><<a href="mailto:vicentelozano@gmail.com" target="_blank">vicentelozano@gmail.com</a>></span><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

Hola Samuel,<div> </div><div> En primer lugar, muchas gracias por responder.<br><div> </div><div> Es un ELEMENTO, pero ELEMENTO es un puntero generico (<span style="border-collapse:collapse;font-family:arial, sans-serif;font-size:13px">typedef void *ELEMENTO;<span style="white-space:pre-wrap">) de ahi el casting en el malloc (</span></span><span style="border-collapse:collapse;font-family:arial, sans-serif;font-size:13px">= (void *) malloc (tamano)).</span></div>


<div><span style="border-collapse:collapse;font-family:arial, sans-serif;font-size:13px"><br></span></div><div><span style="border-collapse:collapse;font-family:arial, sans-serif;font-size:13px"> Creo que te referias a que si fuera un "no puntero" no tendria sentido el malloc, pero como ves en este caso no es asi, si no lo decias por eso, yo sigo sin ver el problema.</span></div>


<div><span style="border-collapse:collapse;font-family:arial, sans-serif;font-size:13px"><br></span></div><div><span style="border-collapse:collapse;font-family:arial, sans-serif;font-size:13px"> Por cierto, en el caso que da el error, ELEMENTO son cadenas, es decir se llamaria a la funcion:</span></div>


<div><span style="border-collapse:collapse;font-family:arial, sans-serif;font-size:13px"><br></span></div><div><span style="border-collapse:collapse;font-family:arial, sans-serif;font-size:13px">  LISTA miLista;</span></div>


<div><span style="border-collapse:collapse;font-family:arial, sans-serif;font-size:13px">  char* miCadena="0";</span></div><div><span style="border-collapse:collapse;font-family:arial, sans-serif;font-size:13px"> </span></div>


<div><span style="border-collapse:collapse;font-family:arial, sans-serif;font-size:13px"> </span><span style="border-collapse:collapse;font-family:arial, sans-serif;font-size:13px"> crear_unitaria_copiando (&miLista, miCadena, strlen(miCadena)*sizeof(char));</span></div>


<div><span style="border-collapse:collapse;font-family:arial, sans-serif;font-size:13px"><br></span></div><div><span style="border-collapse:collapse;font-family:arial, sans-serif;font-size:13px">Un saludo</span></div><div>

<div></div><div>
<div><br><br><div class="gmail_quote">2011/5/31 Samuel Díaz García <span dir="ltr"><<a href="mailto:samueldg@arcoscom.com" target="_blank">samueldg@arcoscom.com</a>></span><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">


Chico:<br>
<br>
¿Qué es el miembro "dato" de tu estructura "NODO"? ¿Un "ELEMENTO" o un "puntero a ELEMENTO"?<br>
<br>
Con eso creo que he respondido.<br>
<br>
Salu2<br>
<br>
vicente lozano escribió:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div></div><div>
Hola buenas, <br>
Estoy depurando un programa y me da un problema muy raro con la memoria.<br>
<br>
Hay una modulo listas.c que gestiona listas de elementos:<br>
<br>
typedef void *ELEMENTO;<br>
<br>
typedef struct nodo{<br>
ELEMENTO dato; struct nodo *siguiente; } NODO, *pNODO; <br>
typedef struct LISTA{<br>
pNODO primero, ultimo; int elementos; } LISTA, *pLISTA; <br>
<br>
En el cual usando la funcion:<br>
<br>
/**********************************************************************/<br>
void crear_unitaria_copiando (pLISTA pL, ELEMENTO e, int tamano)<br>
/**********************************************************************/<br>
{<br>
pL->primero = (pNODO) malloc (sizeof (NODO)); pL->ultimo = pL->primero; pL->primero->dato = (void *) malloc (tamano); memcpy (pL->primero->dato, e, tamano); pL->primero->siguiente = NULL; pL->elementos = 1; printf("LISTAS: Creada unitaria. %s->%s\n",e,pL->primero->dato);<br>



}<br>
<br>
<br>
Me da el siguiente problema:<br>
<br>
LISTAS: Creada unitaria. 0->0Sp<br>
<br>
Lo que pasamos como "e" es siempre una cadena "0", lo que a bajo nivel es -> [0][\0] pero lo que almacena es: [0] **** [\0] siendo * un numero aleatorio de caracteres aleatorios.<br>
<br>
Lo curioso es que esto solo ocurre en el primer uso de la funcion cuando se usan elementos pequeños 1-10 caracteres, y si se usan cadenas mas largas ocurre mas veces hasta que se estabiliza y funciona correctamente.<br>
<br>
Asumo que es un problema de que esta usando una zona de memoria extraña, pero no entiendo porque.<br>
<br>
A ver si algun sabio me puede echar una mano, si necesitais mas informacion decirmelo que no tengo ningun problema.<br>
<br>
Un saludo<br>
<br>
<br></div></div>
------------------------------------------------------------------------<br>
<br>
_______________________________________________<br>
Lista de correo Cconclase <a href="mailto:Cconclase@listas.conclase.net" target="_blank">Cconclase@listas.conclase.net</a><br>
<a href="http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net" target="_blank">http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net</a><br>
Bajas: <a href="http://listas.conclase.net/index.php?gid=2&mnu=FAQ" target="_blank">http://listas.conclase.net/index.php?gid=2&mnu=FAQ</a><br>
</blockquote>
<br>
-- <br>
   Samuel Díaz García<br>
    Director Gerente<br>
ArcosCom Wireless, S.L.U.<br>
<br>
CIF: B11828068<br>
c/ Romero Gago, 19<br>
Arcos de la Frontera<br>
11630 - Cadiz<br>
<br>
<a href="http://www.arcoscom.com" target="_blank">http://www.arcoscom.com</a><br>
<br>
mailto:<a href="mailto:samueldg@arcoscom.com" target="_blank">samueldg@arcoscom.com</a><br>
msn: <a href="mailto:samueldg@arcoscom.com" target="_blank">samueldg@arcoscom.com</a><br>
<br>
Móvil: 651 93 72 48<br>
Tlfn.: 956 70 13 15<br>
Fax:   956 70 34 83<br>
<br>
_______________________________________________<br>
Lista de correo Cconclase <a href="mailto:Cconclase@listas.conclase.net" target="_blank">Cconclase@listas.conclase.net</a><br>
<a href="http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net" target="_blank">http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net</a><br>
Bajas: <a href="http://listas.conclase.net/index.php?gid=2&mnu=FAQ" target="_blank">http://listas.conclase.net/index.php?gid=2&mnu=FAQ</a><br>
</blockquote></div><br></div></div></div></div>
</blockquote></div><br></div></div></div>
</blockquote></div><br>