(TLV)Type Length Value를 만들던 중 원하는 값을 찾을수가 없어요. 포인터+구조체
슬S2아
질문 내용 : 포인터+구조체 관련 내용입니다.
아래는 제가 현재 구현하였고 계속해서 생각중인데 Length값에 따라 Value를 변화시키기 위해 노력중입니다.....
TLV : Type Length Value 는
Length의 값에 따라 Value의 바이트를 결정하는 알고리즘? 입니다.
컴파일 동작 제대로 되도록 제가 작업하던 소스에서 따로 분류하여 올려요 ㅠ.ㅜ
컴파일 작동시켜보면 토탈 사이즈 8바이트,
타입 2바이트, 렝쓰 2바이트
렝쓰값이 2이므로 밸류도 2바이트로 표시해야 하는데
제가 포인터로 선언해서 포인터의 사이즈인 4바이트가 자꾸 출력되네요......
렝쓰의 값에 맞게 구현하기 위해선 어떤 방법으로 접근해야 할까요?
#include stdio.h
#include string.h
#include stdlib.h
struct TLV{
short Type;
short Length;
char *Value;
};
int main()
{
structTLV tlv21;
_tlv21.Type = 21;
_tlv21.Length = 2;
_tlv21.Value = &_tlv21.Length;
printf(tlv size\n);
printf(total tlv : %d\n, sizeof(_tlv21));
printf(type : %d\n, sizeof(_tlv21.Type));
printf(length : %d\n, sizeof(_tlv21.Length));
printf(value : %d\n, sizeof(_tlv21.Value));
}