inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

173만명의 커뮤니티!! 함께 토론해봐요.

이벤트 메시지 루프의 '응답 없음'에 대하여

해결됨

MFC Windows 프로그래밍 - 기본

안녕하세요 선생님. 강의를 듣다가 질문이 생겨서 이렇게 글을 작성하게 되었습니다. GUI 응용 프로그램에서 사용자 입력에 대한 처리가 먹통이 되는 경우를 '응답 없음' 상태라고 한다고 하셨습니다. 실제로 프로그램들을 사용하며 간혹 겪어보기도 하였고요... ㅎㅎ 그런데 윈도우즈는 어떻게 해서 이 '응답 없음' 상태를 감지하여 먹통이 된 프로그램 창 위에 응답 없음 다이얼로그를 띄워주는 것인지 궁금해졌습니다. 주기적으로 실행중인 응용 프로그램들을 감시하는 일을 하는 백그라운드에서 운영체제 서비스라도 있는 것인가요?

  • c++
  • mfc
  • gdi
  • sdi
  • vc++
  • win32api
지렁이 댓글 2 좋아요 0 조회수 161

가독성이 떨어지는 코드 or 바보같은코드 고민

해결됨

독하게 시작하는 C 프로그래밍

1 2 3 4 5 10 9 8 7 6 11 12 13 14 15 20 19 18 17 16 21 22 23 24 25 구현 문제에서 #include <stdio.h> int main() { int array[5][5] = { 0 }; int cnt = 0; for (int i = 0; i < 5; ++i) { if (i != 0 && i % 2 != 0) cnt = cnt + 6; else if (i!= 0 && i % 2 != 1) cnt = cnt + 4; for (int j = 0; j < 5; ++j) { if (i % 2 == 0) { array[i][j] = ++cnt; printf("%d ", array[i][j]); } else { array[i][j] = --cnt; printf("%d ", array[i][j]); } } putchar('\n'); } return 0; } 이렇게 코드를 짜봤는데 가독성도 떨어지고 제 생각에 좋은 코드가 아니라는 생각이 듭니다 하지만 이런 방법아니면 생각이 잘 안날때 어떤식으로 사고해야될까요? 효율적인 코드가 나올때까지 고민을 멈추면안된다거나 일단 구현은 되었으니 넘어가고 좋은 해결법을 본다거나

  • c
  • 컴퓨터-구조
  • assembly-language
  • vc++
uwkdwkdwkd 댓글 1 좋아요 0 조회수 171

그려진 도형 선택(Z-order 변경)부분[9분59초경]

해결됨

MFC Windows 프로그래밍 - 기본

안녕하세요 강의 들으며 질문이 있어 글 남깁니다. #include 말고 전방 선언인 class CMyshape를 하라고 하셨는데 내부에 참조나 포인터가 있는데 헤더를 끌고 인클로드하는것은 조금 적절치 않은 거 같다고 하셨거든요 이 부분에 대해서 추가 설명해 주실 수 있으실까요?

  • c++
  • mfc
  • gdi
  • sdi
  • vc++
  • win32api
석까 댓글 2 좋아요 0 조회수 120

메모장 쓰레기값 ?

해결됨

Windows 시스템 프로그래밍 - 기본

예제로 파일이름 바꿔가며 만들어보고 있는데, 메모장의 인코딩형식도 UTF-8로 바꿨는데 왜 이렇게 문자열뒤에 쓰레기값들이 찍히는건가요 ? 해결방법이 뭔지 알 수 있을까요 ? ㅠㅠ

  • c
  • system-programming
  • vc++
taehyun0222 댓글 2 좋아요 0 조회수 172

산술연산자 강의 3분39초경 단축키가 무엇인가요?

해결됨

독하게 시작하는 C 프로그래밍

addSample.c 소스파일과 tmpResult.c 소스파일을 비교해주실때 창을 넘어가시는데요. 단축키 써서 이동하시는거 같은데 어떻게 하신걸까요? 뭔가 멋져보입니다.

  • c
  • 컴퓨터-구조
  • assembly-language
  • vc++
slrrpy1234 댓글 3 좋아요 0 조회수 211

[질문]: [섹션4] -> [2중 연결 리스트로 전환] -> [21:30]

해결됨

독하게 C를 배운 사람을 위한 선형 자료구조

강의 잘 보고있습니다! 선생님. 다름이 아니라 ReleaseList()함수에서 어차피 이제 pTmp는 NULL인 상황을 고려할 필요가 없을텐데(테일 노드 역시 동적 할당이 아니므로), 조건식에 NULL을 고려하는 코드가 있어서 의문입니다. 제가 또 다른 경우의 수를 자각하고 있지 못하는 걸까요? 아니면 그냥 혹시나 NULL일 상황을 대비해서 남겨두신 코드인가요? 이런식으로 조건식을 바꾸더라도 프로그램은 정상 구동됩니다.

  • c
  • 코딩-테스트
  • 알고리즘
  • vc++
우아한 물소 댓글 2 좋아요 0 조회수 160

메모리 창을 어떡해 뛰우나요?

해결됨

MFC Windows 프로그래밍 - 기본

안녕하세요. 이제 막 강의를 듣고 있는데요. 디버거 창에서 메모리 보기 화면을 어떡해 하면 볼 수 있나요. 단축키를 좀 가르쳐 주세요.

  • c++
  • mfc
  • gdi
  • sdi
  • vc++
  • win32api
한걸음 댓글 3 좋아요 0 조회수 208

scaf_s 함수 사용시 경고 표시

해결됨

독하게 시작하는 C 프로그래밍

강사님 컴퓨터에서는 scanf_s("%4c", szBuffer, _countof(szBuffer)); 여기에 밑줄이 안생깁니다. 하지만 제 컴퓨터 비쥬얼스튜디오 에서는 밑줄이 생기면서 경고가 뜨네요 (shift F5 눌러서 실행 하면 실행은 잘 됩니다.) 경고는 C6328입니다. 크기 불일치: 'unsigned __int64'이(가) Param (3)으로 전달되었습니다. 다음 호출에는 'unsigned int'이(가) 필요합니다. 'scanf_s'. 그래서 경고를 구글링 해보니까 countof 명령어? 의 데이터 크기가 안맞는거 같은데 강사님의 설명 듣고싶습니다.

  • c
  • 컴퓨터-구조
  • assembly-language
  • vc++
slrrpy1234 댓글 1 좋아요 0 조회수 305

인덱스정렬 강의, 04_ListAndIndex질문드립니다.

해결됨

독하게 C를 배운 사람을 위한 선형 자료구조

안녕하세요 강사님 인덱스정렬 강의 예제에서 RecalcListCount()라는 함수에 대해 질문드립니다. unsigned int RecalcListCount(void) { unsigned int cnt = 0; USERDATA* pTmp = g_HeadNode.pNext; while (pTmp != &g_TailNode) { ++cnt; pTmp = pTmp->pNext; } return g_listCount; } 이 코드에서 cnt로 추가된 자료의 수는 세었지만 이것이 전역 스태틱 변수 g_listCount에 저장되지 않는 거 같는데 이렇게 되어 있는 것이 맞는 것인지 질문드립니다.

  • c
  • 코딩-테스트
  • 알고리즘
  • vc++
skyofvenus01 댓글 1 좋아요 0 조회수 146

예제는 어디서 다운로드 받을 수 있나요?

해결됨

독하게 C를 배운 사람을 위한 선형 자료구조

안녕하세요 강사님, 현제 자료구조 강의를 수강하고 있습니다. 동영상에서 예제에 대해서 설명하시는데, 혹시 예제 코드는 어디서 다운받을 수 있을까요?

  • c
  • 코딩-테스트
  • 알고리즘
  • vc++
Sooho Park 댓글 2 좋아요 0 조회수 200

fgets() 함수 사용관련

해결됨

독하게 시작하는 C 프로그래밍

리눅스에서는 fgets() 함수를 쓴다고 하는데, 제 컴퓨터랑 강사님 컴퓨터는 Windows 환경인데 어떻게 fget()함수가 동작하나요?

  • c
  • 컴퓨터-구조
  • assembly-language
  • vc++
slrrpy1234 댓글 2 좋아요 0 조회수 263

문자열 입출력 코드설명에서

해결됨

독하게 시작하는 C 프로그래밍

char szName[32] = {0} ; 이렇게 변수를 만들면 1바이트의 메모리가 32개가 할당된다고 이해가 되는데 이게 맞나요?

  • c
  • 컴퓨터-구조
  • assembly-language
  • vc++
slrrpy1234 댓글 2 좋아요 0 조회수 139

Stack Frame과 메모리 질문

해결됨

독하게 시작하는 C 프로그래밍

안녕하세요? 강의에서는 메모리 상에서 szBuffer와 nData가 바로 인접해서 서로에게 영향을 주는 상황이 나온 것으로 이해했습니다. 그런데 제가 변수가 메모리에 어떻게 저장되는지 궁금하여 이전에 간단히 #include <stdio.h> int main(void) { int x = 16; int y = 8; int z = 4; return 0; } 로 두고 메모리를 따라가 봤더니 다음과 같은 결과가 나왔습니다. 0x000000886A2FFB04 10 00 00 00 .... 0x000000886A2FFB08 b4 05 63 2e ?.c. 0x000000886A2FFB0C fc 7f 00 00 ?... 0x000000886A2FFB10 c8 d2 29 d8 ??)? 0x000000886A2FFB14 bc d9 00 00 ??.. 0x000000886A2FFB18 02 00 00 00 .... 0x000000886A2FFB1C 00 00 00 00 .... 0x000000886A2FFB20 00 00 00 00 .... 0x000000886A2FFB24 08 00 00 00 .... 0x000000886A2FFB28 16 20 60 2e . `. 0x000000886A2FFB2C fc 7f 00 00 ?... 0x000000886A2FFB30 00 00 00 00 .... 0x000000886A2FFB34 88 00 00 00 ?... 0x000000886A2FFB38 00 00 00 00 .... 0x000000886A2FFB3C 00 00 00 00 .... 0x000000886A2FFB40 00 82 68 b3 .?h? 0x000000886A2FFB44 04 00 00 00 ....( (볼드체 + 기울임이 각각 x, y, z입니다) 여기서 질문이 두 가지 있습니다. 보안 설정에서 아무것도 바꾸지 않았는데 변수들이 모두 메모리 주소를 32씩 띄워서 저장되고 있습니다. int는 4byte이니 원칙적으로는 메모리 주소를 4씩만 띄워서 저장해도 될 것 같은데 (강의상에서도 szBuffer와 nData가 붙어서 저장된 것처럼) 왜 이런 것일까요? 변수 x, y, z는 자동변수이므로 현재 저장된 메모리 공간은stack frame으로 이해했습니다. 강의에서 stack frame의 위쪽 공간일수록 메모리의 0번지에 가까워진다고 하셨는데 왜 x - > y -> z로 갈수록 메모리 주소가 증가하는 걸까요? 가장 먼저 정의된 변수 x가 stack의 가장 밑에 저장되고 그 위에 y, z가 정의되었다고 한다면 z로 갈수록 메모리 주소가 0번지에 가까워져야 하지 않을까... 생각을 하였습니다. 감사합니다.

  • c
  • 컴퓨터-구조
  • assembly-language
  • vc++
cafe0406 댓글 2 좋아요 0 조회수 128

공용체에 int, char 형 선언 후 값 읽기

해결됨

독하게 시작하는 C 프로그래밍

문득 궁금한건데 아스키코드가 ’A’ 는 65잖아요 예를들어 union Data { int intValue; char charValue; }; 이고 main함수에 charValue 값만 ‘A’ 로 대입 해주고 printf를 통해 intValue 값을 출력하면 65가 나오더라구요 이게 왜 이러는건가요? 메모리내에 값이 [41] [xx] [xx] [xx] 같이 0x41 값을 제외하고는 모두 쓰레기값일텐데 왜 65를 잘 출력하는거죠? 좀 헷갈립니다.

  • c
  • 컴퓨터-구조
  • assembly-language
  • vc++
톨스토이 댓글 2 좋아요 0 조회수 161

메모리 동적 할당 및 관리 질문

해결됨

독하게 시작하는 C 프로그래밍

강의를 보다가 동적할당한 영역 이상으로 값을 넣고 동작시 Free 부분에서 디버그 에러가 발생하는것을 보여주셨는데, Free가 정상적으로 동작하지 않고 끝나는것처럼 보입니다. 그렇다면 메모리에 할당후 값을 넣은 부분은 계속 메모리에 남아있게 되는건가요? 다른 프로그램에서 메모리를 덮어쓰거나 해당영역을 초기화 하지 않는이상 남아있을 것으로 판단되네요

  • c
  • 컴퓨터-구조
  • assembly-language
  • vc++
giup gun 댓글 2 좋아요 0 조회수 160

예제를 풀었는데 이런 방법도 가능한지 피드백 부탁드립니다.

해결됨

독하게 시작하는 C 프로그래밍

#include <stdio.h> int main() { int nArray[5][5] = { 0 }; int cnt = 0; int tnt = cnt + 5; for (int i = 0; i < 5 ; ++i) { if (i%2 == 0) // 짝수 홀수구분 for (int j = 0; j < 5; ++j) { nArray[i][j] = ++cnt; } else for (int k = 4; k >= 0; --k) { nArray[i][k] = ++cnt; } } for (int i = 0; i < 5;++i) { for (int j = 0; j < 5; ++j) { printf("%d ", nArray[i][j]); } putchar('\n'); } printf("%d", cnt); return 0; } i값을 짝/홀 수로 분류하는 것 까지는 동일한데 열 부분을 보수 생각을 못하고 for문을 하나 더 돌려서 4에서부터 1씩 감소하는 방향으로 풀었는데 논리적으로 오류가 없을까요?

  • c
  • 컴퓨터-구조
  • assembly-language
  • vc++
uwkdwkdwkd 댓글 2 좋아요 0 조회수 128

int[5][5] 배열 실습 과제 관련 질문

해결됨

독하게 시작하는 C 프로그래밍

안녕하세요. 강사님 강의 잘 듣고 있습니다. 좋은 강의에 먼저 감사 드립니다. 본 강의에서 int[5][5] 배열에 1 ~ 25 값을 입력하는 프로그램을 작성하는 중에 강사님께서는 for 문을 두 번 사용하여 작성하였고, 저는 for문을 1회 사용해서 과제를 수행했습니다. 전체 loop 횟수는 25회로 동일한 것으로 보이나 혹시 두 코드 간 속도 차이가 존재하는지 궁금합니다. 요즘 컴퓨팅 성능이 워낙 좋아 큰 문제는 되지 않겠지만 궁금증이 생겨서 질문 남깁니다. 아래는 제가 작성한 코드 입니다. #include <stdio.h> #include <stdlib.h> int main(void) { int aList[5][5] = { 0 }; for (int i = 0; i < countof(aList) * countof(aList[0]); i++) { if (i != 0 && i % 5 == 0) { printf("\n"); } printf("%2d ", aList[i / 5][i % 5]); aList[i / 5][i % 5] = i + 1; } printf("\n"); for (int i = 0; i < countof(aList) * countof(aList[0]); i++) { if (i % 5 == 0) { printf("\n"); } printf("%2d ", aList[i / 5][i % 5]); } return 0; } 감사합니다. 좋은 하루 보내세요 :)

  • c
  • 컴퓨터-구조
  • assembly-language
  • vc++
gloryovo 댓글 1 좋아요 0 조회수 122

프로그래밍에서 과정과 결과 중에 어떤게 더 중요한가요

해결됨

독하게 시작하는 C 프로그래밍

문제를 풀고 정답을 맞춰서 기분이 좋던 와중, 선생님의 답안과 비교해 보다가 문득 조금 다른 풀이과정이 있어서 질문드립니다. 먼저 제 코드는 아래와 같습니다. int main(void) { int n[5] = { 2,5,3,1,4 }; int nmin = 0; for (int i = 0; i < 5; ++i) { for (int j = i ; j < 5;++j) if (n[i] > n[j]) { nmin = n[j]; n[j] = n[i]; n[i] = nmin; printf("%d %d %d %d %d\n", n[0], n[1], n[2], n[3], n[4]); } } for (int u = 0; u < 5; ++u) printf("%d", n[u]); } 빨간색으로 표시 해 둔 부분이 강사님과 조금 다른 부분이 있습니다. 모범답안(?) 에는 변수 j = i +1 으로 설정해라 가 정답이었고 저는 j = i 로 설정했었습니다. 만약 이러한 경우에 과정이 조금 다르다고 해서 틀린 부분을 끝가지 더 이해하고 복기하는 방법론이 나을까요 아니면 결과에 조금 더 집중하고 전체적인 진도를 우선시 하여 가져가는 게 나을까요? 추가로 저의 상황은 저는 방통대 컴과 학과에 편입 준비중에 있고 프로그래밍의 이해를 위해 C언어를 먼저 수강중인 학생입니다. 추후 java와 같은 객체지향 언어를 공부 할 계획에 있습니다.

  • c
  • 컴퓨터-구조
  • assembly-language
  • vc++
uwkdwkdwkd 댓글 2 좋아요 0 조회수 159

for문 문제 하나로 5시간 썼습니다

해결됨

독하게 시작하는 C 프로그래밍

공백 * 출력 놀이 응용인데요 오늘 오전10시반부터 지금 오후 4시30분인데 밥먹는 시간 빼고 최소 5시간 이상 썼는데도 답이 안나오네요. 그냥 답을 보고 외우는게 좋을까요? 성격상 수학문제 풀때도 답지 절대 안보고 끝까지 싸매는 스타일인데 너무 비효율적일까요..

  • c
  • 컴퓨터-구조
  • assembly-language
  • vc++
uwkdwkdwkd 댓글 2 좋아요 0 조회수 154

클래스 뷰 설정하는 법

해결됨

독하게 시작하는 C 프로그래밍

초입부에서 클래스 뷰를 이용하여서 실행 설정해서 보라고 하셨는데 제가 직접 프로젝트 추가하면서 확인하고 싶어서 새파일을 추가하는데 클래스 뷰에는 선생님처럼 나오지 않아서 매번이렇게 빌드 제외하고 컴파일실행하고 있습니다. 어떻게 클래스 뷰를 이용하여 간편하게 빌드할 수 있는지 알려주세요.

  • c
  • 컴퓨터-구조
  • assembly-language
  • vc++
조범상 댓글 3 좋아요 0 조회수 215

인기 태그

인프런 TOP Writers

주간 인기글