You do not have permission to delete messages in this group
Copy link
Report message
Show original message
Either email addresses are anonymous for this group or you need the view member email addresses permission to view the original message
to ios-des...@googlegroups.com
Hola,
me he dado cuenta de un curioso problema que me ha surgido manejando
una variable tipo struct. El escenario es el siguiente:
- Tengo una estructura de la siguiente forma:
typedef struct s_ejemplo
{
int a;
int b;
int c;
}Ejemplo;
- Esta estructura es compartida por dos aplicaciones que se comunican
mediante sockets UDP. Digamos que la aplicación A (appA) le envía un
array de esta estructura a la aplicación B (appB).
- La appA está desarrollada en visual c++ mientras que la appB es en
iOS, concretamente para iPad.
- Cuando pruebo el funcionamiento de la aplicación con el simulador
iOS, esta recibe correctamente la estructura enviada por la appA.
Y bien, el problema viene cuando pruebo la appB en el dispositivo real
iPad. Entonces lo que ocurre es que la variable "int c" es leida de
forma incorrecta, es como si hubiera "basura".
El funcionamiento lógico de enviar y recibir datos, así como leerlos,
parece el correcto. Pero la pregunta principal es, ¿por qué esa
diferencia entre el funcionamiento del simulador iOS y el dispositivo
real?
La solución temporal que le he dado es incluir una varible tipo "int
basura;" en el último elemento del Struct, de esa manera la variable
"int c" es leída correctamente.
Saludos,
Jose Ramon
Jorge Bernal
unread,
Feb 2, 2013, 1:38:03 PM2/2/13
Reply to author
Sign in to reply to author
Forward
Sign in to forward
Delete
You do not have permission to delete messages in this group
Copy link
Report message
Show original message
Either email addresses are anonymous for this group or you need the view member email addresses permission to view the original message
to ios-des...@googlegroups.com
No se explicarlo con detalle, pero creo que esta relacionado con la
forma en que el compilador alinea los structs internamente para que
tengan un tamaño potencia de 2.