묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨독하게 시작하는 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이다. 이렇게 그냥 암기해야 하나요?
-
해결됨개발자를 위한 컴퓨터공학 1: 혼자 공부하는 컴퓨터구조 + 운영체제
[메모리 보호] 베이스레지스터
CPU가 베이스 레지스터가 있다고 하셨는데 프로그램에 따라서 베이스 레지스터가 다를 것 같습니다.1, 레즈스터 셋으로 프로그램 마다 각각 관리를 하게 되는건가요?CPU가 MMU에게 논리 주소를 던질 때 베이스 레지스터 값도 같이 던지는 건가요? 아니면 MMU가 CPU에서 찾아 오는건가요?
-
해결됨독하게 시작하는 C 프로그래밍
cpu의 메모리 관리 방법이 이해가 잘 안됩니다.
당장은 돈이 딸려 넓고얕게 공부하는 컴퓨터구조 강의를 구입하지는 못 한 학생입니다. 챗gpt를 이용해서 모르는 부분을 채워나가고 있었으나, 그래도 제대로 이해가 안 되는 부분을 채워가고싶어 질문 드립니다.일단 제가 알고 있는 전제부터 깔고 가겠습니다.1.모든 메모리 공간은 하나당 1바이트의 크기를 가지고있는걸로 알고 있습니다. 그리고 해당하는 1바이트의 메모리 공간마다 주소를 갖고있는 걸로 알고있습니다.2. 64비트 아키텍쳐 cpu는 주로 8바이트 단위로 메모리 주소를 처리하는 걸로 알고 있습니다. 그러나 1바이트 단위로도 메모리를 처리할 수 있는 걸로 알고 있습니다. 질문 내용-1. 일단 위에 알고있는 내용이 사실인지 궁금합니다.2. 변수로 지정할 수 있는 메모리 최소 크기가 1바이트인 이유가 위와같은 이유 때문인가요? 그리고 최대크기도 8바이트인걸로 아는데 위와같은 이유때문인가요?3. 머신코드 == 어셈블리어 인가요? 아니면 머신코드는 원래 이진수 코드만을 의미하는건데 이제는 어셈블리어를 사람들이 쓰지 않으니깐 머신코드라고 통합해서 지칭하는건가요?영상을 다시 봐도 이해가 잘 안가네요.
-
해결됨독하게 시작하는 C 프로그래밍
혹시 섹션 11 switch-case문 짊문입니다.
scanf_s("%d%c%d", &x, &cOperator, 1, &y);왜 scanf_s에 1 없이 해보니 안되던데 왜 그런건가요?
-
해결됨독하게 시작하는 C 프로그래밍
C공부와 학습에 대한 총 투입시간 질문.
선생님 강의로 열심히 공부하는 학생입니다. 학습에 투입되어야하는 시간관련해서 질문이 있습니다. C언어 공부를 이제 막 시작했는데요, 유튜브 영상과 해당 강의에서도 "하루 3시간 강의 + 혼자 3시간 학습" 스케쥴로 매일한다고 가정했을 때 C언어 공부만 2개월을 공부해야 한다고 하셨는데요, 독하게 시작하는 C프로그래밍 수업은 30시간 정도인데요, 하루 3시간씩 강의를 들으면 10일에 끝나게 되는 걸까요..? 선생님 말씀을 제가 오해한 것인지 여쭤봅니다.해당 강좌로 C언어의 어느정도 수준까지 학습을 하게 되는 것인지 알고 싶습니다.그리고 해당 강좌를 끝까지 모두 수강하면(스스로 익히는 것까지 포함) 이후 학습해야할 강좌나 커리큘럼이 어떻게 되나요?항상 감사드립니다^^
-
미해결독하게 시작하는 C 프로그래밍
비주얼 스튜디오 관련 여쭤봅니다..
해당 수업에서 gets함수를 활용한 코드를 컴파일하여 실행하면 다음과 같은 문제가 뜨면서 실행이 안됩니다.. 이전 hello world 출력할 때는 문제 없이 실행이 됐엇는데, 다른 프로젝트 생성 후 실행하면 이런 문제가 뜨니 미치겠습니다 ㅜㅜ 인터넷 서칭으로 계속 찾아보곤 있는데, 선생님께서 혹시 해결 방안을 아시는가 싶어 질문드립니다..
-
해결됨독하게 시작하는 C 프로그래밍
단/항 증감연산자 12:44 결과값
위의 출력값은 24가 나와야할것 같은데 25인 이유를모르겠습니다. Chat gpt에게 코드를 똑같이보여줘도 24라고하네요..
-
해결됨독하게 시작하는 C 프로그래밍
보수와 수의 음수는 같은 게 아닌가요?
뺄셈이 보수의 덧셈이라고 하셨는데 1 - 1과 1 + (-1) 과 같은 개념이니 보수와 수의 음수는 같은 거 아닌지 여쭤보고 싶습니다.
-
해결됨독하게 시작하는 C 프로그래밍
평균값 구하기
안녕하세요. 강사님께서 작성하신 코드와 제가 작성한 코드를 비교를 해봤는데 작동은 되는데 다른 부분이 있어서 질문 드립니다.아래와 같이 코드를 짜면 혹시 불필요한 부분이 있을지요? #include<stdio.h> #include<stdlib.h> int main(void) { int x = 0; int y = 0; printf("두 정수를 입력하세요.:"); scanf_s("%d %d", &x,&y); printf("두 정수의 평균 값은: %.2f 입니다.", (double)x + y / 2); return 0; }
-
해결됨개발자를 위한 컴퓨터공학 1: 혼자 공부하는 컴퓨터구조 + 운영체제
힙영역과 스택영역이 충돌할 수도 있는건가요?
안녕하세요! 강의 재밌게 잘 수강하고 있습니다!힙 영역과 스택 영역이 반대 방향으로 가변적으로 커지는 이유가 메모리가 겹치지 않도록 하기 위해서라고 하셨는데 반대 방향이더라도 그림과 같이 가변적으로 커지면 메모리 상에서 겹치는 부분이 생기는 것으로 보이는데 제한이 따로 있어서 상관이 없는지 궁금합니다.
-
해결됨독하게 시작하는 C 프로그래밍
동기 비동기와 getchar( )/ putchar ( ) <-> _getch( ) / _getche ( )
getchar( )/ putchar ( ) 가 비동기 실행 getch( ) / getche ( ) 이 동기 실행 이렇게 이해해도 될까요?
-
해결됨독하게 시작하는 C 프로그래밍
기본 환경이 windows11 인데, windows10이어도 상관없나요?
안녕하세요. 독하게 시작하는 C~ 수강자입니다.설치환경을 보니 windows 11 인데, 혹시 windows 10 환경도 상관이 없을까요?노트북이 구형이고 아직 windows 10 을 사용해야 되는 이유가 있어서 11로 업그레이드가 불가능한 상황입니다. 감사합니다.