Jump to content

Duvida no cast de Struct para char[]


JCPrata

Recommended Posts

Boas,

Tenho aqui uma duvida na conversao de uma estrutura para um array de bytes. Ja tentei cast explicitos e nao funciona.

Struct x{

  int a,

  int b,

};

char[] xArray = (char[])x;

Eu queria qualquer coisa deste genero, em que o array de char's/byte's neste caso iria ficar com oito posições ocupadas, devido a um inteiro ocupar quatro bytes. E claro depois também precisava de um cast ao contrario, passar um array de char's para uma Struct.

Obrigado

Link to comment
Share on other sites

Em 1º lugar, estás a declarar mal a variável xArray. Deveria ser:

char xArray[](...)

Depois, o tipo de cast que pretendes só pode ser feito entre apontadores. Por exemplo:

struct xType {
int a;
int b;
};

void main() {
xType x;

x.a=10;
x.b=20;

char *xArray = reinterpret_cast<char*>(&x);

xType *x2 = reinterpret_cast<xType*>(xArray);
}

suponho que já faz o que pretendes. Vê este artigo sobre type casting 😁

Desaparecido.

Link to comment
Share on other sites

Obrigado, pelo menos a compilação não gera qualquer tipo de erro, ainda tenho de testar isto melhor.

Grande site o de C++  😛   nao conhecia, mas fica ja nos meus favoritos 😉

xType *x2 = reinterpret_cast<xType*>(xArray)

Agora neste exemplo, se em vez de eu colocar xType*, colocar uma instancia xType, sera que ha algum problema? (Bem o melhor e compilar)

Abraço

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.