월 19,800원
5개월 할부 시다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 미해결홍정모의 따라하며 배우는 C언어
--! < 5 조건문 관련 질문입니다.
--i를 반복하다보면 int가 표현하지 못하는 음수까지 내려가면 양수로 바뀌진 않나요? while 문 밖으로 나올수도 있을것같아서요 맞을까요?
- 미해결홍정모의 따라하며 배우는 C언어
15.10강 비트필드의 사용방법
void print_binary(char* data, int bytes) {for (int i = 0; i < bytes; ++i) char_to_binary(data[bytes - 1 - i]); printf("\n");} 1. 바이너리로 바꿀때 char_to_binary(data[bytes - 1 - i]) 여기가 bytes -1 -i인지 이류를 잘모르겠어요. 이해가 잘안돼네용ㅠ
- 미해결홍정모의 따라하며 배우는 C언어
마지막 예제에서 질문있습니다.
안녕하세요!! 복습을 하다가 질문이 생겨 문의드립니다. [그림 1] [그림 2] 1. 강의에 나온 코드와 똑같이 작성하였으나, Magic Carpet at 8223712에서 의문점이 생깁니다. Jasmine의 크기인 8이 추가되어 끝자리가 552가 될 것으로 예상했지만 왜 712가 나왔는지 모르겠습니다. 2. 또한 컴파일을 할 때마다 주소가 동일하게 나옵니다. 보통 포인터와 관련하여 컴파일을 할 때마다 주소값이 다르게 나오는데, 왜 이러한 형식에서는 고정값이 나오는지 잘 모르겠습니다. 감사합니다.
- 해결됨홍정모의 따라하며 배우는 C언어
[4:47]2차원 배열과 이중 포인터
안녕하세요, 항상 답변 감사드립니다. 4:47 쯤에 2차원 배열은 역참조를 2번해서 이중포인터 처럼 사용할 수 있다고 말씀하셨는데, 실제로 2차원 배열은 이중 포인터는 아닌거죠?
- 미해결홍정모의 따라하며 배우는 C언어
&ptr3를 %p로 받아 출력했을때, 값이 같은 이유
안녕하세요!! 복습을 하던 도중 질문이 생겨 문의드립니다. [그림 1] [그림 2] 그림 1에서 보면 line 37에서 각각 ptr3의 포인터 주소값, ptr3의 주소에 해당하는 데이터, 그리고 &ptr3의 포인터 주소값을 출력하고 있습니다. Differencing을 이용하여 ptr3에서 정수 4만큼을 뺀 뒤, 같은 작업을 반복하면 ptr3의 포인터 주소값, ptr3의 주소에 해당하는 데이터는 변하는데, 왜 &ptr3의 포인터 주소값은 변하지 않는지 궁금합니다. 감사합니다.
- 미해결홍정모의 따라하며 배우는 C언어
사소한 질문입니다
최대 최소 평균 구하기 예제코드 중에서 while(scanf("%f",&input)==1)에서 ==1을 해준 이유는 뭔가요 코드작성 시 ==1이 없어도 정상 작동되는데요???
- 해결됨홍정모의 따라하며 배우는 C언어
for() 문을 사용해서 숫자를 별로 바꾸면 오류가 발생합니다
int main() { char ch; while((ch=getchar())!='\n') { for (int i = '0'; i <= '9', ++i) if (ch == i) ch = '*'; putchar(ch); } putchar(ch); return 0; } 강의대로 작성했는데 루프의 정의가 잘못되었다고 C6294오류가 발생합니다. 어디 부분이 잘못된건가요?
- 미해결홍정모의 따라하며 배우는 C언어
라이브러리 확인 방법
먼저 저는 맥북 부트캠프를 이용하여 윈도우에서 강의를 수강하고 있습니다. 라이브러리 확인을 위해 알려주신 방법을 따라해보려 했으나 Microsoft Visual Studio 파일만 있고 14.0 같은 폴더는 없습니다. 어디서 찾아야 할까요?
- 미해결홍정모의 따라하며 배우는 C언어
버퍼를 비운다는 것에 질문 있습니다.
안녕하세요,, 제 이해가 맞는지 여쭤보고 싶어 글을 쓰게 되었습니다.. 5분 51초의 코드 입니다.. #include<stdio.h> 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); while (getchar() != '\n'); display(c, rows, cols); printf("Input another character and two integers:\n"); printf("Press Enter to quit.\n"); } return 0; } 여기서 scanf ("%d %d",&rows, &cols) 다음에 바로 버퍼를 비워주는 while (getchar()!='\n')가 오지 않습니까.. 근데 이러면 버퍼를 다 비워버리는데 어떻게 디스플레이 함수로 값을 넘기는거지? 고민했습니다. 그러다 깨달은게 아 , 바보같기는,, 버퍼가 비워졌어도, 이미 받은 값들을 c , rows, cols에 저장되어 있구나,, 이게 맞습니까?,,
- 미해결홍정모의 따라하며 배우는 C언어
안녕하세요. scanf 관련해서 질문 드립니다!
while ((c = getchar()) != '\n') { scanf("%d %d", &rows, &cols); display(c, rows, cols); printf("Press enter to quit\n"); } 위의 코드를 실행하고, * 공백 3 공백 5 공백 \n 을 입력하면 *이 잘 출력됩니다. 그리고 다음 콘솔 입력이 활성화 되는데, % 공백 2 공백 2 \n 를 입력합니다. 그럼 공백이 세줄 출력되고, %가 2*2로 출력되고 종료됩니다. Q1 while문의 조건에서 c = 공백 으로 남아있는 버퍼를 한칸 가져오고, 남은 \n은 어떻게 처리한건가요? scanf에 전달이 되었지만 %d가 \n을 만나 scanf가 종료된건가요? Q2. 그렇다면 scanf는 형식이 맞지 않는 입력이 들어올때, %d %d 중 뒤에 것까지 가지도 않고 첫 %d에서 바로 종료시키는건가요?? Q3. 또, scanf가 \n를 입력받기를 거부해도, 입력버퍼에서 \n는 소모되는 것이 맞나요?!
- 미해결홍정모의 따라하며 배우는 C언어
9.12강의와 관련된 질문드립니다.
안녕하세요:) 강의를 보던 중 궁금증이 생겨 질문 드립니다. 1) printf("%p", a_ptr); 에서 나오는 값은 a_ptr이 갖는 주소값인가요, 아니면 a_ptr이란 변수의 주소를 출력하는 것인가요? 검색을 해봐도 주소값이라고만 말해, 헷갈려 질문 드립니다. 2) 처음에는 a_ptr = &a 는 포인터변수가 찾아갈 주소 값을 받는 것이며, *a_ptr = (a에 넣어줄 값) 은 포인터변수가 찾아간 주소의 값을 받는 것으로 이해했습니다. 하지만 저번 9.12강의와 이번 강의에서 차이점을 발견했는데요. 저번 강의에서는 *a_ptr = &a 로, 이번 강의에서는 a_ptr = &a로 쓰신 걸 보았습니다. 그래서 이 둘의 차이점이 궁금해 질문드립니다. > 9.12강의 관련 내용 감사합니다:)
- 미해결홍정모의 따라하며 배우는 C언어
''와 ""의 차이가 어떻게 되나요?!
안녕하세요! 악갼의 사소해보일 수 있지만 명확하게 집고 가는 게 좋을 것 같아 질문 남깁니다!! 18분 28초 경에 print_multiple_chars(' ', n_blanks, false);를 작성하는데' ' 대신 " "를 작성하면 안 되던데 왜 그런지 알 수 있을까요!? 감사합니다!!
- 미해결홍정모의 따라하며 배우는 C언어
getchar() 에 관해 질문 드립니다.
위와 같은 코드를 실행하였을 때, 콘솔창에서 입력을 할 때 엔터를 누를 때 마다 엔터 전의 문자들이 출력이 됩니다. 엔터도 그냥 문자 '\n' 으로 인식해서 다음 줄에서 입력을 계속 할 수 있을 것으로 생각했는데 왜 그런 건가요?!
- 미해결홍정모의 따라하며 배우는 C언어
대소 비교 연산자 질문 드립니다!
코드를 보지 않고 미리 작성하던 중, 습관적으로 수학과 같이 if ( '0' <= ch <= '9') ch = '*' 와 같이 작성하였을 때 숫자 뿐만 아니라 모든 문자가 *로 바뀌는 것을 확인했습니다. 논리 연산자를 차이가 무엇인가 생각해봤는데... if 문 안의 '0'<=ch 가 먼저 연산이 되고, 이 자체로 expression 이니까 이 식의 value가 1이 되어서, 결국 if ( 1 < '9' ) 가 되어 항상 참이되는 식이 나온 것 같은데 맞나요 ?? 논리 연산자를 사용한 식과 단순히 비교 연산자를 연속해서 쓴 것의 차이가 궁금합니다!
- 미해결홍정모의 따라하며 배우는 C언어
scanf와 whitespace 관련 질문드립니다.
안녕하세요:) scanf도 getchar() 처럼 입력 받은 것을 버퍼에 넣어놓는다고 하셨는데요. getchar은 띄어쓰기도 하나의 문자로 입력 받는 것을 볼 수 있었습니다. 예를 들면 ab c를 입력 했을 때 a/b/ /c 이렇게 네 개가 입력이 되듯이 말이죠. 그렇다면 scanf도 scanf("%d %d", &rows, &cols); while (getchar() != '\n') continue; 에서 예를 들어, 5 2라고 입력 받았다면 5/ /2 이렇게 띄어쓰기를 포함해 세 개를 입력 받게 될텐데요. 이때는 띄어쓰기가 두번째 %d로 들어가지 않고 띄어쓰기를 무시하고 2가 대신 들어갑니다. 이전의 다른 분 질문 답변에서 "scanf는 %c 로 받지 않는 이상은 whitespace를 무시합니다. " 라고 하셔서 무시한다는 것은 알았습니다. 그런데 이와 같이 무시하는 것이 입력받은 것과 scanf에서 입력받은 %(자료형)이 서로 맞지 않을 경우, whitespace 뿐만 아니라 모두 무시하는 것인가요? 아니면 특별히 whitespace만 무시하는 것인지 궁금합니다. 감사합니다!
- 미해결홍정모의 따라하며 배우는 C언어
int_ptr = (int*) malloc(sizeof(int) * 30);에 대한 질문드립니다.
int_ptr = (int*) malloc(sizeof(int) * 30); 여기서 malloc(sizeof(int) * 30) 통해서 120byte가 되는것은 이해를 하였는데 앞의 (int*)는 무슨 역할을 하는지 알 수 있을까요?
- 미해결홍정모의 따라하며 배우는 C언어
연습문제를 동적할당으로 해보는중에 질문 있습니다
https://onlinegdb.com/sf-pXlgRl 임시배열에 문자열을 저장한 후 길이를 받아 그만큼 메모리를 할당받아 문자열을 복사했습니다. 프로그램 종료 전에 free로 메모리를 해제하니 heap corruption detected 라는 에러가 발생했습니다. 구글링을 해 보니 할당한 공간보다 더 큰 영역에 접근하면 생기는 오류라는데 어디가 문제인지 잘 모르겠습니다 VS에서는 에러가 뜨는데 온라인 컴파일러에서는 에러가 없네요
- 미해결홍정모의 따라하며 배우는 C언어
메모리 누수 질문
전부터 궁금했던 건데 강의에서 메모리를 할당 받고 free로 해제를 안해주는 경우에 메모리가 누수된다 하셨는데 강의처럼 for 반복문으로 메모리 누수를 계속 시키는 경우에 free로 해제를 안해주면 나중에 메모리가 부족하게 되지 않나요? 예를들어 400기가의 메모리가 누수됐는데 free를 못하면 400기가의 메모리가 계속 남아있지 않나요? 그럴땐 나중에 free를 해줘도 늦은거 아닌가요? 아니면 컴파일이 끝나면 메모리 누수가 사라지는건가요?
- 미해결홍정모의 따라하며 배우는 C언어
1.13 강의에서 main.c 실행파일이 안만들어 집니다.
PS C:\Users\ASUS\my c files> gcc main.c C:/Program Files (x86)/mingw-w64/i686-8.1.0-posix-dwarf-rt_v6-rev0/mingw32/bin/../lib/gcc/i686-w64-mingw32/8.1.0/../../../../i686-w64-mingw32/lib/../lib/libmingw32.a(lib32_libmingw32_a-crt0_c.o):crt0_c.c:(.text.startup+0x39): undefined reference to `WinMain@16' collect2.exe: error: ld returned 1 exit status PS C:\Users\ASUS\my c files> power shell 에서 main.c 실행파일 만들기 위해서 gcc main.c 라고 쳤는데 exe파일이 안만들어지고 저렇게 뜹니다.... 왜그런건지 모르겠네요 ㅠㅠ mingw설치를 잘못한건지 아니면 path 설정을 잘못한건지....
- 미해결홍정모의 따라하며 배우는 C언어
4.9강 printf() int 변수에 관해 질문 올립니다.
안녕하세요. 먼저 선생님 양과 질적으로 훌륭한 강의 잘 보고 있습니다. 항상 감사드립니다. 64bit에서는 데이터의 사이즈가 안 맞아도 int 변수의 위치와 형식지정자만 맞으면 1024가 출력이 되는데 이유를 알 수 있을까요? 아래 강의를 보고 따라한 저의 코드입니다. #include <stdio.h> int main() { float n1 = 3.14f; // 4 bytes double n2 = 1.234; // 8 bytes int n3 = 1024; // 4 bytes printf("%f %f %d \n", n1, n2, n3); //Note the warings in output window printf("%d %d %d \n", n1, n2, n3); // 4, 4, 4 (N, N, N) printf("%lld %lld %d\n", n1, n2, n3); // 8, 8, 4 (N, N, Y) printf("%f %d %d\n", n1, n2, n3); // 8, 4, 4 (Y, N, N) printf("%f %lld %d\n", n1, n2, n3); // 8, 8, 4 (Y, N, Y) return 0; }