romfs관련 헤서 변수 질문입니다.

강동우의 이미지

struct romfs_super_block 구조체를 살펴 보면
char name[0];

이렇게 선언되어 있는것을 볼 수 있는데 이녀석은 도대체 어떻게 작동을 하는 건가요?;;

배열인데 크기는 0짜리 배열이라..;; 도저히 뭔지 모르겠네요

pizza1977의 이미지

typedef struct Foo {
int len;
char data[0];
} foo;

int main()
{
printf("size=%d\n", sizeof(foo));
return 0;
}

size = 4

머 특별한 스킬이라기 보다는...
저같은 경우 내부 메시지 포맷을 위해 사용했는데요.
데이터의 길이가 datalen, 데이터가 *data 변수에 있는 경우
foo *HandleFoo = malloc(sizeof(foo)+datalen);
HandleFoo->len = datalen;
memcpy(HandleFoo+sizeof(int), data, datalen);

이렇게 사용하면 구조체 멤버 data를 통해 실제 데이터에 접근할 수 있지요.. ㅡㅡ

이런 비슷한 의미로 사용했을듯 하네요.

포탈이는 불사신

-------------
포탈이는 불사신

강동우의 이미지

일종의 패딩 개념으로 쓰인것 같더군요 .
답변 감사 드립니다. ^^ 역시 직접 쳐보는게 가장 좋은듯 하네요