inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

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

PDF관련 질문

해결됨

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

PDF 파일 다운받기 위해 유튜브 멤버십 가입 후 다운로드를 마쳤습니다 강의 제목중 강의자료 PDF 포함 그리고 인쇄용 흑백자료 포함 예제파일 포함이라고 나와있는건 교재용 PDF파일과 예제용 PDF 파일을 참고하며 수업진행해야한다는 뜻일까요?

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

pTmp 변수를 사용하는 이유

해결됨

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

노드를 추가하는 함수나 해제하는 함수에서 헤드노드를 pTmp변수에 대입한 후에 pTmp값을 가지고 코드를 짜는 게 이유가 있나요? 그냥 pTmp를 사용하지 않고 바로 헤드노드를 사용해도 괜찮지 않나요?

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

교재 chapter 11장 5번 연습문제 관련 질문

해결됨

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

안녕하십니까? 강사님 교재 chapter 11장 5번 연습문제를 풀기 위해 coding을 했습니다. 프로그램은 작동 하는데 첨부 화면캡처 사진 14번행에 밑줄이 생겼는데 읽어봐도 무슨 말인지 알수가 없습니다. 설명을 부탁드려도 될까요? 혹시 저 밑줄을 없앨 수 있는 방법이 있을까요? 수고하십시오

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

변수들이 stack frame에 할당되는 구조에 대하여

해결됨

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

우선 강의 내용 정말 만족하면서 잘 듣고 있습니다. 섹션 16의 "가변 길이 입력에 대한 stack frame 손상" 강의편에서 Callee로 GetString 함수를 활용하여 디버깅 모드로 메모리 주소를 추적하는 과정에서 질문드려요. 스택 구조는 높은 메모리 주소에서 낮은 메모리 주소 방향으로 할당 받는 구조로 알고 있는데, char 배열이 int형 변수보다 낮은 메모리 주소에 할당이 되어서 질문 드립니다. 제가 따로 여러 변수들을 적용하여 디버깅 해보았는데도 마찬가지더라고요. 혹시, os에 따라 변수가 할당되는 스택 메모리의 순서가 다른건지 궁금해서 질문드려요.

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

게임 개발자를 희망하는 학생인데 질문이 있습니다!

미해결

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

게임 서버 프로그래머 지망생에게 이 강의를 추천 하신다기에 수강하게 되었는데요. 아직 강의 초반이지만 winapi에서 쓰이는 구조체나 함수들이 계속 등장하는 것 같은데 해당 지식들이 실제로 게임 업계 실무에서 사용되는 지식들인가요? 그렇다면 강의에 나오는 내용을 꼼꼼히 머릿속에 넣어야 하겠지만 지엽적인 개념보다 큰 틀(os와 관련된 지식들)이 중요한 것이라면 직접적인 winapi 사용법 보다는 os 관련된 지식을 중점으로 공부하려고 하는데 어떤 방법을 추천하시나요?

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

%zd 관련 질문

해결됨

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

안녕하십니까? 강사님. 교재 p409에 보면 printf("[%p] %d %s\n" pszNewBuffer, _msize(pszNewBuffer), pszNewBuffer); 로 나와있는데 "동적 할당된 메모리구조와 realloc()" 동영상 내에 있는 예제 파일에는 printf("[%p] %zd %s\n" pszNewBuffer, _msize(pszNewBuffer), pszNewBuffer); 로 나와있습니다. 어떤때 %zd를 사용하는지 궁금합니다 수고하십시오

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

예제문제와 유사한 문제 풀이 사이트

해결됨

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

안녕하세요! 널개님 강의 듣고있는 수강생입니다. 강의 내에 나와있는 예제문제 외에도 실습을 통해 실력을 향상시키고 싶습니다. 혹시 실습을 할 수 있는 사이트를 추천해주실 수 있을까요? 이론강의는 널개님 강의를 통해 충족이 되지만 실습은 아직도 부족하네요ㅠㅠ 실습을 통해서도 배우는게 많다 생각하여 문의드립니다. 항상 시간이 아깝지않은 강의해주셔서 감사합니다!

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

동적할당 관련 #inlude <malloc.h> 질문

해결됨

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

안녕하십니까? 독하게 시작하는 c프로그래밍 책 page 391 에 보면 _msize() 함수에 대한 설명이 있는데 예제 프로그램에서 #include <malloc.h>를 쓰셨는데 #include <stdlib.h>를 사용하지 않은 이유가 계신지 궁금합니다. 수고하십시오

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

비동기 Callback방식 코드 질문

해결됨

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

#include <iostream> #include <windows.h> #include <stdio.h> #include <tchar.h> void CALLBACK FileIoComplete( DWORD dwError, DWORD dwTransferred, LPOVERLAPPED pO1) { printf("FileIoComplete() Callback - [%d 바이트] 쓰기 완료 -%s\n", dwTransferred, (char*)pO1->hEvent); //hEvent 멤버를 포인터로 전용했으므로 가리키는 대상 메모리를 해제한다. //이 메모리는 IoThreadFunction() 함수에서 동적 할당된 것들이다! delete[](char*)pO1->hEvent; delete pO1; puts("FileIoComplete() - return \n"); } DWORD WINAPI IoThreadFunction(LPVOID pParam) { //메모리를 할당하고 값을 채운다. //이 메모리는 완료 함수에서 해제한다. char* pszBuffer = new char[16]; memset(pszBuffer, 0, sizeof(char) * 16); strcpy_s(pszBuffer, sizeof(char) * 16, "Hello IOCP"); // Allocate and initialize the OVERLAPPED structure. //OVERLAPPED 구조체의 hEvent 멤버를 포인터 변수로 전용한다! LPOVERLAPPED pOverlapped = NULL; pOverlapped = new OVERLAPPED; memset(pOverlapped, NULL, sizeof(OVERLAPPED)); pOverlapped->Offset = 1024 * 1024; //일부러 사이즈 작게 했습니다. pOverlapped->hEvent = pszBuffer; //pOverlapped->hEvent = CreateEvent(NULL, TRUE, FALSE, NULL); // Manual-reset event //비동기 쓰기를 시도한다. //쓰기가 완료되면 완료 함수가 역호출된다. puts("IoThreadFunction() - 중첩된 쓰기 시도"); ::WriteFileEx((HANDLE)pParam, pszBuffer, sizeof(char) * 16, pOverlapped, FileIoComplete); // 함수의 주소를 쓸 수 있다. for (; ::SleepEx(1, TRUE) != WAIT_IO_COMPLETION;); { //SleepEx를 호출한 WorkerThread가 ALERTABLE_WAIT 상태가 된다/ puts("IothreadFunction() - return "); } return 0; } int tmain(int argc, TCHAR* argv[]) { HANDLE hFile = ::CreateFile(_T("TestFile.txt"), GENERIC_READ, //쓰기 모드 0, //공유 하지 않음 NULL, CREATE_ALWAYS, //무조건 생성 FILE_ATTRIBUTE_NORMAL | FILE_FLAG_OVERLAPPED, //중첩된 쓰기->비동기 쓰기 NULL); HANDLE hThread = NULL; DWORD dwThreadID = 0; hThread = ::CreateThread( NULL, 0, IoThreadFunction, hFile, 0, &dwThreadID); WaitForSingleObject(hThread, INFINITE); } 강사님 위와 같이 코드를 작성해서 비동기 call back 방식으로 시도하려고 하는데, Hello IOCP가 쓰여지지 않고 종료도 되지 않는데, 뭔가 오류가 있는 부분이 있나요? 또, 자동으로 종료도 되었으면 하는데, 가능한가요? 어떻게 수정하면 좋을까요? 혹시 예제 코드를 공유할 수 있다면 가능한가요? 감사합니다.

  • c
  • system-programming
  • vc++
댓글 4 좋아요 1 조회수 408

예제파일 불러오기

해결됨

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

문자 입출력 강의처럼 클래스 뷰에 예제 파일들을 쭉 뜨게 하는 방법을 모르겠습니다..!!

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

완강 후 실습 관련 질문

해결됨

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

안녕하세요! 항상 좋은 강의 만들어 주셔서 감사합니다. 이번에 독하게 시작하는 C를 완강하고 자료구조를 듣는 중입니다. 그런데 C언어를 완강해도 능숙하게 다룰 수 있다는 느낌이 들지 않아서 C 코딩 예제를 플어보고 싶은데 혹시 추천해주실 만한 예제 사이트나 교재가 있으신가요?

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

개정판 출판 계획

해결됨

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

안녕하세요. 개발자는 아니지만 업무 능력 고도화를 위해 강의를 수강하고 있는 직장인입니다. 독하게 시작하는 C프로그래밍 2015년판이 절판되었고, 강의 소개에 최신 개정판을 위한 강의라고 돼 있는데 혹시 최신 개정판 출판 계획과 예상 일자가 있는 것인가요?

  • c
  • 컴퓨터-구조
  • assembly-language
  • vc++
okaysungnam 댓글 2 좋아요 1 조회수 351

섹션 14. 사용자 함수 필수 실습 문제

해결됨

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

안녕하세요! 여기서 세 정수를 입력받는 함수를 사용자 함수로 만드는 과정에서 어려움이 있습니다.. 입력받는 함수는 main에 넣으면 쉬운데 이렇게 3개 정수를 넣으려니 계속 막혀요ㅠㅠ

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

메모리 할당 해제 방법에 대한 질문

해결됨

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

안녕하세요 수업 잘 듣고 있습니다. malloc함수로 운영체제한테 메모리 공간을 받아온다고 배웠습니다. 이 때는 내가 사용할 메모리 크기을 명시하는데 free로 메모리를 해제할 땐 내가 받아온 메모리 크기를 명시하지 않는데 어떻게 컴퓨터는 할당해준 메모리를 정확하게 해제해줄 수 있나요? 따로 어디에 할당해준 메모리 크기를 저장해두는 건가요?

  • c
  • 컴퓨터-구조
  • assembly-language
  • vc++
조현준 댓글 1 좋아요 1 조회수 555

섹션 13 다차원 배열 필수 실습문제

해결됨

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

안녕하세요!! 그 섹션 13 다차원 배열 필수 실습 문제에서 이 문제 혹시 답 좀 알 수 있을까요! 최대한 간단한 답을 알고 싶습니다!!

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

메모리 맵 파일강의 숙제 검사

해결됨

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

안녕하세요 선생님. 메모리 맵 파일강의 에서 내주신 숙제를 풀어 봤는데, 혹시 검사 부탁드려도 될까요? 아래의 코드가 제가 작성한 코드인데 혹시 잘못된 부분이나 고치면 좋겠다 하는 부분을 알려주시면 대단히 감사하겠습니다. 그리고 따로 질문 사항이 아래와 같이 있습니다. 메모리 맵 방식이 WriteFile() 방식보다 쓰기 속도가 더 빠를까요? chunkSize를 높여서 한번에 wirte하면 더 빠르다 강의에서 하셨는데, 어떠한 기준으로 메모리 효율이나 쓰기속도를 고려한 chunkSize의 최적의 사이즈를 구할수 있을까요? 항상 좋은 강의 만들어 주셔서 감사합니다! #include <iostream> #include <windows.h> // Custom deleter for HANDLE struct HandleDeleter { void operator()(HANDLE handle) { if (handle != INVALID_HANDLE_VALUE) { CloseHandle(handle); } } }; typedef std::unique_ptr<std::remove_pointer<HANDLE>::type, HandleDeleter> UniqueHandle; int main() { _wsetlocale(LC_ALL, L"korean"); const wchar_t* sourceFilePath = L"C:\\TEST\\Sleep Away.zip"; const wchar_t* targetFilePath = L"C:\\TEST\\Sleep Away - copy.zip"; // Open source file UniqueHandle hFileSource{ CreateFile(sourceFilePath, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL) }; if (hFileSource.get() == INVALID_HANDLE_VALUE) { wprintf(L"Failed to open source file [ERROR CODE: %d]\n", GetLastError()); return 0; } // Open target file UniqueHandle hFileTarget{ CreateFile(targetFilePath, GENERIC_READ | GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL) }; if (hFileTarget.get() == INVALID_HANDLE_VALUE) { wprintf(L"Failed to open target file [ERROR CODE: %d]\n", GetLastError()); return 0; } // Set the size of the target file to match the source file LARGE_INTEGER fileSize; GetFileSizeEx(hFileSource.get(), &fileSize); if (!SetFilePointerEx(hFileTarget.get(), fileSize, nullptr, FILE_BEGIN) || !SetEndOfFile(hFileTarget.get())) { wprintf(L"Failed to set size of target file [ERROR CODE: %d]\n", GetLastError()); return 0; } // Create file mappings UniqueHandle hMapSource{ CreateFileMapping(hFileSource.get(), NULL, PAGE_READONLY, 0, 0, NULL) }; UniqueHandle hMapTarget{ CreateFileMapping(hFileTarget.get(), NULL, PAGE_READWRITE, 0, 0, NULL) }; if (hMapSource.get() == nullptr || hMapTarget.get() == nullptr) { wprintf(L"Failed to create file mappings [ERROR CODE: %d]\n", GetLastError()); return 0; } // Constants for the operation const DWORD chunkSize = 65536; // 64 KB DWORD bytesCopied = 0; for (LONGLONG offset = 0; offset < fileSize.QuadPart; offset += chunkSize) { DWORD size = static_cast<DWORD>(min(static_cast<LONGLONG>(chunkSize), fileSize.QuadPart - offset)); // Map a chunk from the source file auto pSrc = static_cast<char*>(MapViewOfFile(hMapSource.get(), FILE_MAP_READ, 0, offset, size)); if (pSrc == nullptr) { wprintf(L"Failed to map view of source file [ERROR CODE: %d]\n", GetLastError()); break; } // Map a chunk to the target file auto pDst = static_cast<char*>(MapViewOfFile(hMapTarget.get(), FILE_MAP_WRITE, 0, offset, size)); if (pDst == nullptr) { wprintf(L"Failed to map view of target file [ERROR CODE: %d]\n", GetLastError()); UnmapViewOfFile(pSrc); break; } // Copy the chunk memcpy(pDst, pSrc, size); bytesCopied += size; wprintf(L"%I64d%%\n", offset * 100 / fileSize.QuadPart); // Unmap the chunks UnmapViewOfFile(pSrc); UnmapViewOfFile(pDst); } wprintf(L"Copy complete! The original file size is %lld bytes and %d bytes copied.\n", fileSize.QuadPart, bytesCopied); return 0; }

  • c
  • system-programming
  • vc++
박경훈 댓글 1 좋아요 0 조회수 281

포인터 배열의 메모리 추적

해결됨

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

이 코드에서 궁금한 사항이 있어 질문 드립니다. 우선 astrList, astrList[0], astrList[0][0] 각각을 메모리 주소 검색을 하였더니 순서대로 astrList 의 경우 astrList[0] 의 경우 astrList[0][0] 의 경우 이렇게 나왔는데 astrList의 주소는 변수 자체의 주소이고, astrList[0] 의 주소는 'Hello' 중 H의 주소를 가리키고 astrList[0][0] 의 주소 또한 H의 주소를 가리키는게 맞지 않을까요? 왜 astrList[0][0] 의 주소는 저런식으로 나오는지 모르겠습니다... 0x48이 H인 것은 알겟지만 왜 주소에 그 값이 들어가는지도 이해가 가지 않습니다 ㅠㅠ 그리고 astrList의 주소를 검색했을 때 나오는 맨 위 3줄에 대해서도 잘 이해가 가지 않습니다... 글이 매끄럽지 못한 점 양해부탁드리겠습니다!

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

해답파일 위치를 모르겠습니다

해결됨

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

달팽이배열 도저히 못풀겠어서 해답을 보고싶은데 어디있는지 찾아도 못찾겠어요ㅜㅜ

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

필수실습문제 해답

해결됨

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

챕터14 필수실습문제 UI와 기능으로 나눠서 세 정수를 입력 받아 최대 값 구하는 문제를 혼자 해보고있는데 해답 파일이 찾아봐도 없는거 같아서요 ! 강사님이 작성하신 해답 예시와 비교해보고 싶은데 알려주실 수 있나요? 저는 이렇게 했는데 맞게 한건지 모르겠습니다 ㅜ 코드는 잘 돌아갑니다 그리고 숫자입력을 받는 부분에서 반복문을 사용할 수도 있을까요? for문을 사용할 수 있을거 같아서 시도 해보는 중인데 중간에 막혀서 궁금합니다. 막히는거보니 반복문을 쓸 수 없는 부분인거 같기도 해서요 ㅜㅜ 숫자 입력 받는 부분을 반복문으로 줄일 수 있을까요?

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

C언어랑 관계있는지..

해결됨

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

음 클로저와 c언어의 함수 포인터 비슷한 느낌인데 차이점은 무엇일까요 클로저란 이름처럼 전역 변수처럼 사용하지만 클로저 함수만 접근 가능하기 떄문에 클로저란 이름을 쓴거 같은데 이점이 함수 포인터와 다른 점일까요... C언어 포인터 질문과 관계가 있는지 몰르겠지만 왠지 클로저 구현을 한다면 포인터를 사용한게 아닐까 싶은생각이 문득 들어서 한번 여쭤봅니다..

  • c
  • 컴퓨터-구조
  • assembly-language
  • vc++
궁금돌이 댓글 1 좋아요 0 조회수 359

인기 태그

인프런 TOP Writers

주간 인기글