월 19,800원
5개월 할부 시다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 미해결홍정모의 따라하며 배우는 C언어
3.11 강의에 대한 질문 드립니다.
float f 가 123.456001 가 궁금해서 질문을 보는 중 3.12 강의를 보면 된다고 하셨는데 제가 이해하기로는 유효숫자가 6개 이기 때문에 그 이후의 값은 정확하게 출력되지 않아서 123.456000이 아닌 123.456001이 출력된것이라 이해해도 될까요?
- 미해결홍정모의 따라하며 배우는 C언어
예제 관련 질문
안녕하세요 선생님 최근에 강의 잘 보고 있습니다~ 다름이 아니라 예제를 풀이하다가 직접 해보기도 하고 선생님께서 작성하신 코드를 똑같이 입력도 해보았는데 scanf를 통해 입력받는 값이 5개가 아니라 6개가 됩니다. sum은 앞의 배열 0부터 4까지만이 계산돼서 잘 나오는데 입력받는 값에서 하나를 더 입력해야 작업이 되는데 어떤 부분이 다른지 봐도 잘 모르겠어서 질문드립니다. 감사합니다. #include<stdio.h> #define SIZE 5 int main() { int numbers[SIZE]; int sum = 0; int i; printf("Enter 5 numbers : "); for (i = 0; i < SIZE; ++i) { scanf("%d ", &numbers[i]); } for (i = 0; i < SIZE; ++i) { sum += numbers[i]; } //sum = my_arr[0] + my_arr[1] + my_arr[2] + my_arr[3] + my_arr[4]; printf("Sum = %d", sum); return 0; }
- 미해결홍정모의 따라하며 배우는 C언어
header file과 include 질문드립니다!
/* MyLibrary.c */ #include "MyLibrary.h" #include <stdio.h> void say_hello() { printf("Hello\n"); } void say_world() { printf("World\n"); } /* MyLibrary.h */ #pragma once void say_hello(); void say_world(); 위와 같은 강의 중 코드에서,Q1. header file의 프로토타입? 과 c file의 몸체가 연결되는 것은 external linkage인 function의 특성때문이 아닌가요 !Q2. 왜 c file에서 h file을 include 해주는지 잘 모르겠습니다! 일단 include를 안해도 함수가 연결이 되는 것 같고... 또 굳이 include를 한다면 뭔가 함수의 이름만 있는 header file에서 함수의 몸체가 있는 c file을 include 해야 맞는 것 같고... 어떤 원리고, 이유인가요?
- 미해결홍정모의 따라하며 배우는 C언어
ifndef와 macro 질문드립니다.
안녕하세요! ifndef와 header guard 가 궁금하여 질문드려요!어떻게 중복방지가 되는 것인지 그 원리가 궁금합니다!#ifdef GUARD#define GUARD . . . #endif Q1. 위와같은 구조에서, 한번 include 됐으면 define이 되었을테니 다음에 include될때 ifndef에서 걸러져서 ifndef ~ endif 사이 ... 을 실행 안하는 것인가요? define 된 GUARD가 flag같은 느낌??? 으로 이해하면 될지...! Q2. 강의 동영상 7:52 경, static이라서 header에서 정의가 가능하다는게 무슨 말인지 잘 모르겠습니다 ㅠㅠ header 내에서는 function을 정의하면 안되는 것인가요?!
- 미해결홍정모의 따라하며 배우는 C언어
static과 include 질문 드립니다!
printf("\n"); printf("main()\n"); printf("Static function address %p\n", multiply); printf("Static variable address %p\n", &si); printf("\n"); print_address(); // my_functions.c 강의 중의 코드입니다!! my_functions.h 에서 static으로 정의된 si와 multiply를, main.c / my_functions.c 에서 각각 #include "my_functions.h" 해줌으로서 include는 단순한 코드 복사니까,두 파일에서는 각각의 file scope로 새로운 si와 multiply 를 가지게 된다고 이해했는데요!1. 위의 이해가 맞는지,2. 그렇다면 si / multiply는 총 3개가 존재하고 원본인 my_function.h 의 si / multiply가 따로 존재하는건지질문 드립니다!! 헤더 파일 내에서 변수의 주소를 확인해보려고 했는데 링킹 문제를 해결하기가 어렵네요 ㅠㅠ
- 해결됨홍정모의 따라하며 배우는 C언어
7.8강 단어 세기 예제
삭제된 글입니다
- 미해결홍정모의 따라하며 배우는 C언어
강의 내용 관련 질문드립니다
const int LIM = 50;//const int LIM3 = 2 * LIM; // clang, C++int main() { const int LIM3 = 2 * LIM; printf("%d\n", LIM3); return 0; } 강의 중 코드입니다! main 내 LIM3 는 변수를 이용한 초기화가 되는데,주석처리된 file scope에서 왜 2 * LIM형태로 초기화가 되지 않는지 궁금합니다!
- 미해결홍정모의 따라하며 배우는 C언어
코딩중 질문입니다.
안녕하세요. 코딩도중 선생님과는 다르게 코딩을 해봤는데요, 결과값이 잘 안나오네요..ㅠㅠ 수십번 봐도 어디서 잘못된건지 찾을 수가 없어서 질문하겠습니다. 저가봤을 땐 잘못된 부분이 없는것같은데 어디서 잘못된거죠..? int main() { char ch; int count1 = 0; int count2 = 0; int count3 = 0; printf("Enter text : "); ch = getchar(); if ((ch != PERIOD)&&(ch!=' ')&&(ch!='\n')) count1++; if (ch == ' ') count2++; if (ch == '/n') count3++; printf("Charaters = %d, Words = %d, Lines = %d\n", count1,count2,count3); return 0; }
- 미해결홍정모의 따라하며 배우는 C언어
시스템 프로그램/응용프로그램과 셸의 관계에 대해
안녕하세요. 선생님 수업듣고 강의 수강중인 수강생 입니다. 공부를 하던 중에 선생님께서 사용자와 운영체제 사이 시스템/응용 프로그램이 있다고 말씀 하셔서 관련되서 추가적으로 공부하던 중 수업시간에 나오지 않은 셸 이라는 개념에 대해 알고 네이버 사전에서 공부를 했습니다. 셸은 운영체제를 둘러싸고 있는 입력받은 명령어를 실행시키는 명령어 해석기라고 되어있는데, 이는 선생님이 말씀 하신 시스템/응용 프로그램에 속하는 것인가요? 아니면 별개의 개념인 것인가요? 궁금해서 여쭤봅니다.
- 해결됨홍정모의 따라하며 배우는 C언어
중첩된루프들6.15강
삭제된 글입니다
- 미해결홍정모의 따라하며 배우는 C언어
이해가안됩니다
char c; int chars = 0; int words = 0; int lines = 0; bool word_flag = false; bool line_flag = false; printf("단어를 입력하세요:\n"); while ((c = getchar()) != PERIOD) { if (!isspace(c)) chars++; if (!isspace(c) && !line_flag) { lines++; line_flag = true; } if (c == '\n') line_flag = false; if (!isspace(c) && !word_flag) { words++; word_flag = true; } if (isspace(c)) word_flag = false; } printf("글자수 :%d 단어수 :%d 줄수 :%d\n", chars, words, lines); 여기서요 첫번째 두번째부분에 글자수랑 줄바꿈수 세는부분 if (!isspace(c)) chars++; if (!isspace(c) && !line_flag) { lines++; line_flag = true; } 여기서 만약에 글자를 입력할때 a를 입력한다고하면 처음에 if (!isspace(c)) chars++; 이게 만족되니까 chars가 1증가하구 그다음에if (!isspace(c) && !line_flag) 여기서요 ! isspace(c)는 true이고 뒤에 지금 line_flag가 false로 초기화되어있으니 ! 붙으면 true니까 전체가 true잖아요 그러면 안에있는lines++; line_flag = true; 이게 실행되어서 lines 즉 줄수가 1증가해야되는거아닌가요?? 즉 처음에 공백아닌 문자 입력하면 a가되었는 b가되었든 글자수도 1증가하는데 줄수도 lines도 1증가하는거아닌가요?
- 미해결홍정모의 따라하며 배우는 C언어
struct flex와 *pf의 size가 같은 이유
printf("Size of flex %lu\n", sizeof(struct flex));printf("Size of *pt %zd\n", sizeof(*pf)); 이 부분에서 둘다 16이 나오는데 pf는 malloc으로 배정받은 것이니 *pf의 size는 40이 돼야 하는거 아닌가요??왜 strcut flex와 , malloc을 거친 pf의 size가 똑같은 것인가요?
- 미해결홍정모의 따라하며 배우는 C언어
12.14 강의 free() 에 대해 질문 있습니다.
안녕하세요. 현재 따배씨 강의를 듣고있는 학생입니다. free() 가 포인터가 가리키는 주소의 메모리를 반환하는 함수임은 알고 있으나 free()의 동작 원리에 대해 질문이 생겨서 내용을 작성합니다. 아래의 코드는 정상적으로 작동하지만, 중간에 //p++; 의 주석을 풀면 런타임 에러가 발생합니다. p++ 을 해서 free(p);를 할 때 런타임 에러가 발생하는 이유가 1. malloc()을 할당받은 만큼 반환하여 할당받은 영역을 넘어선다.2. 할당받은 공간의 시작주소를 보고 연결된 메모리 공간을 반환한다. (컴파일러가 중간에 이어진 주소를 보고 어떤 의미를 알지 못해서 일어나는 것? 이라고 생각) 제가 생각한 1번이나 2번에 있을까요? 항상 좋은 강의를 제공해주셔서 정말로 감사하고 있습니다. 코드 #include <stdio.h> #include <stdlib.h> int main() { int* p = (int *)malloc(sizeof(int) * 10); if (!p) { printf("malloc() failed\n"); exit(EXIT_FAILURE); } // p++; free(p); printf("Success free\n"); }
- 미해결홍정모의 따라하며 배우는 C언어
포인터배열을 함수의 매개변수로 사용하고 싶어요
#include <stdio.h> void inputdata(int* []); void test3(int* []); int main(void){ int* p_arr[2]; int myarr[4] = { 1,2,3,4 }; p_arr[0] = myarr; test3(p_arr); inputdata(p_arr); } void test3(int* p_arr[]) { int myarr[4] = { 10,20,30,40 }; p_arr[1] = myarr; } void inputdata(int* p_arr[]) { for (int i = 0; i < 3; i++) { for (int j = 0; j < 4; j++) { printf("%d\t", p_arr[i][j]); } printf("\n"); } } 안녕하세요 선생님의 강의를 듣고 공부하고 있습니다. 머리에 쏙쏙 들어오게 강의해주셔서 감사합니다.다름이 아니오라 위와 같이 제가 작성하여 작업하는데 main함수와 test함수에서 동일한 코드를 수행함에도 불구하고 main함수에서 배열에 저장하여 할당한 1,2,3,4값은 잘 들어가서 출력되는데 test함수에서 지정한 10,20,30,40은 쓰레기 값인지 알 수 없는 값이 들어갑니다. 동일한 코드인데 왜 잘 안나오는지 C가 초보라 궁금합니다. 꼭 답변 해주세요...선생님 ㅠㅠ
- 미해결홍정모의 따라하며 배우는 C언어
문자열 리터럴에 대해 질문 드립니다!
문자열 리터럴은 Read only 영역에 있어서 char* hello = "Hello, World" ; 일때 hello 에 대입 되는 것은 "Hello, World"에 대한 포인터, 즉 H의 주소? 이고, Read only 영역이라 변경이 안되는 것으로 알고 있는데, 강의 중 코드의 ToUpper 함수의 경우, 문자 포인터를 받아 그 주소의 문자열을 toupper로 변경하는 부분이 잘 이해가 되지 않습니다!! 강의 중 argument로 들어오는 값이 char str[] = "Hello, World"; ToUpper(str) 이라서 text segment에 있는 리터럴과는 상관 없이 단순히 배열에 character 하나씩 저장이 된 형태라서,ToUpper 함수가 적용이 가능한건가요...?? 그렇다면 char* str = "Hello, World" ; 같은 값이 아닌 배열형태만 들어올 수 있는 함수인거죠 ?!
- 미해결홍정모의 따라하며 배우는 C언어
scanf질문이요
int a = 0; int b = 0; int c = 0; c = scanf("%d", &a); printf("%d\n", c); 이렇게하면 c가 입력받은 숫자가 들어가야될거같은데 찍어보면 항상 c는 1이나오는이유를 모르겠습니다... a에다가 3을넣거나 2를넣거나 4를넣거나 어떤숫자를 넣으면 scanf로 그 값을받아서 c에 대입했는데 왜 항상1이들어가는건가요...
- 미해결홍정모의 따라하며 배우는 C언어
지정된 파일을 찾을 수 없습니다. 오류가 뜹니다.
강의와 관련있는 질문을 남겨주세요.• 강의와 관련이 없는 질문은 지식공유자가 답변하지 않을 수 있습니다. (사적 상담, 컨설팅, 과제 풀이 등)• 질문을 남기기 전, 비슷한 내용을 질문한 수강생이 있는지 먼저 검색을 해주세요. (중복 질문을 자제해주세요.)• 서비스 운영 관련 질문은 인프런 우측 하단 ‘문의하기’를 이용해주세요. (영상 재생 문제, 사이트 버그, 강의 환불 등) 질문 전달에도 요령이 필요합니다.• 지식공유자가 질문을 좀 더 쉽게 확인할 수 있게 도와주세요.• 강의실 페이지(/lecture) 에서 '질문하기'를 이용해주시면 질문과 연관된 수업 영상 제목이 함께 등록됩니다.• 강의 대시보드에서 질문을 남길 경우, 관련 섹션 및 수업 제목을 기재해주세요. • 수업 특정 구간에 대한 질문은 꼭 영상 타임코드를 남겨주세요! 구체적인 질문일수록 명확한 답을 받을 수 있어요.• 질문 제목은 핵심 키워드를 포함해 간결하게 적어주세요.• 질문 내용은 자세하게 적어주시되, 지식공유자가 답변할 수 있도록 구체적으로 남겨주세요.• 정확한 질문 내용과 함께 코드를 적어주시거나, 캡쳐 이미지를 첨부하면 더욱 좋습니다. 기본적인 예의를 지켜주세요.• 정중한 의견 및 문의 제시, 감사 인사 등의 커뮤니케이션은 더 나은 강의를 위한 기틀이 됩니다. • 질문이 있을 때에는 강의를 만든 지식공유자에 대한 기본적인 예의를 꼭 지켜주세요. • 반말, 욕설, 과격한 표현 등 지식공유자를 불쾌하게 할 수 있는 내용은 스팸 처리 등 제재를 가할 수 있습니다. source files 에 .c를 붙여 파일을 추가한 다음 f5를 누르면 지정된 파일을 찾을 수 없습니다.라고 오류가 뜹니다. 하지만 파일추가하지 않은 채 기존에 있던 파일 한개로는 실행이 되는데 왜 자꾸 새로운 파일을 추가만 하면 이런 오류가 뜨는지 이해가 안됩니다.. 구글링, 몇날을 고민해봤는데 안되서 여기다가 올립니다.. 감사합니다 교수님
- 해결됨홍정모의 따라하며 배우는 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 할 때 이런 에러가 뜹니다.