월 19,800원
5개월 할부 시다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 미해결홍정모의 따라하며 배우는 C언어
10:33 코드 변형하다가 에러발생
위의 코드에서 보시다시피 똑같은 코드임에도 불구하고 main 함수내에서 작성하였을때는 오류가 나지 않는데 함수내에서 작성시 위와같은 에러가 발생합니다. 현재까지 배운 지식으로는 도저히 이유를 알수가 없습니다. 검색해봐도 뜨지않네요.
- 미해결홍정모의 따라하며 배우는 C언어
8.5 숫자와 문자를 섞어서 입력받기 질문
void display(char cr, int lines, int width); int main() { char c; int rows, cols; printf("Input one character and two integers : \n"); while ((c = getchar()) != '\n') { scanf("%d %d",&rows, &cols); display(c, rows, cols); printf("Input another charcter and two integers:\n"); printf("Press Enter to quit.\n"); } return 0; } 저는 여기서 입력시키면 다시 입력 할 수 없습니다. c=getchar() 에서 \n 가 마지막에 입력되서 프로그램이 종료되는 거라면 어째서 선생님 강의에서는 종료되지 않습니까 ?
- 미해결홍정모의 따라하며 배우는 C언어
8.4 사용자 인터페이스는 친절하게
int count = 0; while (1) { printf("Current count is %d. Continue? (y/n)\n", count); if (getchar() == 'n') break; while (getchar() != '\n') continue; } 여기서 왜 while(getchar() !='n') continue; 가 버퍼를 무시하나요. ? 개행문자가 들어 오지 않으면 continue를 만나서 다시 printf로 가야 하는거 아니에요 ?
- 해결됨홍정모의 따라하며 배우는 C언어
3:55 질문드립니다
교수님께서 3:55쯤에 '이 주소가 아니라 이 주소에요' 라고 말씀하시는데 화면을 보면 배열 이름인 mystrings은 주소가 없어야하는게 맞다고 생각했는데 0x012ffcd0이라는 주소를 가지고있어서 의문이 생겼습니다. 배열의 이름은 포인터 상수라고 들었는데 포인터 상수이기 때문에 주소를 가질 수 없지 않나요? 아니면 포인터 상수가 아닌건가요? 배열이름은 첫번째요소를 가리키므로 첫번째요소의 주소값을 가지고 있으면 모르겠는데 mystrings의 주소와 mystrings[0]의 주소가 서로 다르네요. 0x012ffcd0 라는 주소는 어떤 의미를 가지고 있는건지 궁금합니다. 질문을 정리해보자면 1. 교수님께서 말씀해주시진 않았지만 배열의 이름은 포인터 상수라고 어느 책에서 봤는데 배열의 이름을 포인터 상수라고 정의해도 되나요? 2. 1.의 질문이 맞다면, 배열 이름인 mystrings는 포인터 상수(L-value)이므로 주소가 없지 않나요? 3.0x012ffcd0은 어떤 주소를 나타내는건지 궁금합니다. 감사합니다.
- 미해결홍정모의 따라하며 배우는 C언어
1차원 -> 3차원 질문입니다.
중간에 1차원 배열을 3차원처럼 사용할 때, 1차원 index 구하는 부분에 궁금한점이 있습니다. idx = d + (depth * c) + (row * col * r) 이라고 되어있는데, r = 2인 경우에는 idx가 12 이상이 나와버리네요.. 혹시 (row * col * r) 이 아니라 ( depth * col * r ) 인가요?
- 해결됨홍정모의 따라하며 배우는 C언어
19:24 질문드립니다.
강의 내용을 토대로 name의 사이즈를 구하고 싶어서 코드를 만들어봤는데요. char* name[] = {"hello", "hi"}; printf("%zd\n", sizeof(name)}; 제가 생각했던 것은 'H', 'e', 'l', 'l', 'o', '\0' , 'h', 'i', '\0' 널 문자를 포함한 총 9개의 문자와 1byte(char타입형)을 곱해 9byte라고 생각했는데 8바이트가 나옵니다.. 왜 그런지 알 수 있을까요??
- 미해결홍정모의 따라하며 배우는 C언어
n1 = 1; 입력 부분에서
n1 = 1; 적었는데 n1에서 계속 오류가 나네요. 보니까 n1이란 명령어가 따로 존재해서 이런 오류가 나는 듯한데 어떻게 하나요?
- 해결됨홍정모의 따라하며 배우는 C언어
16:54 질문 드립니다.
강의 화면 64번째,65번째 줄에 관한 질문입니다. 65번째줄: printf("%p\n", arr[0]); 에서 arr[0]은 arr[0][0]을 가리키는 상수형 포인터로 알고있습니다. 그래서 arr[0]에는 arr[0][0]의 주소값이 담겨져 있을거라고 생각했습니다. 제가 궁금한 것은 64번째줄: printf("%p\n",&arr[0]); 가 왜 정상적으로 작동하는지 모르겠습니다. arr[0]은 이미 arr[0][0]의 주소값을 저장하고 있는 상수형 포인터인데, 상수형태에 &연산자를 붙이는것이 어떻게 가능한 일인지 궁금합니다.
- 미해결홍정모의 따라하며 배우는 C언어
8진수 16진수 궁급합니다!
안녕하세요 강의 (3.8_8진수와 16진수 2분 40초) 비트 관련하여 궁하여 작성합니다! 2진수는 32비트라 1이 32인게 이해가 되는데요 8진수는 왜 7이 10개인지 궁금합니다!! (그리고 앞에 왜 3이 들어 가는지도 알려주시면 감사드립니다) 16진수는 왜 f가 8개인지 궁금합니다!!
- 미해결홍정모의 따라하며 배우는 C언어
Buffer 질문 있읍니다.
#include <stdio.h> void display (char cr, int lines, int width) { int row, col; for (row = 1; row <= lines; row++) { for (col = 1; col <= width; col++) putchar(cr); putchar('\n'); } } int main() { char c; int rows, cols; while (1) { scanf("%c %d %d", &c, &rows, &cols); //while (getchar() != '\n') continue; //{ display (c, rows, cols); if (c == '\n') break; //} } } (space는 (sp)로 표기하겠습니다. 질문 1) A(sp)3(sp)3A(sp)3(sp)3(sp)(Enter) B(sp)1(sp)2(sp)(Enter) 을 입력하면 3분 5초의 결과 값이 나오게 됩니다. 이러한 결과가 나오게되는 과정이 맞는지 확인해 주세요. (ASCII code로 쓰지는 않겠습니다.) A(sp)3(sp)3(sp)(Enter) 후 buffer에 [A, (sp), 3, (sp), 3, (sp), \n] 이 저장되어 있다. While문이 한번 돌고 buffer에는 [(sp), \n]이 존재한다. c주소에는 A, rows주소에는 3, cols 주소에는 3이 저장되어 있다. 두번째 while문이 시작된다. buffer에 값이 있으므로 scanf함수가 c 주소에 (sp)를 저장한다. scanf함수가 \n도 가지고 오려 하지만 \n의 자료형이 정수가 아님으로 scanf 함수가 종료됩니다. 따라서 c 주소에 (sp), rows 주소에 3, cols주소에 3이 저장된 채로 display함수가 실행 됩니다. 따라서 3*3의 공백이 출력 됩니다. 세번째 while문이 시작됩니다. buffer가 비었음으로 scanf가 자료를 읍력 받습니다. 따라서 buffer에 [B, (sp), 1, (sp), 2, (sp), \n]가 저장되고 그후는 첫번째 while문이 실행될때랑 똑같습니다. 따라서 결과로는 3분 5초의 결과 값과 같이 나옵니다. 질문 2) 질문 1에서 두 번째 while문 일때 3*3 공백이 출력 되어야 하는데 왜 3번째 while 문이 작동할때 Enter을 누른뒤 3*3 공백과 2 * 1 B가 출력 되는 것인가요? 질문 3) while(getchar() != '\n') continue; 코드가 어떻게 buffer을 초기화 시켜주는 것인가요? continue 때문인가요? 감사합니다.
- 미해결홍정모의 따라하며 배우는 C언어
8.5 3분에 예제 buffer 질문 있습니다.
8.5 3분 예제 1)강의에 알려주신데로 입력 했는데 강의 와는 다르게 B 1 2를 입력한후 12칸의 빈 줄이 생겼습니다. 2)또한 buffer가 어떤 상태라서 두번째 입력(B 1 2)을 하였을때 빈칸이 생기는지 궁금합니다. 감사합니다.
- 미해결홍정모의 따라하며 배우는 C언어
float 관련하여 질문드립니다!!
위 그림과 같이 float는 4바이트인데 왜 8바트로 변화이 된다고 나온건지 궁금합니다. 항상 궁금한것을 답변해주셔 감사합니다!!!!!
- 미해결홍정모의 따라하며 배우는 C언어
1.11 명령 프롬포트 관련해서 질문있습니다!
x86 Native Tools Command Prompt for VS 2019를 실행시켜서 explorer . 실행 후 cd .. 까지 실행은 성공했는데 cd pre 치고 탭 키를 누르는데 컴퓨터에서 미실행 소리만 나고 preview 완성이 안됩니다. 그리고 preview를 직접 입력을 해서 실행을 해도 '지정된 경로를 찾을 수 없습니다.' 이렇게 뜨는데 뭐가 잘못된 걸까요? ㅠㅠ
- 미해결홍정모의 따라하며 배우는 C언어
scanf관련하여 질문드립니다!!
위에 그림과 같이 _CRT_SECURE_NO_WARNIGS을 추가하여도 scanf밑에 초록색 선이 계속 나타납니다 교수님 강의 동영상을 보면 녹색선이 안나오시던데..... 컴파일 실행 시 문제는 없지만 시각적으로 보기 불편합니다 혹시 숨기거나 안나오게 하는 방법이 있을까요?
- 미해결홍정모의 따라하며 배우는 C언어
좀 이상할수 있는 포인터 질문입니다....
보시다시피 주소값의 최소 단위는 4byte라고 강의에서 배웠는데요. 이게 말하자면 4byte 간격으로 데이터를 저장할 수 있다는 의미 이잖아요. 위 코드는 말그대로 어떤 주소값에 1을 더하면 4byte 만큼 증가하니까 그 증가된 주소값에 새로운 데이터를 적용할 수 있겠다 싶어서 그걸 구현한 코드인데요. 코드는 제가 예상한 것대로 잘 나오는데 저런 알수없는 경고표시가 뜹니다. 혹시 왜그런건지 알 수 있을까요? 아 그리고 주소값을 2를 더하면 8byte만큼 증가라는 뜻이잖아요 1이 아니라 2 이상을 더해주면 위의 경고문구가 안뜹니다. 또 질문이 있는데 위의 코드는 x64환경에서 디버깅 할시 주소값을 1 더했을경우 4byte 간격으로, 2를 더했을 경우 8byte 간격으로 잘 나오는반면에 x86환경에서 디버깅을 할시 2를 더했을때 어쩔때는 8byte 간격으로 잘 나올때도 있는데 어쩔때는 2byte 간격으로 출력이 됩니다. 혹시 이것도 왜이런건지 알 수 있을까요? 아... 제가봐도 질문이 너무 이상해서 죄송합니다 ㅠㅠ
- 미해결홍정모의 따라하며 배우는 C언어
헤더파일에 함수를 작성하지 않는이유
강의 내용을 보면 헤더파일엔 함수를 선언만하고 함수의 정의는 다른 c파일에 정의를 하여 사용하는걸로 나오는데요. 굳이 c파일을 하나 더 만들지 않고 아예 헤더파일에 함수를 정의해서 사용해도 정상적으로 사용가능한데 이런 방식으로 사용하지 않는 이유를 알 수 있을까요?
- 미해결홍정모의 따라하며 배우는 C언어
int c=0; 3+(c=1+2); printf("%d\n",c);
출력값이 3이 나옵니다. 버젼마다 다른걸까요 ?
- 미해결홍정모의 따라하며 배우는 C언어
코드를 그대로 했는데 중간부터 출력이 안됩니다
앞부분의 printf 와 scanf부분은 작동을 하는데 이후 double fund = seed_money; 부분 부터 작동을 하지 않는지 마지막 scanf까지 입력을 다했는데도 끝의 printf 콘솔창에 뜨지 않습니다. 어떤 오류가 있는 것인가요?
- 해결됨홍정모의 따라하며 배우는 C언어
signed integer의 최댓값을 2진수로 출력할 때, 31bit만큼만 출력되는 것에 대한 질문
signed int 타입 변수의 최댓값을 2진수로 출력해보면 31bit만큼만 출력됩니다. 최솟값을 출력했을 때는 32bit 만큼 출력되는데 어째서 최댓값 출력할 때는 31bit만큼만 나오는 것일까요? 32bit만큼 출력해서 0111 ... 1111 이렇게 나오게 하려면 어떤 라인에서 수정해야할까요?
- 해결됨홍정모의 따라하며 배우는 C언어
강의에 나오는 코드중 input값이 100보다 크면 무시하는 코드
100을 입력하였을때 전 continue 로 인해 무시하고 넘어갈줄 알았는데 맥스값에 출력되는걸보니 실제로 입력한 100과 100.0f 는 다른 건가요? 앞선 강의에서 배웠던 부동소수점 정밀도에 관련되있는건가요?