elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Rompecabezas de Bitcoin, Medio millón USD en premios


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Duda con estructuras (struct)
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Duda con estructuras (struct)  (Leído 2,070 veces)
alexis33de

Desconectado Desconectado

Mensajes: 56


Ver Perfil
Duda con estructuras (struct)
« en: 28 Agosto 2010, 02:59 am »

Hola estaba leyendo un libro de estructuras , ya q no me enseñaron eso  :-( y lo estaba viendo por mi propia cuenta  ;) y  este tiene un ejemplo de struct , en el que dice q la asignacion x=y es correcta y x=z es incorrecta (del ejercicio q coloco en la parte inferior), mi duda es de q manera se puede arreglar el codigo para x = z funcione. ::) Pues la primera solucion q le pondria seria ponerle un nombre a las struct  :rolleyes:, ahora no se si esa sea la correcta o exista otras formas para solucionarlo. Pongo este tema ya q talvez para mi sea una forma y en realidad sea otra, si alguno de ustedes me lo explicara se lo agradeceria XD SALUDOS
Ejercicio:
Código
  1. struct
  2.  {
  3.   int i;
  4.   double j;
  5.  } x,y;
  6.  
  7. struct
  8.  {
  9.  int i;
  10.  double j;
  11.  }z;


En línea

Littlehorse
All the world's a stage
Moderador
***
Desconectado Desconectado

Mensajes: 2.714


Nie Dam Sie


Ver Perfil WWW
Re: Duda con estructuras (struct)
« Respuesta #1 en: 28 Agosto 2010, 03:41 am »

Los miembros no importan, pueden ser los mismos y la misma cantidad, pero si son distintas estructuras, estos pueden estar alineados de distinta forma, por lo tanto la asignación entre distintos tipos de estructura esta prohibida.

En cuanto a lo de los nombres, por mas que tuviesen el mismo nombre, son distintos tipos, para el compilador van a ser dos cosas completamente distintas.

Esto podría funcionar:

Código
  1. memcpy(&z,&x,sizeof(x));
  2.  

pero eso no quiere decir que sea correcto, invocaría comportamiento indefinido cuando menos te lo esperes debido a la posible diferencia en la alineación de los elementos de ambas estructuras. Lo que hay que tener claro es que son dos tipos distintos.
Si tenes dos estructuras completamente distintas, pero estas contienen los mismos elementos, entonces lo ideal es que utilices una misma estructura y declarar ambas bajo la misma entidad.

Por otro lado, si estas en C++, podes sobrecargar operadores u definir constructores adecuados. Igualmente dependerá del caso, en lo que respecta al ejemplo solo seria trabajo innecesario.

Saludos


En línea

An expert is a man who has made all the mistakes which can be made, in a very narrow field.
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Duda C Struct y función.
Programación C/C++
tvirus 6 5,429 Último mensaje 19 Octubre 2010, 23:02 pm
por tvirus
Proyecto Arreglo con estructuras (struct) En C++
Programación C/C++
Antarezx 0 8,066 Último mensaje 26 Septiembre 2011, 00:26 am
por Antarezx
Pilas C++ usando Estructuras (STRUCT) « 1 2 »
Programación C/C++
charmedever 13 14,022 Último mensaje 21 Noviembre 2011, 21:11 pm
por x64core
Duda sobre lista de un typedef struct
Programación C/C++
Ccomplica 1 1,469 Último mensaje 1 Noviembre 2013, 22:02 pm
por m@o_614
Duda con respecto a struct dentro de struct
Programación C/C++
Naimaderis 1 2,368 Último mensaje 2 Abril 2017, 00:10 am
por ivancea96
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines