월 19,800원
5개월 할부 시다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 미해결홍정모의 따라하며 배우는 C언어
에러 발생
error C4700: 초기화되지 않은 'ch' 지역 변수를 사용했습니다. // 제 코드입니다(메인 함수 안쪽 부분입니다) char ch; int count = 0; while ((ch == getchar()) != PERIOD) { if (ch != '\n' && ch != ' ') { count++; } } printf("%d\n", count); 계속 while문 부분에서 에러가 뜨네요... 변수를 선언하면 꼭 초기화를 해야 하나요?? 그리고 무엇으로 초기화를 해야 하나요?? ch에 NULL값이나 0을 집어넣으면 결과가 달라집니다..
- 미해결홍정모의 따라하며 배우는 C언어
안녕하세요 int second = 0과 같이 초기화는 반드시 해야하는건가요?
안녕하세요 int second = 0과 같이 초기화는 반드시 해야하는건가요?
- 미해결홍정모의 따라하며 배우는 C언어
이해한게 맞는지 질문드립니다!
안녕하세요~ 항상 자세한 답변 감사드립니다 #include <stdlib.h> int count() { double* ptr = NULL; ptr = (double*)malloc(30 * sizeof(double)); for(int i = 0; i < 30; i++) { *(ptr + 1) = i; } } int main() { count(); } 이렇게 작성한경우, ptr에 할당된 메모리 공간들은 malloc때문에 메모리 영역 중 heap 영역에 240 바이트만큼 저장된다는건 알겠는데요, 만약 main문에서 count가 호출될때 ptr은 지역변수니까 스택에 저장되어있겠죠? 그런데 count가 종료될 경우 스택영역에서 pop되니까 메모리공간에 for문 돌면서 초기화 해준 값들이 분명 heap영역에 존재는 하는데 이걸 참조를 못하게 된다 이소리인가요? 중간에 마치 친구 전화번호를 종이에 적어서 가지고있었는데 잃어버렸다. 근데 전화번호적은 종이를 잃어버렸다고 친구가 사라지는건 아니다 라고 비유를 드셨는데 맞게 이해한건지 궁금합니다. ps. 혹시 for문에서 double이 8바이트니까 30번돌면 되는거 맞나요?
- 미해결홍정모의 따라하며 배우는 C언어
getchar() 질문
float min = FLT_MAX; float max = -FLT_MAX; float sum = 0.0f; float num=0.0f; int n = 0; while (getchar(num) != 'q') { max = (num > max) ? num : max; min = (num < min) ? num : min; sum += num; n++; } if (n > 0) printf("min =%f, max=%f, ave=%f", min, max, sum / n); else printf("no input"); 제가 이렇게 실행을 하였더니 min =0.000000, max=0.000000, ave=0.000000 이렇게 나와서 디버그를 해봤더니 getchar(num)가 실행돼서 숫자가 입력되어도 max, min의 값은 안 바뀌고 초기화된 0을 계속 유지하더라고요 왜 그러는 건가요? 뭐가 잘못 되었나요?
- 미해결홍정모의 따라하며 배우는 C언어
가상프로세서에 대한 질문입니다
일단 저는 대학에서 컴퓨터 공학을 전공하고 있는 학생입니다. 가상의 프로세서가 작동하는 방식에 대해 제가 맞게 이해했는지에 관해 여쭤보고 싶어 문제와 함께 질문 납깁니다. 제가 궁금한 것은 0x0A라는 주소에 데이터 변수 A가 저장되어 있다고 문제에서 알려줬는데 IR레지스터는 'LOAD R1 A'라는 명령문을 해석해야 레지스터 1에 A를 LOAD할 수 있지 않나요?? 그럼 LOAD R1 A라는 명령문은 주기억장치 어디에 저장되어 있는건가요??
- 미해결홍정모의 따라하며 배우는 C언어
아예 메인함수를 보지않고 구현했습니다. 출력은정상인데 단점이무엇일까요
선생님것과 비교해서 단점이무엇일까요 함수화는 전혀 이루지 않은 코드입니다. int main() { int arr[5] = { 64, 25, 12, 22, 11 }; int min = 0; int swap = 0; for (int i= 0; i < 5;i++) { for (int a = i; a < 4; a++) { if (arr[a] > arr[a + 1]) min = a + 1; }; if (min > 0) { swap = arr[i]; arr[i] = arr[min]; arr[min] = swap; min = i+1; }; }; for (int b = 0; b < 5; b++) printf("%d ", arr[b]); return 0; }
- 미해결홍정모의 따라하며 배우는 C언어
sacnf %d에 문자를 넣을때는 어떻게 되나요?
안녕하세요. 강의 정말 잘 듣고 있습니다. 버퍼와 관련하여 질문드릴게 있습니다. int num; scanf("%d", &num); 이런 코드를 실행했을때 num값에 문자를 대입하면 어떻게 해석되는건가요? 예를들어 콘솔창에 a를 누르고 엔터를 치면 a\n이 입력버퍼에 들어가고 버퍼에서 scanf로 전달되잖아요? 이때 printf를 통해서 num값을 출력해보면 -888993613 이런식으로 무작위 값을 반환하던데 이건 a값을 받아들이지 못해서 나는 에러값인가요? 전 처음에 a를 넣으면 알아서 97로 받아들일줄 알았거든요 또한 가장 궁금한건 입력버퍼에 있던 a\n은 통째로 사라지는건지 그대로 남아있는건지 알고싶습니다.
- 미해결홍정모의 따라하며 배우는 C언어
arr[-1]의 경우 어떻게 되는지 궁금합니다.
현재 아두이노를 배우고 있는데 이것이 코딩할 때 C언어를 씁니다. 일단은 코드블럭으로 확인해본 결과 이렇게 하면 arr[-1]에 쓰레기값이 나오고, 제대로 0으로 대입도 된다는 것을 확인하였습니다. 그렇다면 arr배열의 바로 그 전의 메모리 공간이라고 추측이 가능한데, 혹시나 컴파일러가 미연의 버그를 방지하기 위해 사용가능 메모리의 제일 앞쪽과 제일 뒷 쪽, 그리고 각 선언한 저장공간들을 띄엄띄엄 해놨는지 궁금합니다. 제가 이런 질문을 한 이유는 pinMode 함수는 그 핀에 전기를 흐르게 할지 말게할지 하는 함수인데 OUTPUT이 출력이 가능하도록 설정해놓는 겁니다. 전역변수로 선언된 switch_pin과 led배열에 들어간 값은 핀 번호입니다. INPUT_PULLUP은 전류가 흐르냐 안 흐르냐, 흐르지 않다면 전기가 고여있어 1로, 흐른다면 고여있지 않다는 뜻으로 0으로 표시됩니다. 그래서 빵판에 물리적인 스위치를 눌렀을 때 흐르게 되어 1로 됩니다. setup 함수와 loop함수는 코딩환경을 켜면 main함수처럼 기본 입니다. digitalRead는 신호를 읽는 것이고, digitalWrite는 디지털 신호를 쓰는 명령입니다. 위의 코드는 스위치를 눌렀을 때마다 차례로 LED가 점등되고, 전에 점등된 스위치를 꺼지게 함으로써 계단처럼 차례로 LED가 점등되는 코드입니다. 일단은 위 코드는 문제없이 작동을 하였습니다. 그런데 먼저 말한 궁금증 컴파일러가 미연의 버그를 방지하기 위해 사용가능 메모리의 제일 앞쪽과 제일 뒷 쪽, 그리고 각 선언한 저장공간들을 띄엄띄엄 해놨는지 궁금합니다. 가 아닐 경우는 버그가 발생할 지도 모릅니다. 그러나 arr[-1]을 쓸 경우 위처럼 정말로 간단하고 짧게 코딩이 가능한데, 그렇지 않을경우 if문을 하나 더 쓰는 둥 깔끔하게 되지 않습니다. 가르쳐 주실수 있나요.
- 미해결홍정모의 따라하며 배우는 C언어
5:15초에 strcat 구현질문
strcat 함수를 교수님이 보여주신 사이트에 있는 그대로 함수를 가져와서 디버깅 찍어보았습니다. char* my_strcat(char* d, const char* s) { char* ptr = d + strlen(d); while (*s != '\0') *ptr++ = *s++; *ptr = '\0'; return d; } 변수이름은 걍 짧게 해놨는데, 디버그 돌려서 차례차례 진행하다보면 char* ptr=d+strlen(d);< 이거 다음문 갈때 디버그가 강제 종료되면서 스레드가 종료되었습니다 2개와 프로그램이 종료되었습니다가 뜨면서 디버그가 강제로 종료됩니다. 원인이 뭘까요?
- 미해결홍정모의 따라하며 배우는 C언어
scanf 함수의 서식 지정자 질문
위 코드를 보면 int형인 ch에 scanf함수를 써서 %c인 문자형으로 입력을 시켜봤습니다 그래서 printf함수로 %c와 %d 출력을 동시에 해 봤는데 문자형으로는 출력이 정상적으로 나오지만 정수형으로는 출력이 -1이 나옵니다(다른 값을 입력해도 -1이 나옴) 질문 1) 아스키코드대로 문자형으로 a가 나왔으면 정수형으로는 97이 나와야 하는것 아닌가요? 질문 2) 디버깅을 해서 변수 ch에 저장된 값이 무엇인지 확인을 해보았으나 Autos 항목에서 ch의 value가 0'\0'으로 확인됩니다 (다시 입력을 했을 시엔 쓰레기값이 뜸) 출력은 정상으로 되는데 Value에 쓰레기 값이 들어있는건 무슨 경우인가요? 왜 그런거죠?
- 미해결홍정모의 따라하며 배우는 C언어
for( int i = 0 ; )이 안됩니다 ㅜㅜ
저 저는 왜 이게 오류가 뜰까요 ㅜㅜ?
- 미해결홍정모의 따라하며 배우는 C언어
실행이 안됩니다ㅠ
삭제된 글입니다
- 미해결홍정모의 따라하며 배우는 C언어
에러
Error LNK1168 cannot open C:\Users\jungh\source\repos\Sol1\Debug\Project1.exe for writing Project1 C:\Users\jungh\source\repos\Sol1\Project1\LINK 1 이렇게 안 열린다고 뜨는데 어떻게 해야 하나요?ㅠㅠㅠㅠㅠㅠㅠㅠㅠ
- 미해결홍정모의 따라하며 배우는 C언어
visual studio 사용
제가 강의를 맥북에서 듣는데 윈도우스랑은 약간 다른것 같아서요. 비쥬얼 스튜디오도 약간 달라요. 그래서 어떻게하면 좋을까요?
- 미해결홍정모의 따라하며 배우는 C언어
printf, scanf 표준라이브러리함수
비주얼 스튜디오 폴더 내에서표준라이브러리 함수 printf, scanf 원본소스코드파일 찾아서 보고 싶은데 못 찾겠어요.헤더파일stdio.h는 찾았는데 라이브러리 파일들은 어딨는지 모르겠습니다. 비주얼 스튜디오 폴더 내에서 경로가 어떻게 되나요?
- 미해결홍정모의 따라하며 배우는 C언어
10:05분 코드에서 질문드립니다.
복습하는 과정에서 질문드립니다. 기초적인 질문이라 생각은하는데 이해가 안되서 질문드립니다. 강의에서는 sizeof(str5)를하면 4가 출력이 되었습니다. 그런데 제가 생각하기에는 char형이면 1이 출력이 되어야한다고 생각하는데 왜 4가 출력이 되는건가요...?
- 미해결홍정모의 따라하며 배우는 C언어
제한자 const에 관한 질문
질문이있습니다. 위 강의 내용이 const 가 붙지 않은 변수선언일 경우에는 int angel = 1004; 처럼 여기서는 angel이 변수로서 변할수있고 여기서 const int angel= 1004; 가 되어 제한자가 붙어버리면 angel 이 더이상 바뀌지 못하고 그냥 기호적인 상수로서 고정되어 버리는 거다.라는 의미인건가요? 궁극적으로 const가 붙으면 리터럴상수또한 고정되어 버리는 건가요?
- 미해결홍정모의 따라하며 배우는 C언어
12:27분, 헤더파일을 넣는 이유
12:27분에 my_print_function.c 파일에 #include "my_print_functions.h" 하셨는데, 왜 이 파일에 헤더파일을 집어 넣는지 잘 모르겠습니다. my_print_function.c에 들어간 my_print_functions.h을 지우고 main.c을 실행해도 잘 실행되는데 왜 들어간건가요??
- 미해결홍정모의 따라하며 배우는 C언어
명시적형변환 질문
[이승환] [오후 4:49] #include <stdio.h> int main(void) { int a; scanf_s("%d", &a); a = (float)a; printf("%f", a); return 0; } 이렇게 a를 명시적형변환했다생각하고 3입력하면 3.000000출력될지알았는데 0.000000이뜨는데 어떤부분이 틀린건지 알고싶습니다
- 해결됨홍정모의 따라하며 배우는 C언어
컴퓨터의 구성요소 역할 질문
1. 주 기억장치(=메모리)가 전원을 끄면 데이터가 사라지잖아요. 그래서 전원을 꺼도 데이터가 저장되는 보조기억장치로 보완한다는데 CPU(연산을 하는 부분)는 보조기억장치에 직접 접근할 수 없어서 주 기억장치랑만 왔다갔다한다는데 그러면 CPU는 전원이 켜져있을 때만 작동하고, 주 기억장치랑만 왔다갔다하므로 얘도 전원을 키면 주 기억장치 처럼 데이터가 싹 사라지나요?? 맞다면 전원이 꺼져있는 상태라면 운영체제나 그 외 데이터 이런것도 싹 없는 상태이고 전원을 킬때마다 보조기억장치에서 꺼내쓰는거겠네요? 맞나요? 2. 근데 강의 도중 메모리(=주 기억장치)가 저장을 하는 기능이라고 말씀하신 것 같은데 얘는 전원을 끄면 데이터가 싹 사라지잖아요...? 근데 보조 기억장치는 안사라지잖아요. 그럼 데이터를 저장하는 기능하는 것은 보조 기억장치 아닌가요? 그리고 또 정리하자면 저장하는 기능= 보조기억장치 주기억장치는 그냥 속도를 빠르게하는 역할 및 CPU에 정보를 전달하는 역할 인건가요? 3. RAM은 주 기억장치에 속한 장치인가요? 임의 접근이 가능한 메모리 라고 하셨는데 정확히 무엇을 접근하는건지 모르겠어요. 4. 그래픽카드는 그냥 계산량을 늘리는 역할을 하는건가요? 5. FDD와 자기테이프의 역할은 뭔가요? (그냥 어원만 알려주셔서..ㅠㅠ) 6. CPU에서 레지스터가 메모리처럼 저장을 하는 부분이라는 말인가요?.. 그니까 연산말고도 저장도 한다는 말인가요? 그 저장되는건 메모리에서 얻은 정보들? 죄송해요 처음 공부하는거라 궁금한 것이 산더미네요ㅠㅠ 뭔가 자세히 설명은 안해주신 것 같은데 지금 수준에서는 필요 없어서 그런건가요??