묻고 답해요
169만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨독하게 시작하는 C 프로그래밍
포인터 변수 관련 질문입니다.
64bit 시스템에서 주소 상수와 포인터 변수 크기가 모두 64bit라면 char형 포인터 변수나 int형 포인터 변수 크기도 64bit인건가요?
-
해결됨독하게 시작하는 C 프로그래밍
문자 입/출력 질문입니다
안녕하세요! 강의 잘 보고 있습니다. 몇 가지 질문이 있습니다! _getch() 함수를 설명해주실 때, 사용자가 주변기기(ex. 키보드)에 입력한 것이 무엇인지 보이지 않는다고 했는데, 이를 활용한 것이 흔히 콘솔(터미널)에서 어떤 계정과 비밀번호 입력할 때 비밀번호 입력해도 콘솔에 표시되지 않는 것들을 구현할 때 사용하려나요?(윈도우에선 putty 같은 것에서..) 개인적으로 궁금하네요 ㅎㅎ가끔 퍼블릭 클라우드의 VM으로 인터넷을 통해 로컬에서 원격 접속을 하게 된 뒤에 VM의 콘솔에서 키보드를 입력하면 가끔 끊기면서 입력되는 경우도 있던데.. 이는 네트워크 대역폭이나 속도 관련 문제일 가능성이 높겠죠? 제가 현재 MacOS라서 버추얼박스에서 window 및 visual studio 설치 후 사용하고 있는데요! 거기에서 아래의 예제 코드를 실행하고 키보드 입력을 'z' 로 했는데 콘술 출력에 'za'가 아니라 'z?' 가 나오는데요. 물음표가 대체 왜나올까요..? 예상 가시는 원인이 있으시려나요..3번에서 이야기한 아래 예제 코드에서 char ch = 0; 부분 설명하시면서 0이라는 숫자값이 정수인 것 같은데 앞에 char 키워드로 지정해도 에러가 나지 않는 부분은 char도 어쨌건 컴퓨터한테는 정수 숫자형태로 인지되고, 정의한 0이라는 값이 char 자료형의 숫자 범위 내에 있기 때문인 걸로 이해했는데.. 이게 맞나요?3번 질문에 대한 예제코드는 다음과 같습니다.#include <stdio.h> #include <conio.h> int main(void) { char ch = 0; ch = getchar(); putchar(ch); putchar('z'); return 0; }답변 미리 감사합니다! :)
-
해결됨독하게 시작하는 C 프로그래밍
엔디안 관련 질문입니다.
강의에서 Intel이 리틀 엔디안을 사용한다고 하셨는데요. 빅 엔디안은 값의 대소 비교에 유리하고, 리틀 엔디안은 홀수와 짝수를 판단하는 데 유리할 것 같습니다. 그렇다면 Intel이 리틀 엔디안 방식을 사용하는 이유는 무엇인가요? / 리틀 엔디안 방식의 장점은 무엇인가요?
-
해결됨MFC Windows 프로그래밍 - 기본
유튜브 강의와 차이점
안녕하세요 !강의 수강을 하려고 하는데 유튜브로 올려주신 강의와 내용에서 어떤 차이가 있는지 궁금합니다!
-
해결됨독하게 시작하는 C 프로그래밍
MacOS에서 C 개발할 때 사용하는 IDE
안녕하세요 선생님! 저는 개인적으로 MacOS를 사용하고 있어서 선생님 강의를 들을 때는 버추얼 박스 설치하고 윈도우 11을 설치해서 선생님이 강의에서 말씀해주시는 환경을 동일하게 세팅해서 학습을 진행하고 있습니다. 그래서 학습할 때는 앞으로도 큰 불편함은 없을 것 같은데요! 다만, 학습이 끝나고 제가 원래 익숙해하던 MacOS로 돌아올 텐데.. MacOS에서 C를 개발할 때는 주로 어떤 IDE 나 툴을 사용하는지 아시는 바가 있으실까요!? 강의 이론쪽 내용에서 소개해주실 때, C 개발할 때 컴파일러 소프트웨어가 필요하다고 하셨고, 이 컴파일러 소프트웨어를 강의에서 사용하는 visual studio가 매우 잘 제공해준다고 하셨습니다.(리눅스에서는 gcc라고..) 그러면 보통 MacOS를 사용하시는 분들은 어떤 IDE 랑 어떤 컴파일러를 사용해서 C 개발을 하는지 아시는 부분이 있다면 답변 부탁드려도 될까요!?(chatGPT한테 물어보니 Xcode 도 알려주긴 하네요..)최근에 visual studio 홈페이지를 가보니까 Mac을 위한 버전이 나오기도 했는데, 지원되는 기능을 보니까 C/C++ 기반 데스크톱 개발은 또 지원이 안되는 것 같더라구요..(https://visualstudio.microsoft.com/ko/vs/mac/) 미리 답변 감사합니다! ㅎㅎ
-
해결됨독하게 시작하는 C 프로그래밍
매개변수의 변경 방지
const를 사용하면 매개 변수의 변경을 방지할 수 있지 않을까요~?int Add(const int a, const int b) { return a + b; }포인터의 경우 주소 값과 역참조 값 중에 const로 지정할 것을 고민하긴 해야 하지만요. 어쨌든 const를 이용하면 매개변수의 데이터 변경을 제한할 수 있을텐데 따로 언급이 없으셔서 말씀드려봅니다!
-
미해결독하게 C를 배운 사람을 위한 선형 자료구조
CPU의 다른 이름 Machine 강의 질의
안녕하세요.강의를 보다가 학습과는 크게 상관없는 부분이지만 잘못 언급을 하신것 같아서 질문 게시판에 글을 남깁니다.UNIX 운영체제를 만드신, 켄톰슨 선생님이 돌아가셨다고 얘기하시는 부분이 있는데켄톰슨 선생님이 아니고 데니스 리치 선생님을 얘기하신다는게 잘못 얘기하신게 아닌가 생각이 듭니다.별거 아니긴 한데, 멀쩡히 살아계시는데 돌아가셨다고 하신 부분이 그냥 찝찝해서 글 남깁니다. 좋은 하루 되세요!!
-
해결됨독하게 시작하는 C 프로그래밍
교재
안녕하세요! 독하게 시작하는 C 교재를 구하기가 어려운데 혹시 유튜브에 pdf자료가 올라와 있을까요??
-
해결됨독하게 시작하는 C 프로그래밍
UTF-8 관련 질문 드립니다!
UTF -8은 영문과 한글을 섞어서 사용한다고 하셨는데영문 한 글자는 MBCS 문자열이고 한글은 Unicode 문자열 이니까 UTF-8은 MBCS 문자열과 유니코드 문자열을 섞어서 쓴다라고 이해하면 될까요?
-
해결됨독하게 시작하는 C 프로그래밍
포인터와 1차원 배열 강의 관련해서
#define CRTSECURE_NO_WARNINGS#include <stdio.h>#include <string.h>int main(void){ char szBuffer = {"Hello"}; char* pszData = szBuffer; while (*pszData != '\0') { pszData++; } printf("%p, %p\n", pszData, szBuffer); printf("Length: %d\n", pszData - szBuffer);}이 코드를 그대로 입력해서 실행시키면 아무것도 출력되지 않는데 왜 그런건가요? printf("%p, %p\n", pszData, szBuffer) 이 부분을 printf("%p, %p\n", pszData, *szBuffer) 이런식으로 바꿔야하는건가요?
-
해결됨MFC Windows 프로그래밍 - 기본
책 질문입니다.
윈도우 프로그래밍 기초편/응용편 Windows Programming (2006) 두 권의 책을 빌려서 보고 있었습니다. "열혈강의 Visual CPP 2008 MFC 윈도우 프로그래밍" 책이 위 두권을 포함한 다음 버전인지아니면 별개의 다른 종류의 책인지가 궁금합니다.
-
해결됨독하게 시작하는 C 프로그래밍
void사용여부
안녕하세요. 현재 첫 예제 해설을 수강중에 있습니다. 강의내에서 void는 매개변수가 없다는 의미라고 하셨는데, 해당 예제문에서 void를 빼고 코드를 실행한다면 어떻게 되나요? 출력결과는 같게 나오고 있습니다.
-
해결됨독하게 시작하는 C 프로그래밍
malloc 함수의 형변환(?) 질문드립니다!
(int*)malloc( sizeof(int) * 4 )(char*)malloc( sizeof(char) * 4 )와 같이 malloc 함수 선두에 등장하는 (자료형*)은 무엇을 의미하고 어떻게 작동하는 것인지 알고 싶습니다! 항상 좋은 강의 감사드립니다!
-
해결됨이해하면 인생이 바뀌는 네트워크 프로그래밍
VMware Player
vmware가 pro가 비상용으로 풀리면서 player가 지금 다운로드가 안되는거 같습니다. pro 버전도 다운로드에서 이상하게 막혀버리고요 혹시 지금 상황이 계속 되면 어떻게 해야될까요 ㅠㅠ강의를 멈추고 다운로드를 계속 시도하고 질문 드리는 건데 버츄얼 박스로 해도 별 문제 없을까요?
-
해결됨Windows 시스템 프로그래밍 - 기본
메모리 맵 강의 예제의 결과가 이상합니다.
과제로 내주신 memcpy 문제는 압축도 풀리고 파일도 제대로 열립니다.그런데 예제의 strcpy_s()의 경우는 MYFILE.TXT를 열어보면 문자가 다깨지고 길이도 이상합니다.디버그 모드로 메모리를 보면 값이 제대로 들어가는게 보입니다만...해결방법을 찾지 못하겠습니다. 해결법이 있을까요?
-
해결됨독하게 C를 배운 사람을 위한 선형 자료구조
스택의 POP코드 질문드립니다.
안녕하세요 오랜만에 질문드립니다.현재 가정을 헤드노드->Test03->Test02->Test01->테일노드 이렇게 있다고 가정을 했을 때pPop->pNext->pPrev = g_TailNode.pPrev; 이 코드에서 질문있습니다.제가 이해한것을 풀어쓰느라 조금 길거 같습니다.흐름상 pop 구조체 포인터가 Test03노드를 가리키고 있고 헤드의 다음노드를 Test02로 바꾸는것까지 이해했습니다. 그다음 pop 다음 노드의 이전 노드 즉 Test02의 이전 노드가 테일 노드의 이전 노드를 가리킨다고 하는데 현재 흐름 상 보면 Test03의 다음노드의 이전노드가 Test01노드라고 하는걸로 해석이 됩니다. 제가 어느 부분에서 이해를 못한 건지 모르겠습니다.그리고 다음 코드를 이렇게 고쳐도 출력에는 이상이 없는 것으로 확인됩니다.
-
해결됨독하게 시작하는 C 프로그래밍
연령별 버스 요금 계산 문제에서 범위에 따른 결과 차이
저는 65세를 기준으로 제어문을 만들어 보았습니다。 다만 어린이 요금 부분에 (4<= age <= 13과(age <=13)사이에 결과값에 차이가 생기는데 왜 차이가 생기는지 궁금해요
-
해결됨독하게 C를 배운 사람을 위한 선형 자료구조
adtFileIO 예제코드관련 질문 있습니다.
코드를 분석하다 드는 의문점이 있어 질문드립니다.실제 자료노드와 이를 추상화 한 MYNODE로 데이터베이스가 구축되어 있는데 여기에 MYNODE를 기준으로 파일 입출력을 연동시킨 것이 이번 예제의 핵심이라고 보입니다. 이렇게 한 이유가 파일의 일부를 메모리로 옮겨올 수 있기 때문(캐싱)이라고 하셨는데 이 캐싱의 정확한 개념이 궁금합니다. 해당 예제의 offset변수를 보면 파일의 처음부터 끝까지 모든 자료에 대하여 카운트정보를 담고 있는 것으로 보입니다. 즉 파일의 일부가 아닌 전부가 MYNODE기준 메모리상 데이터에 연동되고 이 후 선택노드의 추가 데이터만 메모리상데이터에 추가되는 것으로 보이는데 캐싱이라는 개념이 파일데이터들의 일부만 메모리에 옮기는 것이 아니라 일단 모든 목록(인덱스)를 올린 후 선택 노드의 데이터만 추가하는 개념인 것인지. 아니면 원래는 파일데이터의 목록까지도 일부만 올리는 개념인데 예제에서는 간략화하여 설명된 것인지 궁금합니다.SaveNewDataToFile()함수를 살펴보면 pTmp->bNew 불리언 변수가 true일 때 파일쓰기가 일어나는데 이는 기존 데이터가 존재하는 노드인 경우 데이터를 수정시 파일쓰기가 되지 않는 오류가 있지 않나 생각됩니다. 즉 commit이 노드데이터 수정 후 일어나지 않으면 프로그램 종료시 호출되는 SaveNewDataToFile()함수로는 수정데이터의 파일출력이 일어나지 않는 것 아닌가 하는 의문이 듭니다. 두 째 질문은 강의 중에 언급해 주신 부분을 확인했습니다. 감사합니다. 감사합니다.
-
해결됨독하게 C를 배운 사람을 위한 선형 자료구조
ADT강의 관련 질문 있습니다.
항상감사합니다.ADT강의 보고 코드 확인하는 중 질문이 생겨 글 올립니다. 1.동적바인딩과 다형성 등 사용성 증가를 위해 구체 자료를 가리키는 추상화 자료노드를 구성하여 함수로 그 추상화자료노드에 일차적으로 접근하는 개념이 ADT라고 파악되는 데 여기에 함수 포인터를 구조체 맴버로 포함시킨 이유가 궁금합니다. 그냥 구조체 외부에 선언된 getkey 함수를 사용해서 sorting을 해도 기능상 차이는 없을 것 같은데 포함시키신 이유는 객체지향개념을 적용하기 위함인지 아니면 구조체 안의 함수포인터 변수로 실현된 getkey 함수가 외부에 선언된 getkey함수를 사용할 때와 비교해서 실제 기능상 차이가 있는지 궁금합니다. 2.함수포인터는 함수를 가리키는 포인터 변수로 함수의 이름과 같으면 안되는 것으로 알고 있는데 이 예제의 경우 컴파일 되는 것은 구조체 안의 포인터 변수라서 그런 것인지. 궁금합니다. 3.강의에서 언급해 주신 구조체 안의 함수포인터 개념을 너무 흥미있게 들었습니다. 그렇다면 그 개념의 연장선이 객체지향 클래스 개념이라고 보는데 결국 c언어는 절차지향. c++은 객체지향으로 단편적으로 구분되는 것이 아니라 c언어 프로그래밍시 하나의 기능단위 캡슐화를 시도하는 프로그래밍 기법이 객체지향이 아닌지. 그리고 그것을 구현하기 쉽게 만든 것이 c++같은 객체지향 프로그래밍 언어가 아닌가 하는 궁금증이 생겼습니다. 이런 관점에서 보자면 함수포인터는 결국 c언어 안에서 이미 함수형프로그래밍의 개념으로 접근할 수 있는 수단이 아닌지 하는 생각도 듭니다. 이러한 접근이 맞는 것인지 여쭤봅니다. 4.getkey함수가 name 이나 phone을 반환하는데 호출함수이름이 SortListByKey()가 적절하지 않나 궁금합니다. 5.기타 질문으로 lineardatastructure.c 파일 안의 한글이 깨져 보이는 문제가 있는데 비쥬얼 스튜디오 및 윈도우에서 utf-8으로 환경설정을 전부 변경해도 여전히 깨져 보입니다. 다른 해결방법이 있는지 궁금합니다. 감사합니다.
-
해결됨MFC Windows 프로그래밍 - 기본
mfc 내부에서 콜백 함수 구현 방법
안녕하세요 현재 상황mfc를 이용해서 모든 창(window)의 이름을 전부 나열 해서 리스트 박스에 텍스트로 넣는 것을 구현 하려고 하는 중입니다.도중에 함수중EnumWindows(콜백함수, NULL)요 함수를 사용하려 했지만 콜백함수(인자)로 인해 사용이 안됩니다.win32를 통해 사용하여 위에 것은 다 구현했지만 mfc에서는 구현을 못한 상태 입니다. 이유는 위에와 같습니다....ㅠㅠ 구글 검색부터 이것저것 다해봤는데 도저히 방법이 안나와서 질문 합니다ㅜㅜ 궁금한점Enumwindows를 대체하는 함수가 존재합니까?mfc에서 콜백함수를 구현 하는 방법이 있습니까?Enumwindows를 구현할 방법이 있습니까?(콜백함수 빼고)