delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/1998/07/02/08:45:55

Message-ID: <359B7F4B.2AB85208@ipass.net>
From: Terry <iceman AT ipass DOT net>
MIME-Version: 1.0
Newsgroups: comp.os.msdos.djgpp
Subject: Re: Size of a struct is not correct
References: <01bda5a5$ce48b420$0100a8c0 AT dismuntel DOT ctv DOT es>
Lines: 28
Date: Thu, 02 Jul 1998 12:44:02 GMT
NNTP-Posting-Host: ts3-166-ppp.ipass.net
NNTP-Posting-Date: Thu, 02 Jul 1998 08:44:02 EDT
Organization: iPass.Net
To: djgpp AT delorie DOT com
DJ-Gateway: from newsgroup comp.os.msdos.djgpp

Javier Calleja wrote:
> 
> Hi world
> 
>   I have built the following struct:
> 
>   struct
>   {
>     char one;
>     short two,three;
>     long  four
>   } foo;
> 
>     But when I do sizeof of this struct, the result is wrong (it says the
> struct has 12 bytes).
>     I think gcc tryes to allocate the struct variables in blocks of 4 bytes.
>     But I have a problem, because I use the following sentence:
> 
>     memcpy(pointer_to_memory,&foo,sizeof(foo));
> 
>    And I must to allocate each variable in a memory position of 9 bytes,
> when the first byte is one variable, the following two bytes are a short
> variable, ...

By default, all variables are aligned on four byte boundaries.  There
is an option to change that to a byte boundary.

Terry

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019