JCPrata Posted May 26, 2006 at 04:53 PM Report Share #29610 Posted May 26, 2006 at 04:53 PM 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 More sharing options...
TheDark Posted May 27, 2006 at 12:57 AM Report Share #29667 Posted May 27, 2006 at 12:57 AM 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 More sharing options...
JCPrata Posted May 27, 2006 at 05:25 PM Author Report Share #29709 Posted May 27, 2006 at 05:25 PM 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 More sharing options...
TheDark Posted May 27, 2006 at 09:07 PM Report Share #29736 Posted May 27, 2006 at 09:07 PM Ali onde está <xType*> estás a dizer o tipo de dados que queres que o compilador interprete. Se utilizares uma instância do tipo já não vai ser um tipo, e irá dar erro ao compilar. Desaparecido. Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now