동적 메모리 할당에 문제가 있습니다. 어쨌든 내 구조체의 실제 크기 (모든 부분의 합계)는 유형 자체의 크기보다 작습니다. 여기서 코드 :유형 및 메모리 할당 크기
#include <stdio.h>
#include <malloc.h>
struct Lol {
int a;
char b;
char s[20];
};
void main() {
Lol* lol = (Lol*)malloc(sizeof(Lol));
printf("Type size: %d bytes\n", sizeof(Lol));
printf("Actual struct size: %d bytes\n", sizeof(lol -> a) + sizeof(lol -> b) + sizeof(lol -> s));
}
이 경우, 구조체의 크기가 25 바이트 (INT 4 바이트 문자가 1 바이트 문자 배열은 20 바이트)되어야한다, 그러나를 sizeof는 (롤) 어떤 이유로 날 (28)을 도시 as char 형은 int 형으로 취급됩니다. 이게 다 뭐니? 이것은 내가 3 바이트를 잃지 않는다는 것을 의미합니까?