본문 바로가기
프로그래밍

Flexible Array

by 건우아빠유리남편 2009. 7. 19.
반응형


// 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

댓글