<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:st1="urn:schemas-microsoft-com:office:smarttags" xmlns="http://www.w3.org/TR/REC-html40">

<head>
<meta http-equiv=Content-Type content="text/html; charset=iso-8859-1">
<meta name=Generator content="Microsoft Word 11 (filtered medium)">
<!--[if !mso]>
<style>
v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style>
<![endif]--><o:SmartTagType
 namespaceuri="urn:schemas-microsoft-com:office:smarttags" name="PersonName"/>
<!--[if !mso]>
<style>
st1\:*{behavior:url(#default#ieooui) }
</style>
<![endif]-->
<style>
<!--
 /* Font Definitions */
 @font-face
        {font-family:Tahoma;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
 /* Style Definitions */
 p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman";}
a:link, span.MsoHyperlink
        {color:#808040;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {color:purple;
        text-decoration:underline;}
span.EstiloCorreo17
        {mso-style-type:personal-reply;
        font-family:Arial;
        color:navy;}
@page Section1
        {size:595.3pt 841.9pt;
        margin:70.85pt 3.0cm 70.85pt 3.0cm;}
div.Section1
        {page:Section1;}
-->
</style>

</head>

<body lang=ES link="#808040" vlink=purple>

<div class=Section1>

<p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:navy'>Hola </span></font><font size=2
face=Tahoma><span style='font-size:10.0pt;font-family:Tahoma'>D1e6o.<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 face=Tahoma><span style='font-size:10.0pt;
font-family:Tahoma'><o:p> </o:p></span></font></p>

<p class=MsoNormal><font size=2 face=Tahoma><span style='font-size:10.0pt;
font-family:Tahoma'>Una de las formas para hacerlo:<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 face=Tahoma><span style='font-size:10.0pt;
font-family:Tahoma'>Si no sabes que tipo de estructura vas a guardar en el
puntero, puedes declarar un puntero void.<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 face=Tahoma><span style='font-size:10.0pt;
font-family:Tahoma'>Al fin y al cabo un puntero es un int que apunta a una
direccion de memoria, el problema es que no sabes la estructura interna de un
puntero para poder modificarlo, con lo que se debera hacer una conversión temporal
para modificar sus datos.<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 face=Tahoma><span style='font-size:10.0pt;
font-family:Tahoma'><o:p> </o:p></span></font></p>

<p class=MsoNormal><font size=2 face=Tahoma><span style='font-size:10.0pt;
font-family:Tahoma'>Veamos un ejemplo:<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 face=Tahoma><span style='font-size:10.0pt;
font-family:Tahoma'><o:p> </o:p></span></font></p>

<p class=MsoNormal style='text-autospace:none'><font size=2 color=blue
face="Courier New"><span style='font-size:10.0pt;font-family:"Courier New";
color:blue'>#include</span></font><font size=2 face="Courier New"><span
style='font-size:10.0pt;font-family:"Courier New"'> <font color="#a31515"><span
style='color:#A31515'><stdio.h><o:p></o:p></span></font></span></font></p>

<p class=MsoNormal style='text-autospace:none'><font size=2 color=blue
face="Courier New"><span lang=EN-GB style='font-size:10.0pt;font-family:"Courier New";
color:blue'>#include</span></font><font size=2 face="Courier New"><span
lang=EN-GB style='font-size:10.0pt;font-family:"Courier New"'> <font
color="#a31515"><span style='color:#A31515'><stdlib.h><o:p></o:p></span></font></span></font></p>

<p class=MsoNormal style='text-autospace:none'><font size=2 color="#a31515"
face="Courier New"><span lang=EN-GB style='font-size:10.0pt;font-family:"Courier New";
color:#A31515'><o:p> </o:p></span></font></p>

<p class=MsoNormal style='text-autospace:none'><font size=2 color=blue
face="Courier New"><span lang=EN-GB style='font-size:10.0pt;font-family:"Courier New";
color:blue'>typedef</span></font><font size=2 face="Courier New"><span
lang=EN-GB style='font-size:10.0pt;font-family:"Courier New"'> <font
color=blue><span style='color:blue'>struct</span></font> <font color="#010001"><span
style='color:#010001'>enteros</span></font>{<font color=blue><span
style='color:blue'>int</span></font> <font color="#010001"><span
style='color:#010001'>num1</span></font>,<font color="#010001"><span
style='color:#010001'>num2</span></font>;} <font color="#010001"><span
style='color:#010001'>tipoent</span></font>; <o:p></o:p></span></font></p>

<p class=MsoNormal style='text-autospace:none'><font size=2 color=blue
face="Courier New"><span style='font-size:10.0pt;font-family:"Courier New";
color:blue'>typedef</span></font><font size=2 face="Courier New"><span
style='font-size:10.0pt;font-family:"Courier New"'> <font color=blue><span
style='color:blue'>struct</span></font> <font color="#010001"><span
style='color:#010001'>objeto</span></font> {<font color=blue><span
style='color:blue'>char</span></font> <font color="#010001"><span
style='color:#010001'>tipo</span></font>; <font color="#010001"><span
style='color:#010001'>enteros</span></font> *<font color="#010001"><span
style='color:#010001'>obj1</span></font>;} <font color="#010001"><span
style='color:#010001'>tipoobj</span></font>; <o:p></o:p></span></font></p>

<p class=MsoNormal style='text-autospace:none'><font size=2 face="Courier New"><span
style='font-size:10.0pt;font-family:"Courier New"'><o:p> </o:p></span></font></p>

<p class=MsoNormal style='text-autospace:none'><font size=2 color=blue
face="Courier New"><span style='font-size:10.0pt;font-family:"Courier New";
color:blue'>int</span></font><font size=2 face="Courier New"><span
style='font-size:10.0pt;font-family:"Courier New"'> <font color="#010001"><span
style='color:#010001'>main</span></font>() <o:p></o:p></span></font></p>

<p class=MsoNormal style='text-autospace:none'><font size=2 face="Courier New"><span
style='font-size:10.0pt;font-family:"Courier New"'>{<o:p></o:p></span></font></p>

<p class=MsoNormal style='text-autospace:none'><font size=2 face="Courier New"><span
style='font-size:10.0pt;font-family:"Courier New"'>      <font color=blue><span
style='color:blue'>void</span></font> *<font color="#010001"><span
style='color:#010001'>uno</span></font>;                    // Declaracion de
un puntero ‘uno’ sin tipo definido<o:p></o:p></span></font></p>

<p class=MsoNormal style='text-autospace:none'><font size=2 face="Courier New"><span
style='font-size:10.0pt;font-family:"Courier New"'>      <font color="#010001"><span
style='color:#010001'>tipoent</span></font> *<font color="#010001"><span
style='color:#010001'>dos</span></font>;                // Declarar un puntero ‘dos’
de tipo ‘tipoent’<o:p></o:p></span></font></p>

<p class=MsoNormal style='text-autospace:none'><font size=2 face="Courier New"><span
style='font-size:10.0pt;font-family:"Courier New"'><o:p> </o:p></span></font></p>

<p class=MsoNormal style='text-autospace:none'><font size=2 face="Courier New"><span
style='font-size:10.0pt;font-family:"Courier New"'>      <font color=green><span
style='color:green'>//objeto objprinc;<o:p></o:p></span></font></span></font></p>

<p class=MsoNormal style='text-autospace:none'><font size=2 face="Courier New"><span
style='font-size:10.0pt;font-family:"Courier New"'>      <font color="#010001"><span
style='color:#010001'>dos</span></font>= <font color=blue><span
style='color:blue'>new</span></font>(<font color="#010001"><span
style='color:#010001'>enteros</span></font>);           // Asignar memoria a ‘dos’<o:p></o:p></span></font></p>

<p class=MsoNormal style='text-autospace:none'><font size=2 face="Courier New"><span
style='font-size:10.0pt;font-family:"Courier New"'>      <font color="#010001"><span
style='color:#010001'>dos</span></font>-><font color="#010001"><span
style='color:#010001'>num1</span></font>=5;                 // Rellenar la
estructura<o:p></o:p></span></font></p>

<p class=MsoNormal style='text-autospace:none'><font size=2 face="Courier New"><span
style='font-size:10.0pt;font-family:"Courier New"'>      <font color="#010001"><span
style='color:#010001'>dos</span></font>-><font color="#010001"><span
style='color:#010001'>num2</span></font>=3;<o:p></o:p></span></font></p>

<p class=MsoNormal style='text-autospace:none'><font size=2 face="Courier New"><span
style='font-size:10.0pt;font-family:"Courier New"'>      <font color="#010001"><span
style='color:#010001'>uno</span></font> = <font color="#010001"><span
style='color:#010001'>dos</span></font>;                   // el puntero ‘uno’
apunta a ‘dos’, ahora tienen la misma direccion de memoria<o:p></o:p></span></font></p>

<p class=MsoNormal style='text-autospace:none'><font size=2 face="Courier New"><span
style='font-size:10.0pt;font-family:"Courier New"'>      ((<font color="#010001"><span
style='color:#010001'>tipoent</span></font>*)<font color="#010001"><span
style='color:#010001'>uno</span></font>)-><font color="#010001"><span
style='color:#010001'>num1</span></font> = 10;  // modificamos uno con la
estructura de ‘tipoent’ (‘uno’ sigue siendo void)<o:p></o:p></span></font></p>

<p class=MsoNormal style='text-autospace:none'><font size=2 face="Courier New"><span
style='font-size:10.0pt;font-family:"Courier New"'>                                   //
Ahora ‘dos->num1’ = 10.<o:p></o:p></span></font></p>

<p class=MsoNormal style='text-autospace:none'><font size=2 face="Courier New"><span
style='font-size:10.0pt;font-family:"Courier New"'>      <o:p></o:p></span></font></p>

<p class=MsoNormal style='text-autospace:none'><font size=2 face="Courier New"><span
style='font-size:10.0pt;font-family:"Courier New"'><o:p> </o:p></span></font></p>

<p class=MsoNormal style='text-autospace:none'><font size=2 face="Courier New"><span
style='font-size:10.0pt;font-family:"Courier New"'>      <font color="#010001"><span
style='color:#010001'>printf</span></font>(<font color="#a31515"><span
style='color:#A31515'>"Fin del programa\n"</span></font>);<o:p></o:p></span></font></p>

<p class=MsoNormal style='text-autospace:none'><font size=2 face="Courier New"><span
style='font-size:10.0pt;font-family:"Courier New"'>      <font color="#010001"><span
style='color:#010001'>system</span></font>(<font color="#a31515"><span
style='color:#A31515'>"pause"</span></font>);<o:p></o:p></span></font></p>

<p class=MsoNormal style='text-autospace:none'><font size=2 face="Courier New"><span
style='font-size:10.0pt;font-family:"Courier New"'>      <font color=blue><span
style='color:blue'>return</span></font> (0);<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 face="Courier New"><span style='font-size:10.0pt;
font-family:"Courier New"'>}<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 face="Courier New"><span style='font-size:10.0pt;
font-family:"Courier New"'><o:p> </o:p></span></font></p>

<p class=MsoNormal><font size=2 face="Courier New"><span style='font-size:10.0pt;
font-family:"Courier New"'>Espero haberte dado alguna idea de cómo poder
afrontar el problema.<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 face="Courier New"><span style='font-size:10.0pt;
font-family:"Courier New"'><o:p> </o:p></span></font></p>

<p class=MsoNormal><font size=2 face="Courier New"><span style='font-size:10.0pt;
font-family:"Courier New"'>Solo recuerda que un puntero es tan solo una
direccion de memoria guardada en un entero (el tipo de puntero, solo es usado
para poner un offset sobre esa direccion de memoria y tener unos indices de
desplazamiento que usara el compilador, y de paso resulta mas facil e intuitivo
programar con estructuras que con offsets como en el lenguaje ensamblador)</span></font><font
size=2 color=navy face=Arial><span style='font-size:10.0pt;font-family:Arial;
color:navy'><o:p></o:p></span></font></p>

<div>

<p class=MsoNormal align=right style='text-align:right'><font size=2
color=navy face=Arial><span style='font-size:10.0pt;font-family:Arial;
color:navy'><o:p> </o:p></span></font></p>

<p class=MsoNormal align=right style='text-align:right'><font size=2
color=navy face=Arial><span style='font-size:10.0pt;font-family:Arial;
color:navy'><o:p> </o:p></span></font></p>

<p class=MsoNormal align=right style='text-align:right'><font size=2
color=navy face=Arial><span style='font-size:10.0pt;font-family:Arial;
color:navy'><o:p> </o:p></span></font></p>

<p class=MsoNormal align=right style='text-align:right'><font size=2
color=navy face=Arial><span style='font-size:10.0pt;font-family:Arial;
color:navy'>.: ZeLion :.</span></font><o:p></o:p></p>

</div>

<div style='border:none;border-left:solid blue 1.5pt;padding:0cm 0cm 0cm 4.0pt'>

<div>

<div class=MsoNormal align=center style='text-align:center'><font size=3
face="Times New Roman"><span style='font-size:12.0pt'>

<hr size=2 width="100%" align=center tabindex=-1>

</span></font></div>

<p class=MsoNormal><b><font size=2 face=Tahoma><span style='font-size:10.0pt;
font-family:Tahoma;font-weight:bold'>De:</span></font></b><font size=2
face=Tahoma><span style='font-size:10.0pt;font-family:Tahoma'>
cconclase-bounces@listas.conclase.net
[mailto:cconclase-bounces@listas.conclase.net] <b><span style='font-weight:
bold'>En nombre de </span></b>D1e6o!<br>
<b><span style='font-weight:bold'>Enviado el:</span></b> martes, 18 de
septiembre de 2007 0:15<br>
<b><span style='font-weight:bold'>Para:</span></b> <st1:PersonName w:st="on"><st1:PersonName
 ProductID="Lista de correo" w:st="on">Lista de correo</st1:PersonName> sobre C
 y C++</st1:PersonName><br>
<b><span style='font-weight:bold'>Asunto:</span></b> [Bulk] [C con Clase] Ayuda
sobre estructuras, como defino un puntero?</span></font><o:p></o:p></p>

</div>

<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'><o:p> </o:p></span></font></p>

<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'>Hola gente, ando con un problema con estructuras:<br>
<br>
Quería asignar una lista pero l cual puede contener distintos de objetivo en su
enlace como ven:<br>
<br>
nodo debe apuntar a otro nodo que puede ser de uno de los siguietes: <br>
<br>
nodo:<br>
-int enteroa<br>
-int enterob<br>
<br>
nodo:<br>
-float floata<br>
-char *comentario<br>
<br>
etc etc;<br>
<br>
además también está la posibilidad de que sea otro nodo de mismo tipo.<br>
<br>
El problema es que no se como debería asignar los tipos de punteros... <br>
<br>
#include <stdio.h><br>
<br>
typedef struct objeto {char tipo; puntero *obj1; puntero *obj2;} tipoobj; //aca
esta mi primer problema, como defino un puntero que pueda apuntar a cualquier
tipo de dato??<br>
typedef struct enteros{int num1,num2;} tipoent; <br>
typedef struct otrotipo {int num1, char comentario[20];}tipootro;<br>
<br>
typedef tipoobj *objprinc;<br>
typedef tipofra *fraprinc;<br>
<br>
int main() <br>
{<br>
tipoobj *uno;<br>
tipofra *dos;<br>
//objeto objprinc;<br>
uno=(tipoobj *) malloc(sizeof(tipoobj));<br>
dos=(tipoent *) malloc(sizeof(tipoent));<br>
uno->operac='+';<br>
dos->num1=5;<br>
dos->num2=3;<br>
printf("Fin del programa\n");<br>
return (0);<br>
}<br>
<br>
Lo que quisiera es lograr apuntar por uno a una variable del tipo tipoent,
tipootro o del mismo tipoobj o otros tipos que defina mas adelante sin
problemas... e incluso hasta a una variable del tipo char, supongo que no hay problemas con esto por ocupar un puntero lo mismo para cualquier tipo pero.. como?
Alguien tiene un ayudita? <br>
<br>
Gracias y saludos!<o:p></o:p></span></font></p>

</div>

</div>

</body>

</html>