PL/C++(108)
-
주석으로 쌓여진 내용에 다시 주석을 달 경우
struct struct tm { int tm_sec; /* Seconds (0-60) */ int tm_min; /* Minutes (0-59) */ int tm_hour; /* Hours (0-23) */ int tm_mday; /* Day of the month (1-31) */ int tm_mon; /* Month (0-11) */ int tm_year; /* Year - 1900 */ int tm_wday; /* Day of the week (0-6, Sunday = 0) */ int tm_yday; /* Day in the year (0-365, 1 Jan = 0) */ int tm_isdst; /* Daylight saving time */ }; 이 내용을 주석하고 싶다면 #if 0 > #e..
2019.05.19 -
gets의 취약점
gets는 버퍼 오버플로우를 막지 못한다 char buf[5]; gets(buf); // input "hello world" printf("%s\n", buf); // print "hello world" if using fgets fgets(buf) // input "hello world" printf("%s\n", buf); // print "hell"
2019.05.19 -
fgets와 scanf, strlen에서의 차이
fgets는 공백을 포함한 문자열 전체를 받아오고, 개행을 만나면 입력을 중단하고, scanf는 공백이나 개행을 만나면 입력을 마친다 둘의 차이는 fgets는 문자열 마지막에 \n을 포함해서 저장한다. 따라서 a를 입력하고 나서 두 배열의 길이를 비교해보면 fgets로 받은 문자열의 길이는 2, scanf로 받은 문자열의 길이는 1이 된다. https://github.com/surinoel/boj/blob/master/1718.c fgets로 받는 buf는 \0을 포함하여 \n까지 공간을 만들어야 한다. 안한다면 런타임 에러가 난다.
2019.05.18 -
function의 주소를 넘길 때
int pthread_create(pthread_t *thread, const pthread_attr_t *attr, void *(*start_routine) (void *), void *arg); pthread_create의 정의는 다음과 같은데 3번째 인자는 함수 포인터를 넘겨준다. 방법은 2가지인데 함수의 이름 혹은 &(함수의 이름)을 넘겨도 똑같이 같은 값이 넘거간다.
2019.05.15 -
PI 상수를 사용하는 방법
https://stackoverflow.com/questions/1727881/how-to-use-the-pi-constant-in-c
2019.04.29 -
EOF까지 한 번에 입력받기
getline(cin, string val) 예제문제: https://www.acmicpc.net/problem/11655 https://github.com/surinoel/boj/blob/master/11655.cpp [+추가 19.07.18] 여러 줄 getline으로 받아오면서 검사하기 문제: https://www.acmicpc.net/problem/1371 https://github.com/surinoel/boj/blob/master/1371.cpp
2019.04.25