본문 바로가기

전체 글

(127)
[C언어] 문자열(2) #include #include #define BUFFER_SIZE 20 int main() { char buffer[40]; while (1) { printf("\ "); fgets(buffer, BUFFER_SIZE, stdin); // (저장 버퍼, 버퍼의 크기, 버퍼가 데이터를 가져올 파일 포인터). 표준 입력 파일 = stdin // BUFFER_SIZE를 이용하기 때문에 허용된 크기만큼만 데이터를 읽어서 저장 printf("%s:%d\n", buffer, _mbstrlen(buffer)); } return 0; } scanf는 입력받은 값 중 공백(' ') 표시 전까지만 입력을 받기 때문에 띄어쓰기를 포함한 문자열을 저장하기 적합하지 않습니다. 이를 보완하는 것이 fgets 함수입니다. fge..
[C++] std::forward 이 글은 개인의 학습을 목적으로 정리한 글입니다. 이점 참고하고 읽어주세요;) #include #include #include using namespace std; struct MyStruct {}; void func(MyStruct& s) { cout
[C언어] 문자열(1) #include #include #define BUFFER_SIZE 100 using namespace std; // strcpy : 문자열 복사 // strlen : 문자열의 길이 // strcat : 문자열 합치기 // strcmp : 문자열 비교 int main() { char str[] = "string"; // 겹 따옴표를 이용하면 컴파일러가 자동으로 배열의 크기를 맞춰서 저장 //char *str = "hello"; 와 같은 string literal은 수정이 불가능함. char word[10]; word[0] = 'h'; word[1] = 'e'; word[2] = 'l'; word[3] = 'l'; word[4] = 'o'; word[5] = 0; // 문자의 끝을 알림 //printf("..
[C++] 벡터 내적과 멀티 쓰레딩 이 글은 개인의 학습을 목적으로 정리한 글입니다. 이점 참고하고 읽어주세요 ;) 1. std::inner_product 함수와 가장 기본적인 멀티 쓰레딩 설정의 내적 실행 비교 #include #include #include #include #include #include #include #include #include #include // dot-product #include using namespace std; mutex mtx; void dotProductNative(const vector& v0, const vector& v1, const unsigned i_start, const unsigned i_end, unsigned long long& sum) { for (unsigned i = i_st..
돼지꿈 학교 도서관의 신간 코너에서 황석영 작가의 돼지꿈을 꺼내 집었다. 나는 전용 열람실보다 대출 자료실에서 공부하는 걸 좋아하는데, 공부하다 심심하면 주변 서가에서 책을 꺼내올 수 있기 때문이다. 서가에서 가져온 책을 모두 읽는 것은 아니고 단지 책상 위에 쌓아두기만 하고 결국 책을 펴보지도 못한 채 다시 서가에 꽂고 집에 돌아가는 날도 있었다. 지난 학기에 나는 목요일과 금요일에 두 수업 사이의 비는 시간이 길어 그 시간을 주로 도서관에서 보냈다. 나는 도서관 대출 자료실의 넓고 하얀 탁자와 그 탁자들이 길게 펼쳐져있는 풍경을 좋아했지만 그럼에도 한 자리에 1시간 넘게 앉아 있는 게 신체적으로나 기분적으로나 쉬운 일은 아니었다. 오래 앉아 공부를 할 땐 두 시간 넘게 책상에 앉아있기도 했다. 하지만 그런 ..
[C++] 작업 기반 비동기 프로그래밍 이 글은 개인의 학습을 목적으로 정리한 글입니다. 이점 참고하고 읽어주세요 ;) #include #include #include using namespace std; int main() { // multi-threading { int result; std::thread t([&] {result = 1 + 2; });// thread를 생성해서 관리 t.join(); cout
주변 나라의 추운 계절 밤거리 나는 중국에 세 번, 일본에 세 번 여행을 다녀왔다. 중국에는 10월 말, 12월 말, 1월 말에 다녀왔고, 일본에는 12월 말, 1월 중순, 그리고 4월 말에 다녀왔다. 여섯 번 중 네 번은 겨울로 분류되는 12월, 1월이었고, 한 번은 가을, 나머지 한 번은 봄이 끝나갈 무렵이었다. 완연한 여름에 이웃 나라로 여행을 간 적은 없고, 주로 추운 계절에 서해 건너편에 있는 나라와 동해 건너편에 있는 나라에 찾아갔다. 그래서 일상을 보내다 그 나라들이 떠오르는 계절은 주로 추운 계절이다. 내가 다녀온 바다 건너 나라들의 추운 계절이 떠오르고, 그중에서도 추운 밤거리가 생각난다. 밤거리를 걸으며 느꼈던 추위, 밤거리를 걸으며 지나치던 이질적인 글씨와 디자인의 간판, 네온사인 등등 이런 것들이 생각난다. 삿포..
[C++] 레이스 컨디션 이 글은 개인의 학습을 목적으로 정리한 글입니다. 이점 참고하고 읽어주세요 ;) 멀티 쓰레드는 하나의 메모리 공간을 공유하기 때문에 병렬 처리에 있어서 굉장한 편리함과 효율성을 제공합니다. 하지만 같은 메모리 공간을 공유한다는 건, 여러 쓰레드들이 동시다발적인 일의 처리로 인해 메모리 내에서 오류를 발생시킬 수 있습니다. 이러한 문제를 race condition이라고 함. 이번 포스팅에서는 바로 이 race condition을 처리하는 방법에 대해 알아보겠습니다. #include #include #include #include #include using namespace std; int main() { int shared_memory(0); // 여러 쓰레드들이 이 변수에 동시에 접근하도록 auto co..