```
struct things {
    char foo[25];
    int bar;
};

struct morethings {
    char morefoo[25];
    int morebar;
    int another;
};

int main() {
    printf("char[25] + int: %d | struct things: %d\n\n", sizeof(char[25]) + sizeof(int), sizeof(struct things));
    printf("char[25] + int + int: %d | struct morethings: %d\n\n", sizeof(char[25]) + sizeof(int) + sizeof(int), sizeof(struct morethings));

    return 0;
}

```

Return:

> 
> char[25] + int: 29 | struct things: 32
> 
> 
> char[25] + int + int: 33 | struct morethings: 36
> 
> 
> 

I believe that return of `sizeof` should the same in both cases, but the struct always have the most 3 bytes. For what reason this happens?

Can remove? This can disrupt what I'm doing, which is to save in a file structure.