묻고 답해요
160만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨독하게 시작하는 C 프로그래밍
독하게 시작하는 C 프로그래밍 책 관련 문의
문제가 된다면 질문은 바로 삭제하겠습니다. 다름이 아니옵고, 책을 구매하고 싶은데 절판이라 너무 아쉽습니다. 혹시 재발간 계획은 없으신지..구할 수 있다면 어디인지 궁금합니다🙏
-
해결됨개발자를 위한 컴퓨터공학 1: 혼자 공부하는 컴퓨터구조 + 운영체제
학습 순서 문의
컴퓨터 구조 부분을 학습하지 않고 운영체제부터 학습 가능한가요??
-
해결됨개발자를 위한 컴퓨터공학 1: 혼자 공부하는 컴퓨터구조 + 운영체제
뮤텍스 락 관련해서 질문이 있습니다.
안녕하세요! 좋은 강의 감사드립니다. 뮤텍스 락과 관련해서 질문이 있습니다. 제가 다른 운영체제 강의 영상을 보니까 이 강의에서 설명해주신 뮤텍스 락에 대한 설명이 스핀락 개념과 유사하더군요. while문을 반복해서 돌면서 계속해서 lock을 확인하는 부분이요. 그 강의에서 뮤텍스는 자원을 얻을 수 없을 때는 while을 도는 것이 아니라 쉬면서 큐에 들어간다고 하더라구요.. 혹시 어떻게 이해하는 것이 맞을까요? 혼란이 와서 질문 남겨봅니다.
-
해결됨독하게 시작하는 C 프로그래밍
Lookup 배열과 STL MAP 과의 비교
안녕하세요오늘도 잘 듣고 있습니다 Lookup 배열에 대해 보다 보니 stl의 map과 같다는 생각이 들게 되는데요 실제로 lookup 배열과 map 두 자료 구조 형태의 성능에 대한 차이가 궁금하네요 어떤 방식이 더 효율적인지 알고 싶습니다lookup의 경우 index(?) 라고 해야 하나요? ^^ 그런 구성을 사용자가 직접 신경을 써서 정해야 할 것 같지만 이 부분을 제외하면 성능만으로 봤을 때 어느 방식이 더 좋은지 궁금합니다
-
해결됨독하게 시작하는 C 프로그래밍
비트연산을 이용한 뺄셈
비트연산을 사용한 뺄셈에서 a b라고 사용자에게 입력받을 변수 선언하고 (~b+1)+a; 라고 하면 캐리를 고려하지 않은 오류가 발생하지 않나요? 음수간의 뺄셈에서도 오류가 발생할 구간이 있을 것 같은데 설명 부탁드리겠습니다 ㅠㅠ
-
해결됨독하게 시작하는 C 프로그래밍
필수실습문제 MyStrcpy() 함수 작성하기 에서 질문있습니다.
필수실습문제 MyStrcpy() 함수 작성하기 에서void MyStrcpy(char* pszDst, int nSize, char* pszSrc) { size_t nLenSrc = 0; nLenSrc = strlen(pszSrc); for (int i = 0; i < nLenSrc; ++i) pszDst[i] = pszSrc[i]; }로 함수를 정의하셨는데 이럴경우에 매개변수로 들어간 nSize는 함수에서 어떤 의미가 있는건가요...?
-
해결됨독하게 시작하는 C 프로그래밍
정수와 실수 출력에 관하여...
#include <stdio.h> int main(void) { int fee=1000; printf("%d\n", fee * 0.75); int fee2 = 1000 * 0.75; printf("%d", fee2); return 0; }섹션 11의 버스요금 계산 문제를 풀면서 궁금한 점이 생겼습니다. 예제를 작성할때 첫번째 방법으로 풀었더니 출력이 0이 나와서 두번째 방법으로 해보니 정상적으로 750이 출력되었습니다. 이 두 가지 방법의 차이점이 무엇인가요?
-
해결됨독하게 시작하는 C 프로그래밍
표준입출력 강의를 마치고 질문을 드립니다
printf 함수 같은 경우에는 데이터 Size를 정하지 않고, 어디에 저장 될지를 지정 하지도 않는데,Printf 함수는_getch() or_getche() 와같은 Non buffered I/O같은 방식인가요???
-
해결됨개발자를 위한 컴퓨터공학 1: 혼자 공부하는 컴퓨터구조 + 운영체제
[페이지 교체 알고리즘]
[페이지 교체 알고리즘]페이지 교체와 프레임 할당 강의 중 16:15부분에서 궁금한 점이 해결되지 않아 질문드립니다.최적 페이지 교체 알고리즘이, "앞으로 오랫동안 사용되지 않을 페이지를 예측하는 것이 어렵기 때문에 구현하기 힘들다" 라고 설명해 주셨는데, 페이지 참조열을 통해 판단할 수 있지 않나요?예를들어 현재 페이지 참조열이 [2 2 2 3 5 5 5 3 3 3 7] 이라고 가정했을때, 특정 시점 아무때나를 기준으로 사용되지 않는 페이지를 예측하는것이 가능하다고 생각합니다.이 부분에 대해서 부연 설명을 부탁드립니다.감사합니다.
-
해결됨독하게 시작하는 C 프로그래밍
독하게 시작하는 C프로그래밍 교재
안녕하세요독하게 시작하는 C프로그래밍 강의를 구매하고 수강하려하는데 교재가 모두 절판되었네요따로 구할 수 있는 방법이 없을까요?중고 서적으로 보니 가격이 6만원이 넘더라구요...
-
해결됨독하게 시작하는 C 프로그래밍
섹션 13 다차원 배열 실습 문제 중
첫번째 문제 혼자 풀어봤는데 아무리 규칙을 찾으려 해도 이렇게 밖에 안짜지는데요,, 혼자 풀수 있어야 한다고 하셔서 혼자 많이 고민해봤는데 좀 더 좋은 방식을 찾으려고 해도 제 머리로는 도저히 안짜집니다 ㅠㅠ aList[2][3] = aList[0][3] + aList[1][3]; 특히 이 부분이 너무 그냥 막 짠 코드 같아 보이는데 이게 맞는 방식인지 여쭤봅니다.. #include <stdio.h> int main(void) { int aList[3][4] = { {10,20,30}, {40,50,60}, }; for (int i = 0; i < 2; ++i) { for (int j = 0; j < 3; ++j) { aList[i][3] += aList[i][j]; aList[2][j] += aList[i][j]; aList[2][3] = aList[0][3] + aList[1][3]; } } for (int i = 0; i < 3; ++i) { for (int j = 0; j < 4; ++j) { printf("%d\t", aList[i][j]); } putchar('\n'); } return 0; }
-
해결됨독하게 시작하는 C 프로그래밍
strpbrk 관련 예시 함수
안녕하세요! strpbrk 설명해주시며 보여주셨던 예제 관련해서 질문이 있습니다. 원본 예제에는 문자열을 찾아서 주소, 인덱스, 문자를 출력하는 코드가 아래와 같이 되어 있었습니다. while ((pszStart = strpbrk(pszStart, szSet)) != NULL) { printf("[%p] Index: %lld, %c\n", pszStart, pszStart - szBuffer, *pszStart); pszStart++; }그런데 이 코드를 실행시키면 위와 같이 인덱스 값과 문자가 제대로 출력되지 않았습니다. 메모리 상 pszStart와 szBuffer값의 차이는 인덱스 값과 같았습니다. 그래서 아래와 같이 %lld 대신 %d 로 형식지정자를 바꾸니 제대로 출력이 되었습니다. while ((pszStart = strpbrk(pszStart, szSet)) != NULL) { printf("[%p] Index: %d, %c\n", pszStart, pszStart - szBuffer, *pszStart); pszStart++; }일단 먼저 제가 코드를 잘못 실행해서 이런 결과가 나온 건지 궁금합니다. 그리고 여기서 형식 지정자는 단지 값의 출력 형식을 바꿔주는 것으로 알고 있고, %d와 %lld는 10진수 정수 형식으로 출력한다는 점은 같은데 왜 다른 값이 출력되었는지 궁금하고, 형식 지정자가 %lld일 때 왜 뒤에 출력되는 문자 *pszStart의 값까지 잘못 출력되는지 궁금합니다. 항상 좋은 강의 만들어 주셔서 감사합니다!
-
해결됨독하게 시작하는 C 프로그래밍
변수 초기화 질문
안녕하세요 최호성 개발자님 질문에 앞서 좋은 강의 제공해주셔서 감사하다는 이야기드립니다 🙂 64bit 체제에서 long int로 변수 선언 시 메모리가 8byte가 되는 것으로 알고 있고, unsigned long int ulnewData = 1UL; 로 변수를 초기화 했을 때, 01 00 00 00 16 20 09 6b라고 메모리에 초기화되었는데 01 00 00 00 00 00 00 00 으로 메모리에 초기화되어야 하는게 아닌가요? 그림의 메모리 주소인 48FC78FB29 ~ 48FC78FB2B까지 0으로 초기화되어야하는게 아닌가 싶어서 질문드립니다.
-
해결됨독하게 시작하는 C 프로그래밍
argc, argv
안녕하세요. 함수 매개변수 중에 argc, argv가 무엇인지 궁금합니다!
-
해결됨독하게 시작하는 C 프로그래밍
scanf_s상에서 7/2의 경우
산술연산자 영상 8분40초에서scanf_s("%d",&x);에 대해 7/2를 입력하셨는데 그 후에 결과를 보니 7로만 인식이 되어 7/3=2, 7%3=1 의 결과가 나온 것을 확인하였습니다.혹시 scanf_s가 7/2를 3으로 인식하지 않고 7로 인식하는 이유가 무엇인가요? 슬래시(/)가 scanf_s에서는 인식하지 않는것인가요?
-
해결됨독하게 시작하는 C 프로그래밍
scanf_s 연속 사용에 대해 질문 있습니다.
위 문제와 같이 scanf_s를 연속으로 사용할 때 궁금한 점이 있습니다.먼저 첫번째 입력으로 1을 입력하면 버퍼에 [1][\n] 이렇게 입력되고 1이 빠져나가면 [\n]이 버퍼에 남게 되는 걸로 이해하고 있습니다. 그렇다면 두번째 입력 때 [\n] [2] [\n] 이렇게 입력이 되는건가요?또한 만일 엔터가 맨 앞에 있다면 왜 scanf_s를 연속으로 쓸 때는 스킵이 안되는지와 get_s와 같이 쓰면 스킵이 되는지가 궁금합니다..!
-
해결됨독하게 시작하는 C 프로그래밍
getch() / getche() underbar 없이도 실행이 되는데??
안녕하세요 엉뚱한 질문일수도있는데,#include <conio.h> 를 입력 안하고 빌드하고 실행했을때_getch() / _getche() 앞에 underbar 없이도실행이 되는데, 제가 잘못한건가요?#include <conio.h> 입력했을때 _getch() underbar를 입력안하면 빌드 오류가 납니다.
-
해결됨독하게 시작하는 C 프로그래밍
섹션 9, 표준 입/출력 관련 질문입니다!
널널한 개발자님! 항상 좋은 강의 감사드립니다ㅎㅎ다름아니라 섹션 9의 문자, 정수 입력과 개행문자 제거 부분에서 풀리지 않는 부분이 있어 이렇게 질문을 올리게 되었습니다.강의 중 24:28 쯤, "퍼올려도 N이 남는다"라는 부분이 이해가 잘 가지 않는데요!제가 이해한 바로는 scanf_s 함수에서 %d\n의 형태로 데이터를 받기 때문에 입력 버퍼 내부에 개행문자도 함께 삭제됐으므로 다음 개행 문자를 입력받을 때까지 사용자 입력을 계속 요청하는 것으로 알고 있었는데, 엔터를 쳐도 개행문자를 인식했음에도 계속해서 개행문자가 남는 이유에 대해서 알고 싶습니다!다시한번 감사드리고, 추운 날씨 몸 건강도 잘 챙기시기를 바라겠습니다. 화이팅입니다!
-
해결됨독하게 시작하는 C 프로그래밍
강의자료 관련 질문입니다.
항상 좋은 수업 감사합니다. 강의자료 관련해서 질문이 있습니다.강의를 듣다보니 강의자료를 사전에 작성해보고 수업듣고 싶은데 강의자료를 못찾겠습니다ㅠㅠ이게 저만 못찾는 건지 커리큘럼 옆에 구름모양으로 있다는데 안보이네요.원래 강의자료가 없는건지 제가 못찾는 건지 궁금합니다.백문이 불여일타라고 연습해보고 싶어요!!!
-
미해결독하게 시작하는 C 프로그래밍
64bit 메모리 주소에 들어있는 값이 128bit인 이유가 궁금합니다.
왼쪽 빨간 박스는 "메모리 주소", 오른쪽 노란색 박스는 "Data"메모리 주소는 64bit(8byte) CPU 체계이므로 4bit씩 16개 묶음으로 표현했고, 각 행마다 있는 메모리 주소에 들어있는 data 즉, 값이 오른쪽에 있는 거구요.그 오른쪽에 있는 데이터가 16진수(8bit)로 16개가 나열돼 있습니다. 그럼 총 128bit = 16 byte 여기서 이해가 안 됩니다. ㅠㅠ 64bit 메모리 주소는 4bit * 16 = 64(=8byte)각 메모리 주소의 데이터는 8bit(1byte) * 16 = 128(=16byte)16개로 나열돼 있는 건 동일한데 왜 bit 수가 다른 거죠?그리고 데이터에 16진수로 16개 끊은 게 어떤 의미일까요?16진수 1개씩 끊어서 총 16개를 각각 하나의 의미로 파악한 후, 전체를 하나의 데이터로 봐야 하는 건가요?64bit 메모리 주소의 데이터는 128bit이다. 이렇게 그냥 암기해야 하나요?