전체 글

    [C++]포인터

    [포인터 개념] • 변수의 주소나 배열의 이름을 포인터의 값으로 가진다. • 주 메모리상의 여러 형태의 주소를 값으로 취한다. • 포인터가 1byte char형을 가리키던 8byte double형을 가리키던 가리켜야 할 주소는 모두 4byte(32bit)이다. [주소 개념 이해] • 변수 앞에 &를 붙일 경우 변수의 주소를 말한다. • ‘&’를 주소 연산자라고 한다. • 주소는 컴파일러에 의해 결정된다. [포인터 초기화 방법] //방법 1 int a = 26; int *pa; pa = &a; //방법 2 int b = 26; int *pb = &b; [예시1] int a = 7; int *p = &a a 표현출력 값설명p 표현a7a 변수의 값*p==*(0x789)&a0x789a 변수의 주소p*&a7a 변..

    KMP 알고리즘

    KMP알고리즘 백준저지 [찾기] https://www.acmicpc.net/problem/1786 본 문제를 해결하기 위해서는 KMP알고리즘에 대해 학습이 되어야한다. (참고로 전 이 알고리즘을 이해하는데 2주가 걸렸다는... T^T...) 먼저 이 알고리즘은 '찾기' 흔히 [CTRL] + [F]를 눌러 문자열 검색을 하는 기능에 필수적으로 들어가는 알고리즘이다. KMP는 Knuth, Morris, Prett의 사람 이름 앞자를 따서 만든 이름이다. 흔히 찾기 알고리즘을 구현하라고 하면 아래와 같은 방식으로 구현을 할 수 있을것이다. "ABCDEF"란 Text에서 "CD"란 Pattern을 찾는다고 한다면, 012345TextABCDEF 01 PatternCDText[0]과 Text[1]이 Pattern..

    [C++]new & delete

    malloc & free를 대신하는 new & delete 먼저 C언어의 malloc & free를 이용한 동적할당을 아래 코드로 살펴보자. #include #include #include #pragma warning(disable: 4996) using namespace std; char * MakeStrAdr(int len) { char * str = (char *)malloc(sizeof(char) * len); return str; } int main(void) { char * str = MakeStrAdr(20); strcpy(str, "I am so happy~"); cout