묻고 답해요
130만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결오픈소스 자료구조 및 알고리즘 in C
메모리 풀링 속도 확인
안녕하세요, malloc() 대신 스택 변수로 NODE 배열을 만들어서 사용하는 것을 보았는데요,정말로 빠른지 확인해보고 싶은데 어떻게 할 수 있을까요?
-
해결됨홍정모의 따라하며 배우는 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)을 반환합니다. 이러한 개념을 파일로 적용 해봤을 때 이해한게 맞을까요??바이너리 파일과 확장자요즘 소프트웨어가 다양하고 각 소프트웨어마다 확장자를 가지고 있습니다. 그리고 그 확장자를 불러오거나 저장할 수도 있습니다.이번 강의를 보고 느낀점은 결국 확장자 라는 개념은 그 소프트웨어의 확장자 임을 나타내기 위함이고각 소프트웨어의 확장자 파일을 읽어올 때나 저장(출력)할 때 소프트웨어 개발사가 미리 정해둔 어떤 데이터들의 형식, 구조, 순서 대로 저장을 하고. 그 저장된 확장자 파일을 불러올 때 앞 서 미리 정해둔 저장(출력) 틀에 따라 데이터들을 차례대로 가져와서 사용하는 개념일까요?
-
해결됨Windows 시스템 프로그래밍 - 기본
강사님 질문이 너무 많아 죄송합니다.
메모리를 내부적으로 64KB 와 4KB 로 관리하는 내역이 뭔지 좀 자세한 설명 부탁드릴 수 있는지요?4KB 는 시스템에서 한번에 이동하는 즉 PAGE 단위라는 것은 알고 있는데 64KB 의 의미는 정확히 이해가 좀 안가서요....또한 4Kb 를 넘어가는 메모리 요청은 한페이지를 넘어가는데 이 경우 메모리의 주소 관리 등은 어떻게 이루어 지는지 궁금합니다. 아울러 한가지만 더 여쭤보면 만약 스레드를 생성하고 대기하기도 전에 스레드가 종료되어 버리면 WaitForSingleObject는 어떻게 동작하나요?또한 SetEvent() 를 호출하여 이벤트가 signalled 상태로 변경하면 WaitForSingleObject() 를 호출하는 모든 스레드는몇번이고 Event 가 non-signalled 로 전환되기 전까지는 몇번이고 WaitForSingleObject() 를 통해 Event 를 받을 수 있게 되는 건가요?
-
해결됨Windows 시스템 프로그래밍 - 기본
비즈니스 코드는 프로세스간에 공유가 되는건지요?
개발자가 작성한 프로그램을 여러개의 프로세스로 기동할 때실행코드는 모든 프로세스가 공유하는 건지요? 만약 그렇다면 사용자 코드는 사용자 메모리에 어떻게 올라가서 어떤식으로 모든 프로세스가 공유할 수 있는건지 궁금합니다.
-
해결됨독하게 C를 배운 사람을 위한 선형 자료구조
구현 연습에 대한 개인적 의문
제가 나름 강사님의 큰 틀의 사고를 이용해서 구현을 하는데 차이가 약간씩 나고 있습니다. 이걸 코드 수준에서 동일하게 하도록 연습을 해야 할 지 아니면 저의 사고를 우선으로 하고 차이를 조정을 해야할지 고민이 있어 질문 드림니다!
-
미해결C 프로그래밍 - 입문부터 게임 개발까지
반올림 되는건가요?
double d = 4.428;printf("%2lf\n",d);이렇게 작성 시 4.43이 나오는데 반올림 되어 출력되는건가요?
-
해결됨독하게 시작하는 C 프로그래밍
c언어 자료형에 대해
자료형에 대한 이해 5:38에서 C언어 자료형에 대해 설명하는 도중 함수형에 대해 의문이 들어 글을 작성합니다. 이전에 설명해 주실때 자료형은 일정길이의 메모리에 저장된 정보를 해석 하는 것으로 설명해주셨습니다. 함수형은 메모리에 일정길이를 해석하는 개념이 있는지 또는 다른 해석법이 있는지 궁금합니다.
-
미해결홍정모의 따라하며 배우는 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
-
해결됨Windows 시스템 프로그래밍 - 기본
강사님 질문 드립니다.
게임개발자가 되려면 MFC 를 어느정도 알아야 하나요?게임개발자가 되려면 반드시 MFC 를 공부해야 하는지 궁금해서요...강사님의 조언 부탁드립니다.
-
해결됨독하게 시작하는 C 프로그래밍
Switch-case 문 예제
안녕하세요 강사님섹션 11 기본 제어문 switch-case문 예제 scanf_s에서 중간에 1을 쓰셨던데 이유를 알 수 있을까요?실제로 실행을 해보니 1을 넣으면 결과가 잘 나오는데 1을 넣지 않으면 실행창은 뜨는데 아래 실행 창 처럼 멈춰 있습니다. 각각의 이유를 알 수 있을까요?오류코드도 뜨는데 무슨 말인지 잘 모르겠는데 알려주실 수 있나요? 오류 코드 감사합니다.
-
해결됨홍정모의 따라하며 배우는 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 프로그래밍
나이, 이름 입력 예시에서 scanf_s() 함수 사용 이후 gets_s() 함수 사용 시 오류
gets_s() 함수가 키보드 추상화 파일의 버퍼에서 null이 나올 때까지 문자열을 가져오는 함수잖아요.scanf_s() 함수를 통해 5\n 이 저장되었다고 했을 때, %*c를 통해 \n을 제거하지 않으면 gets_s() 함수는 \n이 들어있어서 입력을 중지하는 거라고 이해했습니다.여기서 질문입니다. null이랑 \n 이랑 다르다고 알고 있는데 왜 null 이 나온 것처럼 gets_s() 함수가 수행되지 않는지 궁급합니다!!감사합니다. (꾸벅)
-
해결됨홍정모의 따라하며 배우는 C언어
멀티 쓰레딩이란?
안녕하세요, 멀티 쓰레딩 강의를 보고 궁금점이 생겨 질문드립니다. 물론 여기서 완벽히 이해하고 갈 예정은 아닙니다. 추후 cpp강의까지 연계하여 공부할 것이기 때문에 제가 이해한 개념이 맞는지 궁금하여 질문 드립니다.멀티 쓰레딩이란?프로그램에서 원래 한가지 일 밖에 못하는데 멀티 쓰레딩 이라는 개념으로 여러가지 일을 동시에 해주는 것이 맞을까요?예를 들어서 계산기가 있고 계산기를 사용하여 답을 얻고자 하는 사람이 3명일 때 쓰레드가 하나 일 경우에는 한 사람씩 순서대로 계산기 사용해야 하지만 쓰레드가 3개일 경우엔 각 사람마다 각자의 계산기를 통해 동시에 계산할 수 있는 그런 느낌이려나요?더 나아가서 실시간 서버와 통신하는 게임 같은 경우에도 많은 유저가 서버에게 요청하는데 쓰레드가 하나일 경우엔 이걸 하나씩 처리하지만, 멀티 쓰레딩을 사용하면 여러 개 처리하는 느낌일까요?메인 쓰레드와 쓰레드 생성강의에서 쓰레드라는 개념으로 보여주신 그림입니다. 위 그림을 통해 이해했던 개념이 프로그램에는 메인 쓰레드가 있고 메인 쓰레드가 처리해야 할 일이 많을 경우 자신을 복제하여 분신을 만들고(쓰레드 생성) 분신(쓰레드)에게 일을 할당하여 일을 시키고 프로그램이 끝나기 전 메인 쓰레드는 자신의 분신(쓰레드)과 다시 합체한다음 프로그램이 종료되는 느낌일까요? 이 과정에서 아직 분신(쓰레드)가 할당한 일을 하고 있다면 기달렸다가, 합체하고 종료되는 건가요?멀티 쓰레딩의 큰 개념은 결국 하나?강의 중 c언어 표준에는 멀티 쓰레딩이라는게 없어서 운영체제에서 제공하는 api을 통해서 멀티 쓰레딩을 할 수 있다고 하셨는데요, 그러시면서 윈도우에서 멀티 쓰레딩을 사용하는 방법과 gcc컴파일러에서 멀티 쓰레딩 사용하는 방법에 대해서 보여주셨는데 윈도우에서는 windows.h헤더파일과 쓰레드에 사용되는 전용 함수를 사용하셨고gcc컴파일러에선 pthread.h헤더파일과 쓰레드에 사용되는 전용 함수를 사용하셔서 구현을 해주셨는데요운영체제 api마다 c언어에서 멀티 쓰레드의 대한 제공하는 헤더파일과 함수, 문법과 표현법이 모두 달라서 이번 예제에서 조차 윈도우와 gcc컴파일러에서 작성한 방법이 달랐지만 결국 큰 틀은 쓰레드를 생성하고 쓰레드에게 할 일을 배정하고 프로그램이 끝나기 전 쓰레드들을 다시 하나로 합치는 이 과정은 어느 환경이든 다 똑같은 개념일까요?여담으로 멀티 쓰레딩과 표준에 대하여C언어 표준에는 멀티 쓰레딩이 없다고 하셔서 각 운영체제마다 다른 기술을 사용해서 구현해야 하는데 CPP언어 표준에는 멀티 쓰레딩이 있나요?? 항상 친절한 답변 남겨주셔서 감사합니다.
-
해결됨독하게 시작하는 C 프로그래밍
문자열처리 함수소개강의에서 질문 있습니다.
강의 감사히 듣고 있습니다.질문 두 가지 있습니다.1.strcat_s 함수를 설명하실 때 strcat_s(szPath + 17 + 4, sizeof(szPath) - 25, "C programming");이라고 해주셨는데 22번째 인덱스부터 시작하여 널문자를 찾고 이어붙이는 구문이라면 전체 배열의 크기도 sizeof(szPath)-21로 조정을 해야 하는 것 아닌가요? 2.strcat_s(szPath + 17 + 8, sizeof(szPath) - 25, "C programming");에서 오류가 나는 것은 문자열 배열 넘어의 메모리를 시작값으로 설정했다는 것인데 확인할 수 있는 null 이 없기 때문인 건가요?감사합니다.
-
해결됨독하게 C를 배운 사람을 위한 선형 자료구조
05_adtFileIO 프로젝트 문의
안녕하세요. 선생님! 에러는 아니고, 프로그램 완성도 측면에서 버그 발견하여혹시몰라서 공유드립니다.프로젝트이름: 05_adtFileIO소스파일: singleList.c함수명: AddNewNode, SearchListByNameNew(유저추가) > Search > offset 0의 유저로만 찾아지는 버그수정방안새로운 유저 추가 시, g_listCount로 offset 셋팅검색 시, 캐싱된 데이터 조회(파일에 아직 저장 안한상황 대응)