Qual o tamanho do array abaixo e como você acha que ele é armazenado?
short a[2][3];Inicialize seu array com um loop como:
for (i=0;i<2;i++)
for (j=0;j<3;j++)
a[i][j] = 2+i-j;
e veja o que a função dump (da aula passada) mostra
Use a função dump para ver como a estrutura abaixo é armazenada:
struct X {
int a;
int b;
short c;
int d;
} x;
Experimente inicializá-la com valores facilmente "reconhecíveis" na memória, como, por exemplo, 0xa1a2a3a4.
(Sim, existe um "buraco". Você sabe explicá-lo?)
Como os tipos abaixo são organizados na memória?
Use a função dump para conferir
suas respostas. Imprima também o tamanho dessas estruturas (sizeof).
Tente explicar esses tamanhos especialmente para as unions!
(A função dump deve ser usada apenas para conferência!
Antes de usá-la escreva sua resposta.)
struct X1 {
char c1;
int i;
char c2;
};
struct X2 {
int i;
char c;
};
struct X3 {
int i;
char c1;
char c2;
};
struct X4 {
struct X2 x;
char c;
};
struct X5 {
char c1;
char c2;
char c3;
};
struct X6 {
short s1;
int i;
char c[3];
short s2;
};
union U1 {
int i;
char c[5];
};
union U2 {
short s;
char c[5];
};
Você pode usar este teste para verificar suas respostas...