월 19,800원
5개월 할부 시다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 해결됨홍정모의 따라하며 배우는 C언어
2분경 질문
char str[] = { 'H', 'I', '!' };여기서는 str이라는 문자열에 NULL 캐릭터가 없는데char str2[15] = { 'H', 'I', '!' };여기서는 str2라는 문자열에 널캐릭터가 있더라구요차이는 빈공간이 있느냐 없느냐 차이인 것 같은데str에는 빈공간이 없어 NULL 캐릭터를 넣어줄 공간이 없어서puts() 함수로 출력하면 'H', 'I', '!' 이외의 문자들이 출력이되고str2에는 빈공간이 있어 그 자리를 NULL 캐릭터로 채워줘서puts() 함수로 출력을 하면 'H', 'I', '!' 까지만 출력을 해주는 게 맞나요?뭔가 더 알맞는 표현으로 설명이 가능할 거 같은데 저는 잘 안되네요
- 미해결홍정모의 따라하며 배우는 C언어
입력 버퍼에 대한 개념이 없는데 4분 30초경 설명
입력 버퍼에 대한 개념이 없는데 4분 30초경 설명은 이해할 수 없는거 아닌가요..? 제가 앞 강의 중에서 놓친 부분이 있는지궁금하네요...질의응답 글 보고 입력버퍼에서 getchar로 값을 하나씩 꺼내올 때 입력버퍼에서도 하나씩 사라진다는걸 알았는데 제가 이해한 내용이 맞나요??
- 미해결홍정모의 따라하며 배우는 C언어
오류
수업에 나온 것과 똑같이 코딩을 했는데 오류가 다음과 같이 뜨는데 해결이 되질 않습니다.
- 미해결홍정모의 따라하며 배우는 C언어
9분 45초 경 질문
처음에 변수로 잡은 것이 double이면 scanf에 %d를 입력하면 왜 안 되는 건가요? 왜 %d가 아니라 %lf로 입력을 했는지 잘 이해가 가지 않습니다. 혼자서 %d 넣고 해보니까 에러가 떠요.
- 해결됨홍정모의 따라하며 배우는 C언어
저도 6분 30초경 &end가 이해가 잘 안되요
함수가 작동하는 구조가 이게 맞는지 궁금합니다.매개변수로 이중 포인터를 집어넣으면 이중 포인터가 가리키는 포인터의 메모리 공간에변환할 수 없는 문자의 공간의 주소를 대입해주는 게 맞나요?이게 맞다면 굳이 그냥 포인터에 주소를 대입해 주는 게 아니라이중 포인터를 매개변수로 이중 포인터가 가리키는 포인터에 주소를 대입해주는 이유가 뭔가요?
- 해결됨홍정모의 따라하며 배우는 C언어
2분 13초경 if (new_line)이 있어야 하는 이유
new_line = strchr(line, '\n'); 에서 line 문자열에서 '\n'을 찾으면new_line에 포인터를 대입하고 못 찾으면 NULL 캐릭터를 대입하는데포인터를 대입하고 *new_line = '\0';을 실행시키면 의도대로 되는 것이고널 캐릭터를 대입하고 *new_line '\0'을 실행시켜도 문제는 생기지 않을거 같아서if (new_line) 이라는 문장이 없어도 괜찮을 거 같은데 왜 있는 건가요?널 캐릭터를 대입하고 *new_line '\0'을 실행시키면 문제가 되서 그런건가요?아니면 다른 이유가 있는 건가요?
- 해결됨홍정모의 따라하며 배우는 C언어
strstr 함수 구현 질문
함수들을 직접 구현해보는 게 좋다고 하셔서 sprintf() 함수를 제외하곤 전부 구현하려고 노력해봤는데strstr함수는 어떻게 해야 할지 모르겠어서 구글링을 해봤는데https://blog.naver.com/tipsware/221371715770이런 글을 발견했어요코드를 따라치다 이해가 안되는 부분이 생겼는데while (*p_find_pos != 0 && *p_pos != 0 && *p_pos == *p_find_pos)에서 *p_find_pos != 0와 *p_pos != 0이 둘 다 존재하는 이유가 궁금합니다.strstr함수가 어떤 문자열에 특정 문자열이 포함되어있는지 확인하는 함수인데만약 어떤 문자열과 특정 문자열이 완전히 똑같다면 while의 조건문에서*p_pos == *p_find_pos 만 있으면 while문이 멈추지 않고 무한히 돌게 되니널 캐릭터를 만나면 멈출 수 있게 *p_find_pos != 0나 *p_pos != 0 둘 중에 하나는 있어야 한다는 건 알겠는데왜 둘 다 조건문에 있어야 하는지 잘 모르겠습니다.강의 내용이 아니라 질문하기가 좀 그랬지만 이런 질문글을 올릴만한 곳을 찾지 못해 여기에 올립니다. 답변 항상 감사합니다.
- 미해결홍정모의 따라하며 배우는 C언어
이게 왜 120이랑 5가 나올까요
나름 잘 이해했다고 생각했는데 어떤 부분을 잘못 이해하고 있길래... #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> long loop_factorial(int n); long recursive_factorial(int n); int main() { int num = 5; printf("%d\n", loop_factorial(num)); printf("%d\n", recursive_factorial(num)); } long loop_factorial(int n) { int sum = 1; for (int i = 1; n >= i; n--) sum *= n; return sum; } long recursive_factorial(int n) { int sum = 1; sum *= n; if (n > 0) recursive_factorial(n - 1); return sum; }
- 미해결홍정모의 따라하며 배우는 C언어
인자 인수 매개변수
인자란게 인터넷에서 찾아봤을 때 글마다 의미가 다른데 인자는 어떤 건가요
- 미해결홍정모의 따라하며 배우는 C언어
배열의 subscript(index)는 0보다 커야 한다?
realm과 realm_tax 변수를 배열로 만들었고, 배열로 만들어진 각각의 공간에 일일히 데이터를 지정해뒀더니, int realm[10]에 딸려있는 realm[0]에 오류가 나더군요. 오류내용은 제목과 같이 "배열의 사이즈는 0보다 커야 한다." 였습니다. realm[0]에 커서를 대어보니 error-type이란 정보를 볼 수 있었습니다. 이거 어떻게 해야 오류를 내지 않수 있나요?
- 미해결홍정모의 따라하며 배우는 C언어
10분 15초경 질문
dest = "Start something"; // Error여기서 에러가 생기는 이유를 잘 모르겠어서 찾아보니 같은 질문이 있길래 답변을 봤습니다.https://www.inflearn.com/questions/684074답변을 보고 컴파일러가 안 해주도록 만들어진 거고 그 이유는 런타임에 내용을 바꾸고 싶다면한 글자씩 바꾸는 방식으로 사용하도록 의도적으로 그렇게 정해 놨기 때문이라고 답변해주신 건 이해가 됬습니다.그런데그렇다고 안해주는 이유가 아예 없는 것은 아닌데 "Start something" 같은 문자열은 컴파일 할 때 프로그램에 탑재됩니다라는 말씀이 이해가 잘 안됩니다.문자열이 컴파일할 때 프로그램에 탑재되는 거랑 컴파일 타임이 아니라 런타임에 내용을 바꾸고 싶다면한 글자씩 바꾸라고 의도적으로 정해 놓은 거랑 무슨 상관인지 모르겠습니다.답변 항상 감사합니다.
- 미해결홍정모의 따라하며 배우는 C언어
이거 왜 질문이 두번씩 뜰까요
int main() { int c = 0; char z; while (1) { printf("Enter the letter of your choice : \na. averngers b. beep\nc. count q. quit\n"); z = getchar(); if (z == 'a') printf("Avengers assemble!\n"); else if (z == 'b') printf("\a"); else if (z == 'c') { printf("Enter an integer : "); scanf("%d", &c); for (int i = 1; c >= i; ++i) printf("%d\n", i); } else if (z == 'q') break; } return 0; } 왜 질문이 2번씩 나올까요
- 해결됨홍정모의 따라하며 배우는 C언어
문자열 크기와 null character 위치.
안녕하세요,문자열(문자형 배열)을 정의할때, 문자열 리터럴의 크기와 문자형 배열의 size가 같으면 null character가 붙지 않는 것 같은데 이 경우 왜 붙지 않는지 궁금합니다. 그림 처럼 디버거로 찍어보고 null character가 붙지 않는다고 판단했습니다.그리고 추가로, 출력했을 때 하기 그림처럼 이상한 한자가 나오는 이유는 printf 가 문자열을 출력하다가 null character를 만나지 못해 메모리의 엉뚱한 곳에 저장되어있는 쓰레기 값을 읽어오다가 컴파일러가 멈췄다 라고 이해하면 될까요?마지막으로, 그렇다면 char 형 배열을 선언할 시 리터럴의 크기보다 1만큼 크게 해줘야 하는지 궁금합니다.null character가 printf() 함수 사용시 용의성을 위해 문자열끝에 붙여지는 것이라면, 바꿔말하면 printf 를 사용하지 않을거라면 굳이 필요없으니까 제가 한것처럼 배열 크기와 리터럴 크기를 일치시키는게 좋을 것 같은데 맞게 생각했는지 궁금하니다.
- 미해결홍정모의 따라하며 배우는 C언어
초기화
int_arr[10]={0,1,2,3,4,5,6,7,8,9}; 에서 배열을 초기화 했다는 것이 이해가 되지 않습니다
- 미해결홍정모의 따라하며 배우는 C언어
24분 20초경 25분 5초경 질문
24분 20초경에char str1[6], str2[6];int count = scanf("%6s %6s", str1, str2); // run-time error위의 코드를 실행시키면 런타임 에러가 발생하는데 그 이유가 궁금합니다.교수님이 설명을 안하고 넘어가셔서 이걸 어떻게 이해해야 할지 모르겠어요.그리고 25분 5초경에int count = scanf_s("%5s %5s", str1, 6, str2, 6);5자리에 있는 숫자와 6자리에 있는 숫자가 달라도 괜찮은 건가요?이것도 설명이 없어서 어떻게 이해해야 할지 모르겠네요
- 미해결홍정모의 따라하며 배우는 C언어
float f5, double d5
16진수 0x1.1p1에서 0xb.ap1로 바뀌는 게 대응하는 문자라서 그런 건가요? 같은 1인데 왜 바뀌는 문자가 다른지 모르겠어요.f5와 d5를 출력할 때 %a는 정수 출력할 때 %d와 똑같은 역할인가요?그리고 f5와 d5를 출력했을 때 나오는 수를 어떻게 해석하는 건지 잘 모르겠습니다.
- 미해결홍정모의 따라하며 배우는 C언어
7.8 4분26초에 !line_flag가 트루가 아니라면 이라고 하는데
맨 앞에서 이미 bool line_flag = false; 라고 대입 했으면!line_flag는 ! false여서 거짓이 아니라면 이라고 해야 되는 거 아닌가요??
- 해결됨홍정모의 따라하며 배우는 C언어
scanf 질문
질문1. float d = 0.00; scanf("%f", &d);일 때 사용자가 데이터를 입력하면, 데이터가 입력버퍼로 이동한다scanf는 입력버퍼에서 데이터를 읽어들일 때 형식지정자가 %f 이므로 float형으로 데이터를 변환한다%f와 저장할 변수의 타입이 일치므로 float형 변수 d의 메모리 공간에 데이터를 저장한다성공적으로 입력받은 아이템의 개수 1을 반환한다scanf가 이 과정대로 동작하는지 궁금합니다---------------------------------------------------------------질문2. 위 과정이 맞다면 double d = 0.00; scanf("%f", &d); printf("%f", d); 에서 사용자가 3.14를 입력하면3.14가 입력버퍼로 이동한다입력버퍼에서 3.14를 읽어들일 때 %f로 변환한다%f와 저장할 변수의 타입이 일치하지 않으므로 double형 변수 d의 메모리 공간에 저장하지 못한다성공적으로 입력받은 아이템의 개수가 없으므로 0을 반환한다이렇기 때문에 실행하고 어떠한 값을 입력하더라도 초기값인 0.000000이 출력되는 건가요?---------------------------------------------------------------질문3. unsigned ui; scanf("%i", &ui); printf("%i", ui); %i는 signed int 타입 변수의 형식지정자로, unsigned int형 변수 ui와 다른게 맞나요? 근데 사용자가 -123을 입력하면 어떻게 변수 ui의 메모리 공간에 -123을 저장해서 그것을 출력할 수 있는지 궁금합니다
- 미해결홍정모의 따라하며 배우는 C언어
실행 파일이 안만들어져요..ㅠㅠ
분명히 똑같이 파일경로 찾아서 환경변수 안 패스에 잘 넣고 했는데.. exe 파일 자체가 뜨질 않습니다.. 잘못된 점이 있나요?
- 미해결홍정모의 따라하며 배우는 C언어
2의 보수 방법에서 양수표현법
강의에서 설명해주신 2의 보수 방법에서, 양수를 표현하는 방법에 관해 질문이 있습니다. 강의에서 -5를 예로 드신 건 이해했는데, 반대로 5를 표현하려 할 때는 어떻게 되나요?5를 2진수로 변환->00000101(2)->보수:11111010(2)->더하기 1: 11111011(2)인데, 그럼 양수 5와 음수 -5의 구분이 안 되지 않나요?강의에서 첫 비트가 1이면 음수, 0이면 양수인 것으로 구분한다고 하셨는데, 8개 비트 앞에 부호에 해당하는 1비트를 더 둔다는 뜻인가요? 그러니까, (1/11111011->-5, 0/11111011->5) 이런 식으로 작동하는 건가요?좋은 강의 감사합니다.