Ir para conteúdo
Fórum Script Brasil

AlexPocosC

Membros
  • Total de itens

    2
  • Registro em

  • Última visita

Tudo que AlexPocosC postou

  1. Muito Obrigado Jonathan, entendi perfeitamente. É que eu pensava que os campos eram armazenados na struct um depois do outro, sem espaçamentos...
  2. Olá pessoal, Sou novo aqui no fórum, então se estou cometendo alguma irregularidade, me notifiquem por favor. O meu problema é o seguinte: estou usando compilador Dev C++ versão 4.9.9.2 em Windows XP e o seguinte código não está fornecendo o resultado esperado: #include <dos.h> #include <stdlib.h> #include <stdio.h> #include <conio.h> #include <string.h> #include <time.h> typedef unsigned char byte; struct t_medicamento { char codigo[10]; int categoria; char principioativo[50]; }; int main() { struct t_medicamento medicamento; void *ptrRegistro; byte *ptrByteRegistro; char *ptrCharRegistro; char strCampo1[30], strCampo2[30], strCampo3[30]; strcpy(medicamento.codigo, "XYZ"); medicamento.categoria = 5; strcpy(medicamento.principioativo, "ABCDEF"); ptrByteRegistro = (byte*)(&medicamento); ptrRegistro = ptrByteRegistro; sprintf(strCampo1, "%s", (char*)(ptrRegistro)); ptrRegistro = ptrByteRegistro + 10*sizeof(char); sprintf(strCampo2, "%d", *((int*)(ptrRegistro))); ptrRegistro = ptrByteRegistro + 10*sizeof(char) + sizeof(int); sprintf(strCampo3, "%s", (char*)ptrRegistro); printf("%s\n", strCampo1); printf("%s\n", strCampo2); printf("%s\n", strCampo3); getch(); return 1; } Ou seja, eu esperaria que no final fossem impressas as strings "XYZ", "5" e "ABCDEF", correto? No entanto, dependendo dos tamanhos dos campos de código e princípio ativo (que no código de exemplo estão com 10 e 50 bytes, respectivamente) às vezes aparece só "YZ" e "BCDEF", por exemplo. O que pode estar acontecendo? Muito obrigado.
×
×
  • Criar Novo...