본문으로 건너뛰기

#C Programming Language

8
BlogBook Review

컴퓨터 시스템 딥 다이브 - 책 소개

한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다. 작년에 많은 일들이 있어 고사 했음에도 불구하고 올해 다시 좋은 기회로 한빛미디어의 좋은 책들을 소개할 수 있게 되었다. 양질의 번역서와 국내 좋은 저자들의 IT 지식을 접할 수 있게 도와주시는 한빛미디어에게 감사의 말씀 먼저 드린다. 원제 : Dive Into Systems: A Gentle Introduction to Computer Systems 저자 : Suzanne J. Matthews, Tia Newhall, Kevin C. Webb 출간 : N
BlogTILThink

42 서울 La Piscine 후기

42서울은 프랑스의 에꼴42 교육 시스템을 그대로 가지고와 과기부에서 운영하고 있는 프로그래머 인재양성 교육과정이다. 커리큘럼부터 내부 인트라넷까지 전부 프랑스의 시스템을 그대로 사용하고 있다. 42만의 특이한 점이라면 강사나 강의가 없고 피어리뷰 위주의 커리큘럼 진행이 특징이다. 과제가 주어지고 동료학습을 통해 문제를 해결해나가는 방식이다. 이 점이 가장 마음에 들었다. 한국에서는 매달 100만원의 지원금을 준다. 특이하게도 예비과정에서도 지원금을 지급한다. 그렇기 때문에 나같은 백수가 지원하기 딱 안성맞춤인 과정이다. 지금부터
FundamentalTILC

Pointer guide; struct

아래 코드가 있다 문자열을 담고있는 다중 배열을 구조체에 담아 반환하는 내용의 함수다. 반환되는 구조체 배열을 순회하는 코드는 다음과 같다 구조체 포인터를 순회하기 위해서는 . 대신 ->로 참조한다.
FundamentalTILC

Pointer guide; multiple pointer

변수 포인터의 가장 적절한 예는 배열과 문자열이다. 배열의 가장 앞 원소(element)의 주소는 배열의 시작 주소와 동치다. char형의 배열은 곧 문자열이다. 맨 앞 문자의 주소는 문자열의 시작 주소와 동치다. 이러한 배열 자체를 원소로 삼아 또 다른 배열을 만들 수 있다. 어렵게 생각할 것 없이 아래 도식을 보자. 각각 요소 3개를 가진 배열 4개의 주소를 담고 있는 배열. 이게 전부 다다. *를 두개 선언함으로써 배열주소를 담은 배열을 만들 수 있다. 아래 도식을 추가로 보자. malloc으로 실제 동적 할당과 배열이 어떻게
FundamentalTILC

string.h functions

C의 string과 관련된 함수들 몇 가지를 정리 해봤다. 위는 string.h 함수의 원형이고 아래는 간단히 구현해본 코드다. s2가 가리키는 문자열의 복사본을 (NULL문자까지 포함하여) s1이 가리키는 위치에 붙인다. s2 문자열의 첫번째 문자가 s1문자열의 NULL문자를 덮어 쓴다. s1을 리턴한다 s2가 가리키는 문자열에서 n개의 문자들의 복사본을, 또는 NULL문자까지 복사본을 s1이 가리키는 위치에 붙인다. s2의 문자열 첫번째 문자가 s1 문자열의 NULL 문자를 덮어 쓴다. NULL문자가 항상 추가된다. s1을 리턴
FundamentalTILC

Pointer guide; iterator and manipulate

char src[55] : 문자열 조작을 위해서 상수가 아닌 스택 또는 힙 영역으로 할당해야한다. tmp_str = str; : 단순히 포인터(문자열)를 순회하는것이 아닌 조작을 필요로 할때는 원본 주소를 보존한다. 그리고 대신 순회할 포인터 변수에 원본 주소를 받는다. tmp_str++ : 주소를 대리로 이동하기 때문에 원본의 값 또한 변경된다. 그러나 원본의 시작 주소는 건드리지 않고 있다. 여기서 따로 배열을 만들어서 상수에 대응할 수 없는 이유는 지역변수는 메소드를 벗어나면 변수 데이터가 사라지기 때문이다. 이와 관련해서 읽
FundamentalTILC

Pointer guide; method and memory

다음의 선언이 있다고 하자 char *strcpy 이 선언은 char형의 포인터, 즉 문자열로 반환하고 포인터 변수 dest와 src를 매개변수로 받는 포인터 함수다. char *dest의 정확한 표기법은 사실 char* dest다. 그래서 함수 내에서 다음 주소를 참조하기 위해 조작시 *dest++ 식으로 조작하면 안되고 dest++가 맞다. 이후 다음의 포인터 변수 선언과 할당이 있다고 하자. 이부분의 경우는 tmp_dest와 dest가 같은 주소를 갖게 된다. 이는 dest를 순회하기 위해서 dest의 시작 주소를 보존하는 것
FundamentalTILC

Pointer guide; string and array

포인터를 사용하기 위해서 포인터 변수를 먼저 선언 후 주소를 할당한다. &a