Aqui va una solución que emplea el API de windows:struct A { long l; char c[4]; }HGLOBAL hpA; struct A *pA; HGLOBAL hpa void main() { hpa = GlobalAlloc( GPTR, 30000); pa=(struct A *pA)GlobalLock(hpa); }Esta forma funcionará solo porque el numero de bytes de cada elemento es divisor entero de 65536 que es el tamaño de un segmento de DOS. Si no fuera así deberías rellenar al estructura hasta el próximo divisor entero. pe. struct B{ char dato1[6]; long dato2; char dato3; }debeías rellenarlo como:struct B{ char dato1[6]; long dato2; char dato3; char relleno[5]; }
|