묻고 답해요
169만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨독하게 C를 배운 사람을 위한 선형 자료구조
AddNewNode 함수 구현시 질문입니다.
void AddNewNode(int age, char pszName, char pszPhone){USERDATA* pNewNode = (USERDATA*)malloc(sizeof(USERDATA));pNewNode->age = age;strcpy_s(pNewNode->name, sizeof(pNewNode->name), pszName);strcpy_s(pNewNode->phone, sizeof(pNewNode->phone), pszPhone);pNewNode->pNext = NULL;강사님 위 코드 볼드체부분에서 pNewNode 포인터값이 널값임에 따라 역참조 경고가 발생합니다.그러나 제 생각에는 malloc함수로 할당받은 힙메모리 주소가 담겨져 있을 것인데 왜 이런 오류가 발생하는지 궁금합니다.
-
해결됨독하게 시작하는 C 프로그래밍
realloc 질문
예제 파일을 보고 있던중에 들은 생각인데요, free(pszBuffer) 를 하지 않는 이유는 무엇인가요
-
해결됨독하게 시작하는 C 프로그래밍
동적 메모리 할당 관련 질문 있습니다.
개발자 님께서 제공해주신 예제 파일에 제 맘대로 주석을 달아봤습니다.18 행에 오류 확인을 위해 의도적으로 해제하지 않음 이라는 주석이 처음부터 달려있었는데메모리 해제를 하지 않아도 런타임 오류는 발생하지 않더라구요. 18 행 주석의 의도가 무엇인지 궁금합니다!
-
해결됨독하게 시작하는 C 프로그래밍
문자열 은 [가변]
문자열이 가변 이라고 말씀하셨는데어떻게 받아들여야할지 잘 모르겠습니다.무엇이 어떻게 변하는걸까요
-
해결됨Windows 시스템 프로그래밍 - 기본
64 bit 운영체제라면 가상메모리가
2 ^ 64 = 16 엑사바이트 (EB)로 나오는데32비트 운영체제와 비교했을 때 크기가 너무 차이가 나서 어색합니다..찾아보니 전부다 사용하는 게 아니라 일정 부분만 사용한다고 하는데 64 비트 운영체제의 가상메모리 크기와, 유저모드, 커널모드 크기가 어떻게 되는지 알 수 있을까요
-
해결됨Windows 시스템 프로그래밍 - 기본
alertable Wait 상태 질문있습니다
Overlapped IO에서 SleepEX 같은 함수로 Alertable Wait상태로 진입할 수 있잖아요? IOCP 같은 경우 GetQueuedCompletionStatus 상태로 콜백함수를 호출할 수 있는 환경을 만들어주면 그 상태도 Alertable Wait 상태라고 할 수 있을까요?
-
해결됨독하게 시작하는 C 프로그래밍
visualStudio 디버깅 메모리 조사
nData 의 공간에 10 이라는 값이 리틀 엔디언 방식으로 담기고pnData 의 공간에 nData의 64비트 주소가 리틀 엔디언 방식으로 담겨야한다고 이해했습니다.혼자서 실습을 해보는데 pnData 에 10이 담겨있고 nData에 마우스 커서를 가져다 대봤으나 주소가 뜨지 않습니다. 무엇이 문제일까요
-
해결됨독하게 시작하는 C 프로그래밍
파일 입출력애서 fopen_s() 함수 및 매개변수로 &fp에 대한 질문입니다.
안녕하세요, 강의 항상 잘 듣고 있습니다.FILE* fp = NULL;fopen_s(&fp, "Test.txt", "w');if ( fp == NULL ){puts("ERROR: Failed to open file")}Q1. 파일 생성, 개방, 폐쇄 강의에서 위 코드를 설명해주실 때fp가 fopen_s가 할당하는 '무언가'의 주소를 담고 있다고 말씀하셨는데, 무언가는 파일 입출력은 위한 힙 메모리영역이 할당되는것인지 아니라면 무엇이 할당되는 것인지 궁금합니다.Q2. fp의 주소는 NULL 값으로 초기화 되었는데, fopen_s()함수에 의해 fp가 "Test.txt" 파일이 위치한 곳의 주소를 담게되는 것인지 궁금합니다.Q3. fopen_s(&fp, "Test.txt", "r') ; 로 코드를 바꾸어 실행시 해당 파일이 없는 경우엔 fp값이 여전히 NULL 이고 따라서 if문의 에러메시지가 출력되는게 맞을까요?질문이 많아서 죄송합니다;;
-
해결됨MFC Windows 프로그래밍 - 기본
메시지 루프에서 메시지 처리 성능 비교: WinAPI vs MFC
안녕하세요. WinAPI에서는 메시지가 많이 쌓이면 switch case문으로 처리하기 때문에 병목 현상이 생긴다고 말씀을 하셨는데요. 그러면 MFC에서는 메시지 맵으로 처리한다면 병목 현상이 확 줄어드나요? 성능 차이가 그렇게 심하게 나는지 궁금합니다.
-
해결됨독하게 시작하는 C 프로그래밍
가변길이 입력의 의한 스택프레임 손상관련 문의 입니다.
강의 내용에 보면, char szBuffer[8] 통해 8바이트 자동 할당되었는데, \0이 마지막에 붙어 1바이트 초과하여 ndata 스택 메모리를 침범한다는 말씀을 하셨습니다.그렇다면, 문자열을 N 만큼 입력받고 싶다면 항상 N+1의 메모리 공간을 할당해야할까요? 스택, 힙 두 경우에 모두 해당되는지 궁금합니다.
-
해결됨독하게 시작하는 C 프로그래밍
vs코드 인터프리터
vs코드를 깔고 인터프리터를 따로 깔아야하는걸로 알고있는데 그냥 아무 인터프리터나 깔아도 상관이 없나요 ??
-
해결됨Windows 시스템 프로그래밍 - 기본
GetCurrentDirectory 관련 질문
강의에서 GetCurrentDirectory를 사용하여 얻은 경로가실행파일의 경로가 아닐 수 있다라고 하셨는데,정확하게 무슨 의미인가요?vs 내에서 디버그로 실행하면 Debug 디렉토리 내의 실행파일의 경로가 나오니까 실행파일의 경로가 아닌가요?
-
해결됨독하게 시작하는 C 프로그래밍
3항 연산자 필수 실습 문제 합 불 판단
#include <stdio.h>int main(void){int nInput = 0;int answer = 0; scanf_s("%d", &nInput);answer = (nInput >= 80) ? printf("pass") : printf("fail"); printf("%c\n", answer); return 0;} 이 코드가 왜 실행되는지 모르겠어요 문자열 %s가 아니라 왜 %c로 했는데 되는지 궁금해요 %s로 해도 실행은 되는데 이렇게 초록색 줄로 그이고 실행 했을 때 처리 속도도 느린데 왜 그런건가요? answer에 printf 함수가 들어가면 어떻게 되는 건가요? 나중에 이런것도 설명 해주시나요?
-
미해결이해하면 인생이 바뀌는 네트워크 프로그래밍
Windows 11 가상머신 다운로드 이슈
Due to ongoing technical issues, as of October 23, 2024, downloads are temporarily unavailable.Windows 11 가상머신 다운로드가 안된다고 나옵니다.
-
해결됨독하게 시작하는 C 프로그래밍
클래스뷰
독하게 C 강의 수강중입니다.클래스뷰에 프로젝트들이 보이지 않습니다. VS 에서 처음에 로컬 폴더 열기 로 예제파일폴더 를 열었는데요 클래스탐색기에는 폴더들이 쌓여있지만 클래스뷰에 프로젝트들이 보이지 않네요 어떻게 하면 좋을까요
-
해결됨독하게 시작하는 C 프로그래밍
Intel CPU 와 AMD CPU 에 대해 궁금한 점
Visul Studio 로 x86 이든 x64든 한번 컴파일을 해서 Intel CPU 와 AMD CPU 에서 동일하게 실행이 가능하다면 Intel 과 AMD 의 명령어세트가 동일하고 제공하는 레지스터들이 동일한 것인지 갑자기 궁금증이 들어 질문 남깁니다! 좋은 강의 감사드립니다!
-
해결됨독하게 시작하는 C 프로그래밍
버블정렬에 대한 개념질문
안녕하세요, 저는 이 강의에서 버블정렬이라는 단어를 듣기전까지 버블정렬이 뭔지도 몰랐습니다.그래서 인터넷에서 버블정렬을 검색 후 (답안지는 보지 않았습니다.) 이미지 한장을 보고 어떤 방식으로 진행하는지만 보고 제 스스로 구현을 해봤습니다.총 두가지 방법으로 구현을 해봤는데요첫번째 방법은 선생님의 설명을 듣기 전 문제만 보고 스스로 해봤고두번째 방법은 선생님의 버블정렬 개념 설명을 듣고 설명의 방식대로 구현을 해봤습니다.첫번째 방법두번째 방법두가지 방법 모두 버블정렬 개념에 맞게 작성 된 로직인지 체크 해주시면 감사하겠습니다!
-
해결됨독하게 시작하는 C 프로그래밍
같은 식별자 메모리 저장 위치
중첩스코프와 식별자 검색 순서 강의의 예제에 중단점 설정하고 nInput들의 메모리 저장위치들을 살펴봤는데, 15를 입력값으로 받았을때 두번째 nInput의 저장위치가 첫번째 nInput 저장위치랑 32바이트씩 일정하게 차이가 나던데 어떤 이유에서인가요 ? (두번째 변수엔 19 저장되게 했습니다)
-
해결됨독하게 시작하는 C 프로그래밍
강의의 대한 추가 개념이해
안녕하세요, 제가 이해한바가 맞는지 확인하고 싶습니다.기본적으로 H/W장치가 있고 그 장치를 컴퓨터에 연결을 하면S/W Kernel단에 해당 장치의 대한 디바이스 드라이버가 있고S/W Kernel단 OS에 해당 디바이스 드라이버를 처리하기 위한? 대응이 되는 요소가 있고 OS는 해당 장치를 추상화한 File이라는 걸 User단에 만들어준다. 해당 File에는 Buffer라는 개념이 존재한다.User단에서 해당 장치를 사용하기 위해선 OS가 만든 장치를 추상화한 File을 사용하는 프로그램을 만들어서 사용해야 한다. 이걸로 프로세서와 장치는 RWX를 할 수 있는 조건이 갖춰진다.그리고 같은 H/W단에 있는 CPU와 장치는 Interrupt라는 걸로 통신(제어)하게 된다.컴퓨터 외에 H/W장치는 크게 두가지로 볼 수 있다. 입력 장치와 출력 장치가 있다. 입력 장치는 마우스, 키보드, 캠, 마이크 등이 있고 / 출력 장치는 모니터, 스피커 등이 있다.입력 장치들은 데이터들을 추상화한 File Buffer로 전송하고 이 데이터들을 (Read)사용하기 위해선 해당 File의 대한 프로그램을 개발해야한다.출력 장치들은 출력 장치를 추상화한 File을 사용하는 프로그램을 개발한 다음 Read프로그램의 데이터들을 가져와서 가공을 한 다음 write(쓰기)를 하면 File Buffer에 데이터들이 차곡차곡 쌓은다음 출력 장치로 가게 되어서 해당 데이터들을 출력 장치를 통해 볼 수 있게 되는 것이다.이것이 강의에서 나온 키보드로 Hello World 같은 프로그램 만들고 -> 모니터 콘솔화면으로 결과물을 볼 수 있는 구조다.라고 이해했는데 이해한바가 맞을까요?또 Buffer라는 것도 입력 or 출력장치로 R/W을 했을 때 데이터들을 차곡차곡 모아서 한번에 전송하기 위함인가요?예를 들어 숙소A, 버스B, 건설현장C가 있을 때 버스B가 숙소A로부터 노동자들을 건설현장C로 수송해야할 때 노동자들을 한명씩 태워서 수송하면 오래걸리지만 버스B의 상한선까지 노동자들을 가득 태워 한번에 수송하면 노동자들을 금방 보낼 수 있는 것 처럼 Buffer라는 것도 OS가 H/W입출력 장치로 부터 데이터들을 효율적으로 처리하기 위한 기법 중 하나다.즉 OS에서 데이터들을 효과적으로 처리하기 위한 데이터 처리기법으로 Buffer라는걸 만들었다. 고 이해했는데 이해한 개념이 맞을까요?
-
해결됨독하게 시작하는 C 프로그래밍
컴퓨터가 나눗셈 하는 방법에서의 오타인가요 ?
5:12초부터 나오는 컴퓨터가 나눗셈을 하는 방법에서 맨 오른쪽에 0이 채워진다 (padding)이 오른쪽이 아니라 왼쪽 아닌가요 ??