월 19,800원
5개월 할부 시다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 미해결홍정모의 따라하며 배우는 C언어
4.3 강의 hello hi 출력 부분 오류
10분 36초에서 다음 코드를 실행시 "오류 C2075 str2 초기화에는 중괄호로 묶인 이니셜라이저 목록이 필요합니다."하면서 오류가 납니다.. 구글하고 네이버 서치하고 이거저거 다해봤는데 도저히 모르겠어요..
- 미해결홍정모의 따라하며 배우는 C언어
4.3 강의 hello hi 출력 부분 오류
#include <stdio.h> int main() { /*int a = 0; int int_arr[10] = { 0,1,2,3,4,5,6,7,8,9 }; printf("%i %i %i\n", int_arr[0], int_arr[1], int_arr[9]);*/ //printf("%i\n", int_arr[10000]); char c = 'a'; char str1[10] = "Hello"; // null character char str2[10] = ('H', 'i'); printf("%c\n", c); printf("%s\n", str1); printf("%s\n", str2); /*printf("%hhi %hhi %hhi %hhi %hhi\n", str2[0], str2[1], str2[2], str2[3], str2[4]);*/ //char str3[10] = "Hello, World", // array size is not enough //char str3[20] = "Hello, \0World", //printf("%s\n", str3); return 0; }
- 미해결홍정모의 따라하며 배우는 C언어
변수나 함수 사용전에 선언이 되어있어야 사용가능에 대한 질문
void 함수를 main함수보다 아래에 쓰든 위에 쓰든 컴파일러는 main 함수부터 읽는데void 함수를 main함수 아래에 썼을 때 에러가 나는 이유가 이해가 안됩니다. #따배씨 2.9 함수만들기
- 미해결홍정모의 따라하며 배우는 C언어
[]
daily_temperatures 뒤에 붙어있는 []가 정확히 무슨 뜻인지 모르겠습니다.어쩔 땐 int[] 이런 형식도 본 것 같은데 그것도 무슨 뜻인지 잘 모르겠습니다.int 사이즈 메모리 몇 개가 무슨 뜻인거죠? 4바이트짜리 메모리를 뒤에 써있는 수만큼 받는다는 건가요?그리고 마지막에 stock_prices_history[0]이라고 되어 있는데 항상 0이 첫 번째 주소인가요?
- 미해결홍정모의 따라하며 배우는 C언어
8분 33초경 질문
int f(int)[]; int(*f(int))[]; int g(int)(int); int(*g(int))(int); 안에서 밖으로 해석하는 게 좋다고 하셔서 그렇게 하고 있습니다.그렇게 하면 다른 건 다 해석이 되는데 위의 네 개의 예시만 해석이 안됩니다.맨 뒤에 괄호가 붙은 걸 어떻게 해석해야 할지 모르겠습니다. https://www.inflearn.com/questions/22987 링크의 질문하신 분이 해석한 것 처럼 하면*(asterisk)가 없는 건 해석이 되는데 있는 건 또 해석이 안됩니다. int f(int)[];는 반환값이 int[] 이고 int g(int)(int);는 반환값이 "parameter가 int고 반환값도 int인 함수" 인걸로 해석이 되는데*가 붙으면 해석이 안되네요 항상 좋은 답변 정말 감사합니다.
- 미해결홍정모의 따라하며 배우는 C언어
첫번째 예제
해설 보면 코드 전에 아예 #define을 먼저 입력하고 들어가던데 define의 정확한 기능이 무엇인가요?NUM_ROWS, FIRST_CHAR, LAST_CHAR 같은 이름은 코드 전체에 통일성만 유지된다면 마음대로 이름을 지어도 되는 것인가요?
- 미해결홍정모의 따라하며 배우는 C언어
예제 관련 질문
처음에 설명 듣기 전에 이전에 배운 것을 토대로 코드를 작성해봤을 때 이렇게 작성을 했는데 이 코드를 실행하니까 제가 입력을 해야 Step 1,2,3 이런 식을 증가를 하던데 위의 코드를 입력 안 하고 강의 영상에 나오는 것처럼 하려면 어디를 어떻게 수정하면 될까요?
- 미해결홍정모의 따라하며 배우는 C언어
5분 경 질문
후위 증가 연산자 때문에 i가 2가 되는 건 알겠는데 i가 j에 대입?된다는데 그 부분이 잘 이해가 가지 않습니다
- 해결됨홍정모의 따라하며 배우는 C언어
setvbuf함수의 대하여
안녕하세요 잦은 질문을 드리네요 죄송합니다 궁금증이 많아서..선생님 강의 도중 setvbuf함수를 설명하실 때 _IONBF 이 모드를 인수로 넣으며 버퍼를 사용하지 않는다고 설명해주셨습니다.이 설명을 듣고 떠오른건 한창 입출력 함수 알려주실 때 구글에 검색해서 찾아보다가 windows에서만 쓰이는 conio.h라이브러리에 _getch(), _getche()란 함수가 있었습니다.그 함수가 버퍼를 통하지 않고 바로바로 입력과 동시에 처리를 했었는데 setvbuf함수가 그런 기능까지 구현할 수 있게 해주는 걸까요?
- 미해결홍정모의 따라하며 배우는 C언어
이중포인터를 안 써도 답이 똑같은 이유가 몰까요
이중 포인터가 아니라 밑에 포인터만 써도 그냥 포인터만 써도 답이 이중 포인터랑 똑같이 나오는 이유는 무엇일까요?? void swap(char* xp, char* yp) { char* temp = *xp; *xp = *yp; *yp = temp; }
- 해결됨홍정모의 따라하며 배우는 C언어
EOF와 바이너리 파일의 대하여.
EOF란?파일 대신 배열로 예를 들어보겠습니다.예를들어 int a[3]이 있다고 가정을 하면 [0]번 인덱스부터 [2]번 인덱스 까지 있을 것 입니다. 파일을 읽는 것 처럼 배열로 읽는다고 바꿔 생각해보면 [0]번 인덱스를 읽을 땐 배열(파일)의 끝이 아니니 거짓(0)을 리턴합니다. 이렇게 [2]번 인덱스까지는 배열의 끝이 아니니 거짓(0)을 리턴 합니다. 그러다가 [3]번 인덱스를 읽었을 땐 배열의 끝 이므로 참(1)을 반환합니다. 이러한 개념을 파일로 적용 해봤을 때 이해한게 맞을까요??바이너리 파일과 확장자요즘 소프트웨어가 다양하고 각 소프트웨어마다 확장자를 가지고 있습니다. 그리고 그 확장자를 불러오거나 저장할 수도 있습니다.이번 강의를 보고 느낀점은 결국 확장자 라는 개념은 그 소프트웨어의 확장자 임을 나타내기 위함이고각 소프트웨어의 확장자 파일을 읽어올 때나 저장(출력)할 때 소프트웨어 개발사가 미리 정해둔 어떤 데이터들의 형식, 구조, 순서 대로 저장을 하고. 그 저장된 확장자 파일을 불러올 때 앞 서 미리 정해둔 저장(출력) 틀에 따라 데이터들을 차례대로 가져와서 사용하는 개념일까요?
- 미해결홍정모의 따라하며 배우는 C언어
9.9 print_binary 다르게 함수를 짜봤습니다
#define CRTSECURE_NO_WARNINGS#include <stdio.h>void recursion(int num);int main(){ int num = 10; recursion(10);}void recursion(int num){ if (num == 0) return; else recursion(num/2); printf("%d", num % 2);} 혹시 이 함수도 맞는지 확인해 주실 수 있으신가요
- 미해결홍정모의 따라하며 배우는 C언어
실행 후 콘솔창이 보이지 않는 문제
안녕하세요. 따배씨 학습 중 콘솔창 관련하여 문제가 생겨 질문드립니다.ctrl + f5 눌러 실행하는데 이미지와 같이 정상 실행은 되나 콘솔창이 화면에 뜨지 않습니다.작업표시줄에 콘솔창이 실행된게 보이는데, 클릭하여도 화면에 나타나지 않습니다.제가 문제 해결을 위해 시도해본 방법은 아래와 같습니다.비주얼 스튜디오 다시 시작.컴퓨터 다시 시작.비주얼 스튜디오 삭제 후 재설치.위와 같은 방법을 통해서도 문제가 해결되지 않았습니다. 어떤 시점에서 문제가 생겼는지는 저도 잘모르겠습니다. 전날 학습 후 다음 날 이어 학습하려는데 이와 같은 문제가 생겼습니다. 관련해서 도움 부탁드립니다. 사용환경 비주얼 스튜디오 커뮤니티 2022Window 10 home
- 해결됨홍정모의 따라하며 배우는 C언어
10분 6초경 코드 질문
https://www.inflearn.com/questions/741606링크의 질문의 답변에서 어느정도 설명을 해주셨는데s_gets 함수가 NULL을 반환할 경우 break을 해주는거라고 하셨어요그런데 s_gets 함수가 NULL을 반환하는 경우가 오류 말고는 없지 않나요?어떤 문자를 입력하던 엔터를 입력하던 fgets 함수가 포인터는 반환하게 돼있잖아요그렇다는건 역시 오류가 생겼을 경우 break을 하기 위해서if 의 조건문으로 s_gets 함수의 반환값이 NULL인지 확인하는걸 추가해준 것 인가요?항상 좋은 답변 감사합니다.
- 미해결홍정모의 따라하며 배우는 C언어
10분 48초 주소 10에 메모리 0 의 질문
왜 주소 10 에 메모리 0 이란건가요처음엔 아스키표에 i가 의미하는게 10이었나? 그래서 주소를 10이라고 하셨나 생각했는데 아니더라구요왜 주소 10 에 0값이 들어간다는건지 질문합니다.
- 미해결홍정모의 따라하며 배우는 C언어
함수의 프로토타입과 컴파일 환경
뒤의 포인터 강의를 듣고, 2차원 배열 기상청 정보 예제에서 함수를 통해 구현하려 하던 간단한 부분이 막혀서 질문드립니다.헤더 파일에 있는 기능은 stdio.h랑 YEARS, MONTHS 에 상수 정의한 것 말고는 없습니다. 제 질문은 다름이 아니라 x86과 x64 에서 돌릴 때마다 생기는 오류와 포인터로 설정한 argument와의 관련성입니다.parameter에는 str[]을 세팅해두었으니, argument 역시 동일하게 세팅해야 하는 것은 의심의 여지가 없는 사실이지만, "배열은 그 자체가 하나의 주소이니까, 포인터로도 취급할 수 있지 않을까?" 라는 호기심에 리다이렉션한 str(dereferencing한 값이라 하나요?)을 parameter로 넣어보았습니다. 그 결과 x64에서 컴파일 성공(결과도 성공적), x86에서는 컴파일이 실패하였습니다. 그러나 아무리 고민해봐도, 정보를 저장하는 체계가 4바이트에서 8바이트로 바뀌었다고 해서 위 사진처럼 char밖에 자료형이 없는 경우에도 양상이 달라진다는 것이 이해가 되지 않습니다 ㅠㅠ. 도움 부탁드립니다..!
- 해결됨홍정모의 따라하며 배우는 C언어
멀티 쓰레딩이란?
안녕하세요, 멀티 쓰레딩 강의를 보고 궁금점이 생겨 질문드립니다. 물론 여기서 완벽히 이해하고 갈 예정은 아닙니다. 추후 cpp강의까지 연계하여 공부할 것이기 때문에 제가 이해한 개념이 맞는지 궁금하여 질문 드립니다.멀티 쓰레딩이란?프로그램에서 원래 한가지 일 밖에 못하는데 멀티 쓰레딩 이라는 개념으로 여러가지 일을 동시에 해주는 것이 맞을까요?예를 들어서 계산기가 있고 계산기를 사용하여 답을 얻고자 하는 사람이 3명일 때 쓰레드가 하나 일 경우에는 한 사람씩 순서대로 계산기 사용해야 하지만 쓰레드가 3개일 경우엔 각 사람마다 각자의 계산기를 통해 동시에 계산할 수 있는 그런 느낌이려나요?더 나아가서 실시간 서버와 통신하는 게임 같은 경우에도 많은 유저가 서버에게 요청하는데 쓰레드가 하나일 경우엔 이걸 하나씩 처리하지만, 멀티 쓰레딩을 사용하면 여러 개 처리하는 느낌일까요?메인 쓰레드와 쓰레드 생성강의에서 쓰레드라는 개념으로 보여주신 그림입니다. 위 그림을 통해 이해했던 개념이 프로그램에는 메인 쓰레드가 있고 메인 쓰레드가 처리해야 할 일이 많을 경우 자신을 복제하여 분신을 만들고(쓰레드 생성) 분신(쓰레드)에게 일을 할당하여 일을 시키고 프로그램이 끝나기 전 메인 쓰레드는 자신의 분신(쓰레드)과 다시 합체한다음 프로그램이 종료되는 느낌일까요? 이 과정에서 아직 분신(쓰레드)가 할당한 일을 하고 있다면 기달렸다가, 합체하고 종료되는 건가요?멀티 쓰레딩의 큰 개념은 결국 하나?강의 중 c언어 표준에는 멀티 쓰레딩이라는게 없어서 운영체제에서 제공하는 api을 통해서 멀티 쓰레딩을 할 수 있다고 하셨는데요, 그러시면서 윈도우에서 멀티 쓰레딩을 사용하는 방법과 gcc컴파일러에서 멀티 쓰레딩 사용하는 방법에 대해서 보여주셨는데 윈도우에서는 windows.h헤더파일과 쓰레드에 사용되는 전용 함수를 사용하셨고gcc컴파일러에선 pthread.h헤더파일과 쓰레드에 사용되는 전용 함수를 사용하셔서 구현을 해주셨는데요운영체제 api마다 c언어에서 멀티 쓰레드의 대한 제공하는 헤더파일과 함수, 문법과 표현법이 모두 달라서 이번 예제에서 조차 윈도우와 gcc컴파일러에서 작성한 방법이 달랐지만 결국 큰 틀은 쓰레드를 생성하고 쓰레드에게 할 일을 배정하고 프로그램이 끝나기 전 쓰레드들을 다시 하나로 합치는 이 과정은 어느 환경이든 다 똑같은 개념일까요?여담으로 멀티 쓰레딩과 표준에 대하여C언어 표준에는 멀티 쓰레딩이 없다고 하셔서 각 운영체제마다 다른 기술을 사용해서 구현해야 하는데 CPP언어 표준에는 멀티 쓰레딩이 있나요?? 항상 친절한 답변 남겨주셔서 감사합니다.
- 미해결홍정모의 따라하며 배우는 C언어
x64 환경에서는 에러가 뜹니다
32 비트 환경에서는 결과가 무사히 잘 나오지만, x64로만 가면 다음과 같은 작은 창이 뜨면서 런타임 에러가 납니다.
- 해결됨홍정모의 따라하며 배우는 C언어
전역 변수 초기화와 값 대입 질문
전역 변수를 사용할 때int x;int y = x;x = y;이렇게 파일 스코프에서 rvalue에 변수가 들어가는건 안되는데void func(){x = y;}이렇게 블록 스코프에서 rvalue에 변수가 들어가는건 되는 이유가 뭔가요?
- 해결됨홍정모의 따라하며 배우는 C언어
8분 12초 10분 55초 질문 있습니당
8분 12초와 10분 55초에서*pt와 arr[0] 둘 다 식별자는 아니지만 표현식을 통해서 메모리 공간에 접근하는 것인데*pt는 오브젝트를 가리킨다고 표현하고arr[0]은 오브젝트라고 표현하는게 이해가 잘 안되요그러니까 arr[0]이 표현식이라는건 납득이 되는데 오브젝트라는건 납득이 안되요변수 이름으로 메모리 공간에 접근하는 걸로 변수 이름을 오브젝트라고 하지 않는 것 처럼표현식으로 메모리 공간에 접근하는 걸로 표현식을 오브젝트라고 표현하면 안되는 것 아닌가요?실제로 *pt는 표현식이지만 메모리 공간에 접근한다고 해서 오브젝트라고 부르지 않잖아요 항상 좋은 답변 정말 감사합니다.