프로그래밍/C | 2015. 4. 25. 16:15
데이터 영역(Data Area)
전역변수, static 변수.
프로그램 시작과 동시에 할당.
프로그램 종료되어야만 메모리에서 소멸.
전역변수가 데이터 영역에 올라가는 일은 main 함수의 호출보다 먼저 진행된다.
스택 영역(Stack Area)
지역변수, 매개변수.
힙 영역(Heap Area)
프로그래머가 관리하는 메모리 영역.
배열의 크기 선언을 반드시 상수로 사용해야 하는 이유
스택, 데이터 영역에 할당될 메모리의 크기는 런타임(run-time)이 아닌 컴파일되는 동안(컴파일 타임)에 결정되어야 한다.
힙에 메모리를 할당하는 것을 두고 '동적 할당(Dynamic Allocation)'이라 한다.
반대로 스택과 데이터 영역에 메모리를 할당하는것 '정적 할당(Static Allocation)이라 한다.
malloc 함수 & free 함수.
malloc 함수.
동적으로 메모리를 할당하는 함수이다. = 힙 영역에 메모리를 할당하는 함수.
할당한 메모리의 주소(첫번째 바이트의 주소)를 리턴한다.
만약에 메모리 부족으로 인해서 메모리 할당에 실패했다면, NULL 포인터가 리턴되므로, 리턴된 포인터가 NULL인지 아닌지 확인해야한다.
[C언어] strlen, strcpy, strncpy, strcat, strncat, strcmp, strncmp (0) | 2015.04.25 |
---|---|
[C언어] 표준 입 출력과 버퍼(Buffer) (0) | 2015.04.25 |
[C언어] puts,fputs, gets, fgets, (0) | 2015.04.25 |
[C언어] 포인터, const 키워드 (0) | 2015.04.23 |
[C언어] 문자열 상수, 포인터 배열 함수 (0) | 2015.04.23 |
[C언어] 재귀적 함수 호출, n!(Factorial 계산) (0) | 2015.04.22 |
[C언어] static 변수, register 변수 (0) | 2015.04.22 |
[C언어] printf, scanf, %e, %E (0) | 2015.04.22 |
[C언어] 리터럴(literal) 상수, 심볼릭(Symbolic) 상수 (0) | 2015.04.22 |
[C언어] sizeof 연산자, double형, unsigned (0) | 2015.04.22 |
프로그래밍/C | 2015. 4. 25. 03:14
1. strlen 함수
문자열의 길이를 반환해 주는 함수이다. NULL 문자는 문자열 길이에 포함되지 않는다.
2. strcpy 함수
문자열을 복사. BUT. 저장할 버퍼가 입력받은 문자열 길이보다 작으면 오버플로우 발생.
따라서 strncpy함수를 선호한다.
3. strncpy 함수
최대 길이 n을 넘지 않고 문자열을 복사한다.
strncpy로 NULL문자를 뺀 길이까지만 복사하고, 맨 뒤에 '\0'(NULL) 을 넣어준다.
5. strcmp 함수, strncmp함수
문자열의 길이를 비교하는 것 X. 문자열 내용 자체를 비교 O.
위에 예제는 str1 == str2 (배열 이름 = 포인터) 이므로 포인터를 비교한 것임.
strcmp 함수예제
strncmp함수는 처음부터 n까지 비교하는 함수이다.
[C언어] 데이터 영역(Data Area), 스택 영역(Stack Area), 힙 영역(Heap Area) (0) | 2015.04.25 |
---|---|
[C언어] 표준 입 출력과 버퍼(Buffer) (0) | 2015.04.25 |
[C언어] puts,fputs, gets, fgets, (0) | 2015.04.25 |
[C언어] 포인터, const 키워드 (0) | 2015.04.23 |
[C언어] 문자열 상수, 포인터 배열 함수 (0) | 2015.04.23 |
[C언어] 재귀적 함수 호출, n!(Factorial 계산) (0) | 2015.04.22 |
[C언어] static 변수, register 변수 (0) | 2015.04.22 |
[C언어] printf, scanf, %e, %E (0) | 2015.04.22 |
[C언어] 리터럴(literal) 상수, 심볼릭(Symbolic) 상수 (0) | 2015.04.22 |
[C언어] sizeof 연산자, double형, unsigned (0) | 2015.04.22 |
Recent Comments