// 1. Data Align - VC 에서는 #pragma pack (1)
// 2. struct hack ==> flexible Array 이야기
#include <stdio.h>
#include <stdlib.h>
// Data Align(정렬,기본적으로 4byte단위)로 개념
#pragma pack( 1 ) //모든 컴파일러 마다 다르다 (해당 컴파일러의 메뉴얼 참고)
// 하지만 여기서 Align 개념을 정확히 익혀 두세요 ~~
//실행시 결정되는 크기의 배열을 사용하는 구조체 만들기. - "struct Hack" 이라는 기법.
//1980년대 주로 사용
/* sizeof(People) ==> 8
struct People
{
int no; //학번
int jumsu[1]; // 과목수가 실행시까지 정해 지지 않았다면.!
};
*/
//sizeof(Poeple) ==> 4
struct People
{
int no; //학번
int jumsu[]; //과목수가 실행시까지 정해 지지 않았다면.! - flexible array
//배열명은 사용할수 있으나 메모리 할당 안됨
};
void main()
{
struct People* p = (struct People*)malloc( sizeof( struct People) + sizeof(int) *20);
int num;
// scanf("%d",num );
// int jumsu[num]; // error 변수 불가능 -> 동적 메모리 할당. !!
}
/*
struct AAA
{
char c;
int n;
char c2;
};
void main()
{
printf("%d\n",sizeof(struct AAA ) ); //
}
// flexible Array
*/
'프로그래밍' 카테고리의 다른 글
Function Pointer EX (0) | 2009.07.19 |
---|---|
함수 및 포인터 (0) | 2009.07.19 |
Error Handling (0) | 2009.07.19 |
Dos Compilering & Make Asm (0) | 2009.07.19 |
Buffer OverFlow (0) | 2009.07.19 |
댓글