포인터 구조체의 구조체내 크기 알아보기

sunness의 이미지

#include <stdio.h>
 
typedef struct P_DATAtag {
	unsigned char	a;
	unsigned char	b[17];
	unsigned int	c;
	unsigned int	d;
	unsigned int	e;
	unsigned int	f;
	unsigned char	z;
} *P_DATA;
 
P_DATA *P_DATA;
 
void Load(P_DATA pvalue)
{
    unsigned char size = 0;
 
    //size = sizeof(pvalue);  // 이럼 안된다.. ㅡㅡ;
}
 
void main(void)
{
   for(;;)
   {
       Load(P_DATA);
   }
}

위의 구조체 P_DATA의 크기를 알수 있을까요?
ansi C 입니다.

익명 사용자의 이미지

size = (unsigned char) sizeof(*pvalue);

planetarium의 이미지

소스를 업로드용으로 걷어내다가 실수하신건지는 몰라도
올려주신 소스만 보면 포인터 자체를 잘 모르시는 것 같습니다.
소스코드의 의도를 알수가 없네요.
sizeof(struct PRESET_DATAtag) 를 원하시는 건가요?

kukyakya의 이미지

sizeof(*pvalue) 로 하면 되지 않을까요?

shint의 이미지

http://kldp.org/node/24528
_msize()를 사용하는 방법이 있다고 합니다.

----------------------------------------------------------------------------
젊음'은 모든것을 가능하게 만든다.

매일 1억명이 사용하는 프로그램을 함께 만들어보고 싶습니다.
정규 근로 시간을 지키는. 야근 없는 회사와 거래합니다.

각 분야별. 좋은 책'이나 사이트' 블로그' 링크 소개 받습니다. shintx@naver.com