월 19,800원
5개월 할부 시다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 해결됨홍정모의 따라하며 배우는 C언어
my_functions.h 파일 질문입니다
my_functions.h에서 static int si = 0; static int multiply(int a, int b) { return a * b; } 에서 두개 다 static을 빼면 컴파일이 안되던데 왜 그런지 잘 모르겠습니다
- 미해결홍정모의 따라하며 배우는 C언어
안녕하세요, 이중 포인터 코드 질문 드립니다..
강의 11분 경 나오는 강의 중의 read_books2 코드에서처럼 함수 내부적으로 구조체배열을 만들고, parameter에서 받아온 함수 밖 배열에 대입하면 되는건데...이중 포인터라는 생각에 이중으로 indirection 하여, 받아온 주소에 있는 배열의 값을 직접 바꿔주는 코드를 작성했습니다..이중으로 하려니 넘 복잡하여 이것저것 해보다가 일단 실행은 되는 코드를 구현한 것 같은데 이것저것 해보다가 된 것이라 오류나 예외가 없는 코드인지 잘 모르겠어서.. struct book { char name[LEN]; char author[LEN]; }; int main() { int bookcnt = 3; struct book* my_books = (struct book*)malloc(sizeof(struct book) * bookcnt); read_books("text.txt", &my_books, &bookcnt); } void read_books2(const char* filename, struct book** books_dptr, int* n) { printf("Press any key to read data from a file.\n"); if (_getch()) printf("\n"); else exit(1); FILE* fr; fr = fopen(filename, "r"); fscanf(fr, "%d\n", n); char buffer[LEN]; for (int i = 0; i < *n; i++) { fscanf(fr, "%[^\n]%*c", buffer); strcpy( ((*books_dptr)[i]).name, buffer); fscanf(fr, "%[^\n]%*c", buffer); strcpy( ((*books_dptr)[i]).author, buffer); printf("Book %d : \"%s\" written by \"%s\"\n", i + 1, ((*books_dptr)[i]).name, ((*books_dptr)[i]).author); } } 의도는 구조체의 배열의 주소를 함수의 인자로 받아서, 함수 안에서 indirection을 한번 하면 배열, indirection 한번 더 하면 배열 안의 구조체, 대입되어있는 문자열이 Readonly 이므로 scanf로 해당 주소에 저장을 못하니, strcpy() 이용.제가 의도한대로 구현이 된건지 도움 부탁드립니다! 코드 첨부합니다 ( 코드 일부만 올렸는데 필요하시면 다 올리도록 하겠습니다!)
- 미해결홍정모의 따라하며 배우는 C언어
gcc -o 사용해도 여전히 헤더파일 만들기 오류
위에 질문 올려주신 분이랑 똑같은 문제입니다. 저는 맥 컴퓨터에서 vs code를 사용 중인데요. gcc -c main.cgcc -c header.cgcc -o program_name main.o header.o 를 했는데도 build 할 때 이런 에러가 뜹니다.
- 미해결홍정모의 따라하며 배우는 C언어
주소 int casting시 음수(-)가 나오는 이유
저는 (int)& n 출력시 음수가 나오는데 이유가 무엇일까요?예를 들어&n = 0x7ffeea6c189c 인 경우에(int)& n = -362014564이 나왔습니다
- 미해결홍정모의 따라하며 배우는 C언어
structure와 stack, heap 질문 드립니다.
struct flex { size_t count; double average; double values[]; // Flexible array member }; const size_t n = 3; struct flex* pf = (struct flex*)malloc(sizeof(struct flex) + n * sizeof(double)); if (pf == NULL) exit(1); struct nonflex { size_t count; double average; double* values; // Use malloc() }; struct nonflex nf; nf.values = (double*)malloc(sizeof(double) * n); 위 코드는 강의 내용 그대로입니다! malloc(), 즉 동적으로 메모리를 할당하면 heap에 할당된다고 배웠습니다.일반적인 지역변수들은 stack을 차지하구요. Q1. structure 도 지역변수로 선언이 되면, stack에 할당 되는 것이 맞나요? 디버거로 동적할당 메모리와 주소값을 비교해봤는데, 큰 차이를 찾아내지 못해서... 질문을 드립니다! Q2. 다음 그림의 이해가 맞는지 도움 부탁드립니다! ㅠㅠ<그림 1> 강의 내용의 structure flex <그림 2> 강의 내용의 structure nonflexQ3. 위 그림 1 의 struct가 차지한 공간이 혹시 stack이라면, malloc()이 stack에도 할당을 해줄 수 있는건지malloc() 함수에 대하여 여쭙습니다!
- 미해결홍정모의 따라하며 배우는 C언어
안녕하세요, parmeter 변수에 관해 질문 드립니다.
#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <string.h> #define LEN 30 struct name_count { char first[LEN]; char last[LEN]; int num; }; void receive_input(struct name_count* nc); void count_characters(struct name_count* nc); void show_result(struct name_count* nc); char* s_gets(char* st, int n); int main() { struct name_count yours; receive_input(&yours); count_characters(&yours); show_result(&yours); return 0; } 안녕하세요! 위 코드는 강의 내용의 코드입니다! (함수의 body는 이 질문에서 상관 없는 듯 하여 작성하지 않았습니다.) 다름이 아니고, 지난 수업들을 통해 지역변수의 영역, 또한 함수 헤더의 영역에 대해 배운 바로는 함수 parameter들도 지역변수이고, 함수가 끝나면 사라지는 것으로 알고 있습니다! 위 코드의 nc의 주소를 찍어보았습니다. 앞 강의에서 함수의 parameter는 호출할때마다 서로 다른 객체이지만, 스택에 다른 변수가 없어서?? 다른 작업을 딱히 하지 않아서 ?같은 주소를 출력한다고 하셨던 것 같습니다! 그래서 디버거를 통해 nc의 메모리를 들여다 봤는데, 세 함수의 &nc가 모두 같은 주소가 나오는 것은 이해했지만, 메모리에 저장된 값이 함수를 빠져나와도 소멸되지 않는 것이 의아했습니다!! 어떻게 이해하는것이 좋을까요 ? automatic storage duration이 object자체가 아닌 identifier에 대한 것인가요???
- 미해결홍정모의 따라하며 배우는 C언어
scanf 반환값이 무시되었습니다 자꾸 떠요
강의와 관련있는 질문을 남겨주세요.• 강의와 관련이 없는 질문은 지식공유자가 답변하지 않을 수 있습니다. (사적 상담, 컨설팅, 과제 풀이 등)• 질문을 남기기 전, 비슷한 내용을 질문한 수강생이 있는지 먼저 검색을 해주세요. (중복 질문을 자제해주세요.)• 서비스 운영 관련 질문은 인프런 우측 하단 ‘문의하기’를 이용해주세요. (영상 재생 문제, 사이트 버그, 강의 환불 등) 질문 전달에도 요령이 필요합니다.• 지식공유자가 질문을 좀 더 쉽게 확인할 수 있게 도와주세요.• 강의실 페이지(/lecture) 에서 '질문하기'를 이용해주시면 질문과 연관된 수업 영상 제목이 함께 등록됩니다.• 강의 대시보드에서 질문을 남길 경우, 관련 섹션 및 수업 제목을 기재해주세요. • 수업 특정 구간에 대한 질문은 꼭 영상 타임코드를 남겨주세요! 구체적인 질문일수록 명확한 답을 받을 수 있어요.• 질문 제목은 핵심 키워드를 포함해 간결하게 적어주세요.• 질문 내용은 자세하게 적어주시되, 지식공유자가 답변할 수 있도록 구체적으로 남겨주세요.• 정확한 질문 내용과 함께 코드를 적어주시거나, 캡쳐 이미지를 첨부하면 더욱 좋습니다. 기본적인 예의를 지켜주세요.• 정중한 의견 및 문의 제시, 감사 인사 등의 커뮤니케이션은 더 나은 강의를 위한 기틀이 됩니다. • 질문이 있을 때에는 강의를 만든 지식공유자에 대한 기본적인 예의를 꼭 지켜주세요. • 반말, 욕설, 과격한 표현 등 지식공유자를 불쾌하게 할 수 있는 내용은 스팸 처리 등 제재를 가할 수 있습니다. 안녕하세요 교수님 강의를 보면서 따라하는데 자꾸 오류가 생겨서 혼자서 도저히 해결을 못할 것 같아 문의드립니다! #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> int main() { int i = 0, j = 0; printf("input two integers"); scanf("%d%d", &i, &j); printf("%d %d\n",i,j); return 0; } 정말 교수님이랑 같은 코드로 코딩을 했는데 scanf 반환값이 무시되었습니다라고 오류가 뜹니다.. 혹시 해결 가능할까요?ㅜ
- 해결됨홍정모의 따라하며 배우는 C언어
char *title char *authour 이 Not recommended 인 이유가 뭔가요?
바로 앞 강의에 이유가 나온다고 하셨는데 앞강의 보고왔는데 그런내용을 못본거같아서요..
- 미해결홍정모의 따라하며 배우는 C언어
코딩중 질문
안녕하세요. 코드작성도중 12번째 줄부터 16번째 줄까지 minutes,seconds,hours를 재정의 할 때 모두 int를 붙여서 코드를 작성했는데, 코딩도중 에러가 발생했습니다. 앞에서 int로 정의를 했기 떄문에 재정의할 필요가 없어서 다시 지우고 코드를 작성하니 에러가 사라졌습니다. 이미 정의를 했으니 int를 생략하는것은 이해가 되는데 int를 붙였을 때 코딩이 안되는 이유가 궁금합니다.
- 미해결홍정모의 따라하며 배우는 C언어
10 : 33 쯤 질문 있습니다.
안녕하세요 교수님. 강의를 듣던 중 궁금한 부분이 있어서 질문 드립니다. 10 : 33에서 div * div <= num으로 연산 횟수를 줄이셨는데 교수님 말 처럼 그냥 경험으로 쌓고 넘어가기엔 원리가 궁금해 도저히 머릿속에서 떠나질 않네요. 혹시 참고 할만한 자료나 설명이라도 있을까요? 조금 수학적인 내용이라 강의의 주제에서 벗어나긴 하지만 도움울 주실수 있으시다면 꼭 부탁드리고 싶습니다.
- 미해결홍정모의 따라하며 배우는 C언어
헤더 파일과 static 변수에 대해 질문 드립니다.
main.c 에서 헤더파일 혹은 다른 모듈 안의 함수를 호출했을때, 함수가 동작하는 것은 그 함수의 본체가 있는 파일 안에서 동작하고 return 값만 main.c로 돌려주는 건가요? , 그래서 다른 파일에서 static으로 접근을 막아놓은 변수가 main.c의 함수 호출로도 조정이 되는 걸까요 ?!
- 미해결홍정모의 따라하며 배우는 C언어
배열과 포인터의 산술 연산
안녕하세요:) 연습 문제 구현 중, swap(&arr[min_idx], &arr[i]); 이 부분을 swap(arr + min_idx, arr + i); 이렇게 구현을 해봤는데, 똑같이 작동해 확인 차 여쭤보려고 질문을 달게 되었습니다. 전에 포인터는 산술연산이 가능하지만, 배열은 산술연산이 안된다고 하셨는데요. 여기서 arr은 배열이지만 산술연산이 가능한 것은 함수로 들어오면서 arr이라는 변수명이 포인터처럼 작동하기 때문에 가능한 것이 맞나요? 감사합니다:)
- 미해결홍정모의 따라하며 배우는 C언어
2.0f와 2.0의 차이
숫자 뒤에 붙는 f의 유무는 float형과 double형의 구분으로 알고 있습니다. circum=2.0*PI*radius로 코딩을 했을 때 에러가 발생해서 2.0f로 바꿨더니 에러가 사라졌습니다. 변수가 float형으로 고정되었을 때에는 모든 실수뒤에 f를 붙어주지 않으면 오류가 발생하나요? 2.0f 와 2.0을 컴퓨터가 받아들일 때 어떠한 차이가 있는지 잘 모르겠습니다 ..ㅠㅠ
- 미해결홍정모의 따라하며 배우는 C언어
이진수 재귀함수 반환형을 정수형으로 했는데 값이조금 다릅니다
#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include<ctype.h> #include<stdbool.h> #include<stdlib.h> int bin(int num)//n: parameter { if (num > 1) bin(num / 2); int i= printf("%d", num % 2); return i; } int main() { int num = 10; printf("%d\n", bin(num)); return 0; } 이렇게 정수형으로 반환하는 코드로 짰는데 출력값이 10101이 나왔습니다.. 1010 뒤에 왜 1이 붙여서 나오는지 궁금합니다!!
- 미해결홍정모의 따라하며 배우는 C언어
L-value와 Object에 대해 질문드립니다.
강의 16:40 쯤, L-value 는 Object다 라고 하신 부분에 관해 질문 드립니다. Q1. Object는 메모리 공간 자체고, L-value는 그 공간을 참조하는 expression이나, identifier라고 하신 설명과는 다른 것 같아서 질문 드립니다! Q2. 또, arr[0] 이 object라고 하신 부분도, arr[0] 이 어떠한 메모리 공간에 접근 가능하게 한다는 것은 알겠는데 위 질문과 같은 맥락으로 혼란이 있습니다. ! object가 메모리 공간 그 자체를 의미하는거라면 script 상에는 아예 존재하지 않는 것이 아닌가... 하는 질문입니다! Q3. arr == &arr[0]이 메모리 주소값임에도 Object를 의미히지 않는 이유는 "메모리 주소값" != "메모리 공간" 으로 받아들이면 될까요???
- 미해결홍정모의 따라하며 배우는 C언어
재귀호출 팩토리얼 질문
#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include<ctype.h> #include<stdbool.h> #include<stdlib.h> int fact(int n)//n: parameter { int i=1; int fa = 1; if (i < n) { i++; fa *= i; fact(i); } return fa; } int main() { int num = 5; printf("%d\n", fact(num)); return 0; } 이렇게 코드를 짜보았는데 재귀함수를 사용할 때 원래변수 n이 아닌 i같은 다른변수를 사용하면 오류가 뜨나요? 컴파일 자체가 안됩니 다 ㅠㅠ
- 미해결홍정모의 따라하며 배우는 C언어
컴파일과 링킹
컴파일과 링킹의 차이점에 대해 설명해주신 강의가 몇강인지 알려주시면 감사하겠습니다
- 미해결홍정모의 따라하며 배우는 C언어
텍스트 파일 불러오기 2번째
myfile안에 hello만 입력하고 다음과 같이 실행시켰는데 rrrrr이 출력되었습니다 텍스트 파일은 메모장 기반?입니다. 코드 중에서도 궁금한게 있는데 getchar을 사용하지 않고 getc를 사용하는 이유는 무엇인가요?? file에 입력된 정보를 가져올 때는 버퍼를 가져올 때와는 다르게 getc를 사용해야 하는건가요??
- 미해결홍정모의 따라하며 배우는 C언어
텍스트 파일 불러오기
교수님 말씀대로 프로젝트 파일과 같은 위치에 있음에도 불구하고 my_file을 읽을 수 없다고 나오는데 뭐가 문제인건가요??
- 미해결홍정모의 따라하며 배우는 C언어
메뉴 만들기 예제 질문
교수님이 하신대로 switch문 말고 if와 elseif를 활용하여 제대로 실행만 되면 상관없나요?? 아래는 제가 스스로 해본 것인데 실행만 되면 잘한것인가요?? #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> int main() { // 목표: 메뉴 만들기 예제 풀기 switch case문을 활용해서 문제를 풀어도 상관없음!!! char x; int a; printf("Enter the letter of your choice:\n"); printf("a. avengers b. beep\n"); printf("c. count q.quit\n"); while (1) { scanf("%c", &x); if (x == 'a') { printf("Avengers assemble!\n"); printf("Enter the letter of your choice:\n"); printf("a. avengers b. beep\n"); printf("c. count q.quit\n"); } else if (x == 'b') { printf("\a"); // 비프음 내기: \a printf("Enter the letter of your choice:\n"); printf("a. avengers b. beep\n"); printf("c. count q.quit\n"); } else if (x == 'c') { scanf("%d", &a); printf("%d\n", a); for (int i = 0; i <= a; i++) { printf("%d\n", i); } printf("Enter the letter of your choice:\n"); printf("a. avengers b. beep\n"); printf("c. count q.quit\n"); } else if (x == 'q') { printf("Program is quit thank you!!\n"); break; } else printf("Error\n"); } return 0; }