묻고 답해요
169만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨독하게 시작하는 C 프로그래밍
버퍼 내 엔터
제 컴퓨터에선 스캔시 엔터를 누르면 메모리에서 0a라고 뜨지않고 그냥 00이라고 뜨는데 차이가 있는 건가요?
-
해결됨이해하면 인생이 바뀌는 네트워크 프로그래밍
맥에서 Window 가상화 프로그램 사용 문의
안녕하세요. 맥에서 Window 가상화 프로그램인 Parrallels 사용해서 해당 강의 예제 따라갈 수 있나요?윈도우용 개인 노트북이 없어서 문의드립니다...ㅜㅜ감사합니다.
-
해결됨독하게 시작하는 C 프로그래밍
2진수 뺄셈에서 carry-out
2진수의 뺄셈 시 carry out은 단순히 버려진다고 설명 해주셨는데 이 상황과 오버플로우를 판단하는 기준 사이에 어떤 차이가 있는지 궁금합니다.
-
해결됨독하게 시작하는 C 프로그래밍
union 식별자는 실무에서 보통 어디에서 사용하나요?
union 식별자는 실무에서 보통 어디에서 사용하나요?
-
해결됨독하게 시작하는 C 프로그래밍
필수실습문제 공부법 (진도 vs 복습)
필수 실습 문제에서 배열까지 어찌저찌 왔는데배열부터 본격적으로 구현 성공 후 풀이를 본적이 없네요ㅠ기초적인 문제부터 막혀서 답답한데, gpt에게 유사문제를 요청해서 무조건 내 걸로 만들고 다음 진도로 나가야 될지아니면 시행착오 겪으면서 어찌저찌 진도만 빼면 될지 몰라 더 학습방향이 틀어지기 전에 문의드립니다!
-
해결됨독하게 시작하는 C 프로그래밍
예제파일 다운로드
어디서 받을 수 있는 건가요?
-
해결됨Windows 시스템 프로그래밍 - 기본
세마포어 개수에 따른 스레드 점유상태
//#include "pch.h" //#include "Logger/Console/Console.h" #include <string> #include <cstdlib> #include <iostream> #include <Windows.h> HANDLE Semaphore; std::string Strings[10]; void SetString(LPVOID InParam) { int Index = *(int*)InParam; delete InParam; while (true) { Strings[Index] = "Thread" + std::to_string(Index) + ": Is Waiting"; ::WaitForSingleObject(Semaphore, INFINITE); Strings[Index] = "##Thread" + std::to_string(Index) + ": Is Selected##"; ::Sleep(500); ::ReleaseSemaphore(Semaphore, 1, nullptr); } } int main() { Semaphore = ::CreateSemaphore(nullptr, 3, 3, nullptr); for (int i = 0; i < 10; ++i) ::CreateThread(nullptr, 0, (LPTHREAD_START_ROUTINE)SetString, (LPVOID)new int(i), 0, nullptr); while (true) { system("cls"); for (const std::string& String : Strings) std::cout << String << std::endl; ::Sleep(1000); } }안녕하세요 세마포어 강의를 수강하다가 직접 실험하고 있었는데 세마포어 개수가 4개 이하일 때는 스레드 점유상태가 계속 달라지는걸 확인했는데 5개 이상으로 세마포어 개수를 늘리니 이미 점유된 스레드만 계속 점유가 되는 상황이 발생한걸 확인하였습니다. 혹시 이유가 점유가 해제되어 바로 대기상태에 들어갔는데 그 스레드를 바로 os가 또 채택하기 때문일까요?
-
해결됨독하게 시작하는 C 프로그래밍
Visial Studio Code 를 설치해서 사용해도 수업을 따라가는데 지장이 있나요?
visual studio code를 설치해서 사용해도 수업을 따라가는데 문제는 없는지 궁금합니다.
-
해결됨독하게 시작하는 C 프로그래밍
연산자 기본이론 강의 질문
강의 말미에 중간 계산 과정에서 나온 값은 삭제된다고 말씀해주셨는데요,삭제되기 전 중간 계산 과정에서 나온 값 또한 메모리의 빈 부분 어딘가에 저장이 되었다가 삭제되는 방식이 맞을까요?
-
해결됨독하게 시작하는 C 프로그래밍
본 강의에 대한 질문들입니다.
우선 좋은 강의를 제공해주시는 널널한 개발자님에게 감사를 드립니다. 일단 첫번째 질문은 2분 30초 쯤에 말하신 1바이트의 공간을 관리한다 즉 번호표를 매긴다라는 의미에 대한 질문입니다. 제가 아는 배경지식으로 이해한 방법은 주소가 0x0000000000000000부터0xFFFFFFFFFFFFFFFF까지 범위가 있는데 이를 운영체제가1바이트인 공간에 이걸 찾기 위해서1바이트인 공간을 (ex 0x00000ab2332f0001라는 주소를 붙여준다(은행 번호표처럼 사람에게 식별하기위해 번호표를 준다?)라고 이해하는게 맞나요? 2번째 질문은 직접 지정에 대한 내용입니다. 8분쯤 상황을 이해한걸 제가 설명해보겠습니다.직접지정은 제가 지역변수에 int ndata를 선언했다고 가정하면 OS가 ndata의 주소를 할당해주는데그 때 ndata에 지정된 주소를 직접지정된 주소라고 하는건가요? 아님 OS가 할당후에 할당한 주소로 찾아가 우리가 그 주소를 상수로 고정 시키겠다라고 하는게 직접할당인가요? 강사님이 말하시는게 2가지 의미로 해석이 되서 약간 헷갈립니다. 3번째 질문인 간접지정에 대한 내용입니다. 위에 가정을 끌고와서 int ndata라는 변수를 선언한 주소를 저장하기 위해 int *p = &ndata라고 선언을 하면 변수 p라는 공간이 생겨 나고 그 변수 p의 공간에 ndata의 주소를 담아 저장한다. 그런데 p는 ndata가 아니라 다른 사용자가 선언할 데이터의 주소를 담을 수 있기에 변수이고 이를 간접지정이라고 한다 맞나요?
-
해결됨독하게 시작하는 C 프로그래밍
입력값 보정
#include <stdio.h> // 영상에서 나온 해설int main(void){int Input = 0; scanf_s("%d", &Input);if (Input < 1 || Input > 9){printf("1~9사이 정수를 입력하세요.");return 0;}int i = 0;while (i < Input){printf("*\t");++i;}putchar('\n');}문제에서는 입력값을 보정하라는 문구가 있는데 위에서 작성해주신 대로 실행하고 범위에 벗어난 값을 넣었을 때 입력값이 범위에 벗어나면 유효한 값으로 바꿔서 처리하는 보정이 아닌 프로그램이 종료되는 현상이 나타나는데 이 부분에 대해서 궁금증이 남아 글 작성합니다!
-
해결됨이해하면 인생이 바뀌는 네트워크 프로그래밍
프로젝트 제안 수행에 대한 조언을 구하고 싶습니다.
안녕하세요. 강사님.한 번 훓어보고 2번째 보고, 코드를 타이핑 + 모르는 내용은 GPT한테 무슨 내용인지 물어보면서 진행하다보니 내용 이해가 술술 되고 있습니다. 그래서 후에 프로젝트 제안 주신 것도 이렇게 저렇게 할 수 있겠구나 생각을 하고 있습니다. 다만 고민되는 부분은 기간입니다. 제안 주신 프로젝트를 전부 수행하는데 2~3달 기간이 소요되는 느낌이 드는데...현재 자바 스프링 백엔드 개발자 목표로 하고 있습니다.현재 해야할 것이 JAVA + 알고리즘 공부 + HTML + DB + Spring 그 이후 필요한 것이 있다면 추가로 공부를 해야하는 데, 네트워크 프로젝트에 시간을 쏟으면 이후 공부가 너무 늦춰질까봐 어떻게 우선순위를 두어야 할지 고민을 하고 있습니다.현재 학원이라는 환경이 공부하기가 너무 좋은데 내년 1월까지만 자습으로 사용이 가능해서 앞서 해야할 걸 다 끝낸 후에 프로젝트를 들어갈지 아니면 주어진 프로젝트를 완수하고 들어갈지 의견을 구해봅니다.(프로젝트를 진행하고 넘어가는 것이 좋다면 그리 할 것 입니다.)
-
해결됨독하게 시작하는 C 프로그래밍
교차출력에서요
#include <stdio.h> int main(void) { int list[5][5] = {0}; int count = 0; for (int i=0; i<5; ++i) { if(i % 2 == 0) { // 짝수 행: 왼→오 for (int j=0; j<5; ++j) { list[i][j] = ++count; } } else { // 홀수 행: 오→왼 for (int j=4; j>=0; --j) { list[i][j] = ++count; } } } // 출력 for(int i=0;i<5;i++){ for(int j=0;j<5;j++){ printf("%d\t", list[i][j]); } printf("\n"); } return 0;} 저는 4 - j가 생각 안나서 반복문 하나를 더써서 처리를 했는데.. 비효율적이겠죠? 반복문은 최대한 적게 쓰는게 더 나은가요?
-
해결됨독하게 시작하는 C 프로그래밍
전반적인 강의 분위기
네트워크 핵심이론 듣고 만족도가 높아 "전문 네트워크 솔루션 개발자 되기" 코스로 입문하게 되었습니다.전체적인 강의 분위기가 위 강의같이 화면 보면서 같이 이해하는 방식일까요?아니면 반드시 IDE를 옆에 두고 따라하면서 진행해야하는 강의인지 문의드립니다.
-
해결됨독하게 시작하는 C 프로그래밍
visual studio SDL 검사 설정 방법
안녕하세요, 강의 정말 잘 듣고 있습니다!SDL 설정을 따라해 보려고 하는데, 쉽지 않아서 이렇게 질문을 남깁니다. 알려주신 단축키(alt + F7)도 안되고, 나름 검색해본 방법들도 제가 사용하는 visual studio 에서는 적용이 되지 않는 것 같습니다. 도움을 구합니다. 감사합니다. <SDL 설정 창> -> 이걸 하고 싶어요...<사용 중인 visual studio> tool -> property -> 설정하기project -> property -> 설정하기현재 프로젝트에 우클릭 -> property -> 설정하기위의 3가지를 시도해보았지만 실패했습니다...
-
해결됨독하게 시작하는 C 프로그래밍
최대값구하기에서
풀이에서max = (max > input) ? max : input 를 저는 (input > max) ? max = input : max;이렇게했는데 컴파일하니깐경고가 떠서 구글링 해보니깐 연산식을 제어문처럼 쓰고 있다고합니다.(제가 c언어 말고 다른 쪽에서 제어문을 써 본적이 있어서 언어는 잘 모르지만 제어문을 알고 있습니다.) 제가 작성한 연산식은 잘못된 방식인가요?그리고 max를 갱신하는 용도면은 if문이 더 낫나요?
-
해결됨이해하면 인생이 바뀌는 네트워크 프로그래밍
컴퓨터가 여러 대 있는 환경에서의 질문입니다.
안녕하세요. 강사님.현재 사용할 수 있는 컴퓨터가 여러대인 학원 자습실에서 학습을 하고 있습니다. 현재 강의 내용이 새롭다보니 강의를 한 번 쭉 훓어보고 본격적으로 학습에 들어가려고 합니다. 질문을 하게 된 계기는전에 소켓프로그래밍 채팅 예제를 할 때, 다른 컴퓨터에서 통신을 알려면 '공유기의 글로벌 IP주소'를 알아야한다고 해서 질문드리게 되었습니다. 여기서 질문 입니다. 노트북은 현재 없으며컴퓨터가 여러 대 있는 환경 / 학원인지라 공유기 정보 및 글로벌 IP 주소를 알 수 없는 상황의 경우에는 이번 강의에서 학습할 예제를 하기 어려운지 미리 알고 싶습니다. (컴퓨터는 다 LAN선으로 꽂혀있고 LAN선의 최종 연결 위치는 보이지 않습니다.) 만약 어렵다면, 대처방안을 어떻게 해야할지도 알고 싶습니다.
-
해결됨독하게 C를 배운 사람을 위한 선형 자료구조
첫번째 루프에서 최소값을 못찾았는데 계속 진행하는 이유가 무엇인가요?
이미 정렬이 된 노드에서 범위기반 탐색을 하는데 min보다 같거나 큰값을 못찾았다는건리스트 내의 모든 값이 min보다 작다는것 아닌가요? 그렇다면 왜 바로 종료시키지 않고 헤드 다음을 기준으로 MAX 까지 다시 탐색하는지 이해가 가지 않습니다.
-
해결됨독하게 시작하는 C 프로그래밍
본 강의 이후 C프로그래밍 학습 방향성
안녕하세요, 우선 질 높은 강의 너무나 감사드립니다.다름아닌, 해당 강의를 통해서 배운 내용을 바탕으로 연습문제들을 풀며 실력을 더욱 키우고자 하는데, 추후 어떤 경로로 연습을 이어나가야할지 감이 잡히지 않아 질문을 남깁니다.개인적으로 전문 개발자가 아닌 전기 및 제어 분야 학생으로써, 임베디드 시스템 등 하드웨어와 접목시키는 방향성을 가지고 C언어를 사용할 예정입니다.이러한 상황에서 어떻게 추후 학습을 어떻게 이어나가는 것이 좋을까요?감사합니다.
-
해결됨독하게 시작하는 C 프로그래밍
컴퓨터 구조에 대한 질문입니다.
1.첫 질문은 제가 컴퓨터 구조를 따로 공부하고 싶은데 어떤 책을 참고해야할 지 모르겠습니다. 2번쨰 질문은 일단 모르겠어서 ,csapp 또는 structured computer organization 을 찾아가면서 공부 중인데 진도가 조금 안 나가고 생각보다 많이 막히는게 있어 맞는 방향인가 고민이 됩니다.이 강의 관련해서 혼자 공부하면서 배웠던건1.키보드의 입력값을 주면 전기신호가 컨트롤러에게 전달되고2.컨트롤러가 신호를받아 데이터를 값으로 변환하고3.그 값을 cpu로 보내서 인터럽트 요청을 하고4.I/o bus를 통해 cpu가 데이터를 읽는다.이게 레지스터로 가 저장이 된다는 것 까지 압니다.더 깊게 알고 싶은데 어디서 어떤 순서로 배워야하는지 잘 모르겠습니다. 또한 컴퓨터 구조론을 공부하는데 또 궁금한게 어디까지 작동원리를 이해 하느냐에 또 발목이 잡힙니다. 예시를 들자면 어떤 책은 CPU에 PC에 집중적으로 설명하는데 반에 어떤 책은 ALU와 레지스터의 연산방법 등 이러한 체계가 연결이 안된다는 느낌이 들어 어 여기서는 이랬는데.. 왜 저기서는 이렇지? 이런 느낌이 크게 들어 막히는 감이 존재합니다.