묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨독하게 시작하는 C 프로그래밍
Switch-case 문 예제
안녕하세요 강사님섹션 11 기본 제어문 switch-case문 예제 scanf_s에서 중간에 1을 쓰셨던데 이유를 알 수 있을까요?실제로 실행을 해보니 1을 넣으면 결과가 잘 나오는데 1을 넣지 않으면 실행창은 뜨는데 아래 실행 창 처럼 멈춰 있습니다. 각각의 이유를 알 수 있을까요?오류코드도 뜨는데 무슨 말인지 잘 모르겠는데 알려주실 수 있나요? 오류 코드 감사합니다.
-
해결됨독하게 시작하는 C 프로그래밍
나이, 이름 입력 예시에서 scanf_s() 함수 사용 이후 gets_s() 함수 사용 시 오류
gets_s() 함수가 키보드 추상화 파일의 버퍼에서 null이 나올 때까지 문자열을 가져오는 함수잖아요.scanf_s() 함수를 통해 5\n 이 저장되었다고 했을 때, %*c를 통해 \n을 제거하지 않으면 gets_s() 함수는 \n이 들어있어서 입력을 중지하는 거라고 이해했습니다.여기서 질문입니다. null이랑 \n 이랑 다르다고 알고 있는데 왜 null 이 나온 것처럼 gets_s() 함수가 수행되지 않는지 궁급합니다!!감사합니다. (꾸벅)
-
해결됨독하게 시작하는 C 프로그래밍
문자열처리 함수소개강의에서 질문 있습니다.
강의 감사히 듣고 있습니다.질문 두 가지 있습니다.1.strcat_s 함수를 설명하실 때 strcat_s(szPath + 17 + 4, sizeof(szPath) - 25, "C programming");이라고 해주셨는데 22번째 인덱스부터 시작하여 널문자를 찾고 이어붙이는 구문이라면 전체 배열의 크기도 sizeof(szPath)-21로 조정을 해야 하는 것 아닌가요? 2.strcat_s(szPath + 17 + 8, sizeof(szPath) - 25, "C programming");에서 오류가 나는 것은 문자열 배열 넘어의 메모리를 시작값으로 설정했다는 것인데 확인할 수 있는 null 이 없기 때문인 건가요?감사합니다.
-
해결됨개발자를 위한 컴퓨터공학 1: 혼자 공부하는 컴퓨터구조 + 운영체제
프로세스 동기화 예시 질문
안녕하세요 강의를 복습하고 있는 학생입니다.책과 강의에서 프로세스 동기화를 예시로 들어주셨을 때 워드 프로세서 프로그램의 맞춤법 검사 프로세스, 입력 내용을 화면에 출력하는 프로세스 등이 있다고 하셨는데 혹시 이것들은 프로세스가 아니라 스레드가 맞지 않는지 질문드리고 싶습니다."프로세스"는 "컴퓨터에서 연속적으로 실행되고 있는 프로그램"이고, "스레드"란 "프로세스 내에서 실행되는 여러 흐름의 단위"이니 예시로 들으신 워드 프로세서 안에서의 각종 것들은 스레드에 더 적합해보이는데 프로세스로 작성하신 이유가 있으실까요? 만약 프로세스라면, 그것이 "부모 프로세스"와 "자식 프로세스" 간의 관계로 작성하신 것인지도 궁금합니다. (자식 프로세스와 스레드의 차이의 예가 더 있으면 좋겠습니다.)
-
해결됨개발자를 위한 컴퓨터공학 1: 혼자 공부하는 컴퓨터구조 + 운영체제
입출력 채널
1.입출력 채널이 일부 최신 입출력 장치 내부에 있다고 적혀 있는데요 바로 아래에는 입출력 채널이 있는 컴퓨터라고 적혀 있어서요 이게 입출력 장치에도 있을 수도 있고 컴퓨터에도 있을 수 있는 건가요? 2.423p 맨 윗줄 '키보드' > '하드디스크' 수정 필요합니다~유튜브 댓글에서 2쇄부터 수정 들어 가신다고 하셨는데제 책 4쇄인데 반영 안 되어서요~!혹시 다른 오타 수정해야 할 부분 리스트를 볼 수 있는 공간이 있을까요? 네트워크 책 언제쯤 나오나요,,, 강의 너무 좋아요감사합니다!
-
해결됨독하게 시작하는 C 프로그래밍
stdio.h 내 puts 함수 구현을 직접 볼 수 있나요?
안녕하세요 널널한개발자님 강의 재밌게 보고 있는 1인 입니다ㅎㅎ강사님께서 구현코드는 디버깅 과정에서 보여지지 않는다고 하셨는데, 볼 수 있는 방법이 있을까요? 모든 프로그래밍 언어의 기본이 되는 언어라고 배웠는데 실제구현을 볼 수 없다는 게 제 수준에서는 의아합니다. 찾아보니 소스파일 외의 구현코드를 찾기가 어렵고 챗지피티도 명쾌한 대답을 주지 못해서 질문 남깁니다. 여러번 질문했는데 항상 잘 답변해주셔서 감사드립니다~
-
해결됨독하게 시작하는 C 프로그래밍
getchar와 scanf의 차이
char ch = 0;scanf_s("%c", &ch, 1);printf("%d", ch); char ch = 0;ch = getchar();printf("%d", ch); 여기서 scanf_s와 getchar의 차이가 뭔가요?
-
해결됨독하게 시작하는 C 프로그래밍
memcpy 사용 후 free 함수 사용여부
memcpy 의 내부동작을 설명하실때 동적메모리할당 구문이 있었는대 이 부분은 free 로 안닫아줘도 괜찮은건가요??
-
해결됨독하게 시작하는 C 프로그래밍
qsort 함수에 관한 질문입니다.
stdlib에서 제공하는 qsort 함수qsort(void base, size_t width, int(*compare)(const void* key, const void* element))에서 compare부분이 비교함수를 가리키는 함수 포인터라고 알고있습니다.그렇다면,qsort(aList, 5, sizeof(int), *myCompare); 같이 넣지 않고qsort(aList, 5, sizeof(int), myCompare); 처럼 넣는 이유가 뭔가요?
-
해결됨독하게 시작하는 C 프로그래밍
함수 포인터 강의에서 질문이 있습니다.
int(*pfGetMax)(int,int,int) = GetMax; 를 통해함수 포인터 선언 정의를 동시에 하고printf("MAX: %d\n", pfGetMax(1,3,2)); 를 하셨는데함수 포인터를 사용하여 GetMax 함수를 호출하는 과정에서pfGetMax(1,3,2)를 사용하셨는데 이 표현이 이해가 가지 않았습니다.포인터의 간접지정을 통해서 값을 가져와야 한다고 생각했는데(*pfGetMax)(1,3,2) 처럼 해야하는 것이 아닌가요?
-
해결됨독하게 시작하는 C 프로그래밍
[필수 실습 문제] '*' 출력 놀이 응용
if문을 쓰는 것과 아래 코드처럼 for문만 쓰는 것 중에 어느 코드가 더 효율적인가요?for (int i = 1; i <= 5; i++) { for (int j = 0; j < 5 - i; j++) { printf(" "); } for (int j = 0; j < i; j++) { printf("* "); } puts("");}
-
해결됨독하게 시작하는 C 프로그래밍
[필수 실습 문제] 버스 요금 계산
안녕하세요 강사님 [필수 실습 문제] 버스 요금 계산 관련 질문 있습니다.저는 나이가 20살 미만이면 기본 버스 요금 1000원의 75% 적용한다는 구문을printf 함수 안에 input*0.75 이렇게 적었는데요이렇게 적으면 최종 요금이 0이 나오더라구요이렇게 되는 이유가 최종 요금을 나타내는 형식문자가 %d인데 *0.75 를 곱해서 일어난 것 같은데전체적으로 보면 input 0.75 = 1000 * 0.75 =750 의 정수형식이라서 상관없을 거 같은데 형식 문자가 %d 정수형이면 그 값을 나타내는 변수에도 정수만 들어가야하나요?
-
미해결자료구조 기본 개념 정리
자료구조 기본 개념 정리 - 순환큐 강의 내용 질문
자료구조 기본 개념 정리 - 순환큐이 강의에서 7:20 경에 self.head를 4라고 강사님이 말씀하시는데 영상처럼 초록색 화살표가 찍힌 0을 가리켜야 맞는거 아닌가요? 제가 이해를 잘못하고 있는지 강사님이 잘못 말씀하신건지 의문입니다.코드는 enqueue 메서드 안에 if((self.tail+1) % self.k == self.head): 이부분 설명하는 데입니다.
-
해결됨개발자를 위한 컴퓨터공학 1: 혼자 공부하는 컴퓨터구조 + 운영체제
새로운 입출력장치가 연결되었을 때 인터럽트
입출력 장치가 새로 연결되었을 때, 이 입출력장치의 인터럽트에 관한 정보들을 어떻게 알 수 있는지 궁금합니다.입출력장치에 맞는 ISR을 운영체제가 이미 가지고 있어서 이것을 연결해주는 건가요? 그렇다면 운영체제는 처음부터 여러가지 장치와 상황에 대비하여 ISR을 가지고 있는 걸까요?새로운 입출력장치가 입력되어서 인터럽트 벡터 테이블의 값에 변동이 생길 수도 있나요?
-
미해결IT입문자를 위한 전반적인 개념 정리
수료증 관련
수강완료시 수료증은 없나요?
-
해결됨개발자를 위한 컴퓨터공학 1: 혼자 공부하는 컴퓨터구조 + 운영체제
Ram의 기능
강의 제목 : RAM의 특징과 종류 예전에 초반 강의에선RAM을 현재 실행하고있는 프로그램 즉, 프로세스의 데이터와 명령어를 저장한다고 들었습니다. 근데 여기 강의에서는 RAM은 CPU가 실행할 데이터를 저장하는 공간이라고 하셧는데 그럼 RAM은 현재 실행하고있는 데이터와 명령어를 저장하는 기능과 실행"할" 데이터와 명령어를 저장하는 기능 두가지가 있는건가요?
-
해결됨개발자를 위한 컴퓨터공학 1: 혼자 공부하는 컴퓨터구조 + 운영체제
페이지폴트 횟수 질문입니다
안녕하세요 선생님 강의 너무나 잘 듣고 있습니다.14-3장 강의 내용이였던 페이지 폴트 횟수에 대해서 질문 있습니다.예를 들어 강의 시간으로 14:56에 나오는 최적 페이지 교체 알고리즘 예시화면에서페이지 폴트가 일어난다는 것은 참조하고자 하는 페이지가 없을 때 일어나는 것이라면 5를 찾을 때, 4를 찾을 때의 두 번 뿐만 아니라맨 처음 2, 3, 1을 프레임에서 찾을 때도 프레임에 페이지가 없으니 페이지 폴트가 일어나서 총 다섯 번의 페이지 폴트가 발생했다고 생각해야 하지 않나 궁금해서 질문드립니다. 감사합니다.
-
해결됨개발자를 위한 컴퓨터공학 1: 혼자 공부하는 컴퓨터구조 + 운영체제
오버플로우
연산결과가 연산을 담을수 있는 레지스터에 비해 너무 커지면 플래그에 담는다고 하셨는데그림상 플래그 레지스터에 결과값을 담는다는걸까요?아니면 오버플로우 플래그를 1로 내보낸다는걸까요?
-
해결됨독하게 시작하는 C 프로그래밍
[섹션10 연산자] 필수 실습 문제 합격, 불합격 판단하기
안녕하세요 강사님[섹션10 연산자] 필수 실습 문제 합격, 불합격 판단하기 문제 질문드립니다. 강사님께서는 printf 함수안에 조건(3항)연산자를 넣으셨는데요저는 nSelect이라는 문자열을 선언해서 nSelect에 합격, 불합격이라는 문자열을 저장해서 printf로 출력하는 방식으로 문제를 풀어봤습니다 nSelect이라는 변수에 문자열의 공간!?을 10byte로 선언하고 0으로 초기화 한뒤에 실행을 했더니 실행은 잘 되는데 nSelect이라는 변수에 빨간색 밑줄과 오류 코드가 L-value로 뜨더라구요 왼쪽 피연산자를 변수인 nSelect으로 선언했는데 오류코드가 왜 뜨는건지 모르겠고 오류코드가 뜨는 왜 점수를 80으로 입력하면 '합격', 70으로 입력하면 '불합격'이라고 실행이 잘되는데 왜 그런지 이유가 궁금합니다. 문제가 없는건가요? 일부러 오류를 내보려고 nSelect이라는 변수에 문자열의 공간!?을 1byte로 선언하고 0으로 초기화 한뒤에 실행을 했더니 일단 실행은 잘됩니다. "합격"이라는 글자는 한글이므로 한글자 당 2byte 총 4byte의 크기이고 "불합격"이라는 글자는 3*2 = 6byte라서 nSelect라고 선언한 문자열 변수에 공간에 없어서 실행조차 되지 않아야하는데 실행이 됩니다. 왜 실행이 되는 것일까요? 물론 하단 오류 목록에 '배열의 크기가 0보다 커야합니다.' '상수크기의 0 배열을 할당할 수 없습니다'라는 설명이 있긴하지만 실행은 되어서 의문입니다. 또한 8번째 코드의 L-vaule 오류는 여전히 나옵니다.nSelect 문자열의 크기 선언을 1byte로 하면 역시 실행은 잘되는데 여전히 L-value 오류 항목이 뜹니다 선언한 배열의 크기가 1byte인데 그보다 크기가 큰 "합격", "불합격"이 문자열에 대입되고 실행이 됩니다. 이유가 궁금합니다
-
해결됨독하게 시작하는 C 프로그래밍
포인터와 배열의 이름의 차이가 궁금합니다.
상수 포인터와 배열의 이름은 유사한 개념이라고 파악하고 있었는데, sizeof(배열의 이름)은 배열의 크기를 출력해준다는 점에서 약간의 차이가 있다는 점을 알게 되었습니다.또한, 참조 연산자를 통한 결과 또한 포인터의 경우, 메모리를 확인한 결과 해당 주솟값을 가리키고 있는 다른 주소의 값을 가지고 있었지만, 배열의 이름은 동일한 주솟값이 결과로 나오는 것을 확인할 수 있었습니다.제가 이해한 바로는 배열의 이름 자체는 배열의 시작 주소이기에 'test2' 는 'H'라는 배열의 시작 주소를 가리키고, '&test2'는 "Hello World"라는 배열 자체 주소를 가리키는 것이라고 판단을 했는데, 이것이 맞는 이해인지 궁금합니다.두 개념이 비슷하지만 약간의 차이가 있는 것 같은데 이 차이에 대해서 설명해주시면 감사하겠습니다.