본문 바로가기

C언어/강의

2010년 12월 13일 월요일 (저장 클래스) static의 특징 main.c #include void test(void); int iNumC; int main() { static int iNumA=5; printf("main Address iNumA : %d\n", iNumA); printf("main Value iNumA : %08X\n", &iNumA); printf("main Address iNumC : %d\n", iNumC); printf("main Value iNumC : %08X\n", &iNumC); ++iNumC; test(); //test(); //test(); printf("main Address iNumC : %d\n", iNumC); printf("main Value iNumC : %08X\n", &iNumC); return.. 더보기
2010년 12월 13일 월요일 (리다이렉션) ls -al >test.A 더보기
2010년 12월 03일 금요일 malloc() 함수 (정리중) malloc()함수 malloc()함수는 heap영역에 메모리를 할당한다. 메모리의 부족으로 할당에 실패하면 NULL을 반환. 프로그램의 실행이 끝나기 전에 반드시 free()함수를 호출하여 할당을 해제해 주어야한다. 만약 해제하지 않으면 메모리에 그대로 남아있어 계속 쌓이다 보면 결국 메모리의 용량이 부족하게 되는 현상이 나타난다. #include #include // malloc() 함수 사용 #include // strcpy() 함수 사용 typedef struct tag_student { char name[20]; int score; } student; int main() { student st[3]; student *sp; int i; sp=(student*)malloc(sizeof(studen.. 더보기
2010년 11월 30일 화요일 구조체의 정적 연결리스트 (static linked list) 정적 연결리스트 (static linked list) #include typedef struct test { int iNum; struct test *Next; }TEST; int main() { TEST A1={1, }; TEST A2={2, }; TEST A3={3, }; TEST A4={4, }; TEST A5={5, }; TEST A6={6, }; TEST *p; p = &A1; // A1.Next = &A2; p->&A1과 같다 p->Next=&A2; A2.Next=&A3; A3.Next=&A4; A4.Next=&A5; A5.Next=&A6; printf("A1.iNum : %d\n", p->iNum); printf("A2.iNum : %d\n", A1.Next->iNum); printf("A3.. 더보기
2010년 11월 29일 월요일 구조체 사용자정의 (struct) & 구조체 초기화 #define \test 1 ☜ test 앞에 역슬러시(\)를 붙일경우 #define 하고 연결이 되서 #define test 1 하고 똑같이 취급된다. 역슬러시(\)를 안붙일경우는 #define 따로 test 1 따로 이므로 문법에 맞지 안다. 구조체 사용자 정의 (struct) 위의 그림의 3가지 문법 모두 동일하다. 첫번째 문법은 구조체를 선언할때마다 struct을 붙여 줘야하지만 두번째 세번째 문법에서는 struct을 쓰지 않는 것을 볼수 있을 것이다. 구조체의 초기화 #include typedef struct _memset { int iAddr; char cChara; int iSize; }MEMSET; void my_memset(void *, unsigned char, int); void pr.. 더보기