<div><div>//Hola estimado un saludo.</div><div>//No hay novatos, te diría que somos todos aprendices</div><div>//en mi caso llevo tanto tiempo aprendiendo que ya me olvide de cuantos</div><div>//Tienes razón en que no se puede decir que no porque no</div>
<div>//Para ello -prueba y error- hasta saber porque??</div><div>//Aquí te dejo un ejemplo que tal vez pueda ayudar a entender, basado en lo //que tu tan gentilmente has acercado.</div><div><br></div><div>#include <iostream></div>
<div>using namespace std;</div><div><br></div><div>int main()</div><div>{</div><div>    //Establecemos la estructura como tu lo habías hecho</div><div>    //Con un pequeño aditamento</div><div>    cout << "PRIMER EJEMPLO" << endl;</div>
<div>    struct</div><div>    {</div><div>        char nombre[8];</div><div>        char  apellido[8];</div><div>    } alumno2 = {"yolmer","rosales"}, alumno = {"yolmer","rosales"};</div>
<div><br></div><div>    //La mostramos</div><div>    cout << alumno2.nombre << endl;</div><div>    cout << alumno2.apellido << endl;</div><div><br></div><div>    cout << alumno.nombre << endl;</div>
<div>    cout << alumno.apellido << endl << endl;</div><div><br></div><div>    //Se puede observar que la estructura es una pero le hemos asignado</div><div>    //dos nombres distintos.</div><div>    //Pero la estructura sigue siendo una sola (casi un typedef)</div>
<div>    //No hemos realizado el alumno2=alumno que sería igual a la</div><div>    //Inicialización de la estructura superior por una cuestión puramente didactica.</div><div><br></div><div>    /*Veamos el mismo ejemplo con la asignación igual*/</div>
<div>    cout << "SEGUNDO EJEMPLO" << endl;</div><div>    struct</div><div>    {</div><div>        char nombre[8];</div><div>        char  apellido[8];</div><div>    } alumnob2, alumnob = {"yolmer","rosales"};</div>
<div><br></div><div>    alumnob2 = alumnob;</div><div><br></div><div>    //La mostramos</div><div>    cout << alumnob2.nombre << endl;</div><div>    cout << alumnob2.apellido << endl;</div><div><br>
</div><div>    cout << alumnob.nombre << endl;</div><div>    cout << alumnob.apellido << endl << endl;</div><div><br></div><div>    //Parece seguir funcionando.</div><div><br></div><div>    cout << "TERCER EJEMPLO" << endl;</div>
<div>    //Veamos por último la propuesta</div><div>    struct</div><div>    {</div><div>        char nombre[8];</div><div>        char  apellido[8];</div><div>    } alumnoc = {"yolmer","rosales"};</div>
<div><br></div><div>    struct</div><div>    {</div><div>        char nombre[8];</div><div>        char  apellido[8];</div><div>    } alumnoc2;</div><div><br></div><div>    //La asignación igual no funcionará pues son dos estructuras diferentes</div>
<div>    //Puede ser que a simple vista tengan nombres parecidos y el mismo formato de datos</div><div>    //Pero son dos estructuras separadas, que ocupan distintos espacios en memoria y aun</div><div>    //cuando pudieran tener el mismo contenido, pues se podría copiar una estructura a la</div>
<div>    //otra mediante strcpy , si borraras el contenido de una, aun tendrías asequible</div><div>    //el contenido de la otra.</div><div><br></div><div>    //si podrías hacer la asignación mediante strcpy, en cada campo de la estructura</div>
<div>    //ejemplo</div><div>    strcpy(alumnoc2.nombre, alumnoc.nombre);</div><div>    strcpy(alumnoc2.apellido, alumnoc.apellido);</div><div><br></div><div>    cout << alumnoc2.nombre << endl;</div><div>    cout << alumnoc2.apellido << endl;</div>
<div><br></div><div>    //Fundamental es... creo humildemente... debemos entender el funcionamiento para el</div><div>    //que fueron programadas las distintas rutinas y que el programador de ellas nos han</div><div>    //permitido una flexibilidad enorme pero hasta el punto de lo desarrollado.</div>
<div><br></div><div>    //por último esta línea</div><div>    //alumnoc2=alumnoc;</div><div>    //Enviaría un error</div><div>    //Porque aunque las dos estructuras tienen el mismo aspecto, no son realmente equivalentes.</div>
<div>    return 0;</div><div>}</div></div><div><br></div><div>Atentamente.</div><div><br></div><div><br></div><div>Elinv.</div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div>
<br></div><div><br></div><br><br><div class="gmail_quote">El 21 de diciembre de 2011 23:48, Yolmer Rosales <span dir="ltr"><<a href="mailto:yolmer.rosales@gmail.com">yolmer.rosales@gmail.com</a>></span> escribió:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hola amigos.-<br><br>Hace poco le estaba ayudando a un novato con el "c/c++" y le surgio una duda. <br><br>Yo le dije --No se puede porque no y punto. Sin embargo me da pena contestar así. Por lo tanto le sabré agradecer si alguien me explica como si tuviera 4 años por que no se puede realizar la asignación de estos tipos<br>

<br> struct <br>  {<br>         char nombre[8];<br>         char  apellido[8];<br>         } alumno = {"yolmer","rosales"};<br>  struct <br>  {<br>         char nombre[8];<br>         char  apellido[8];<br>

         }alumno2 ;<br> <br>alumno2 = alumno;<br><br>Ya se que la forma correcta es así<br><br> struct <br>  {<br>         char nombre[8];<br>         char  apellido[8];<br>         }alumno2, alumno = {"yolmer","rosales"};<br>

<br>   alumno2 = alumno;<br><br><br>pero no lo entiendo. :-)<br>
<br>_______________________________________________<br>
Lista de correo Cconclase <a href="mailto:Cconclase@listas.conclase.net">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>