월 22,000원
5개월 할부 시다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
스마트포인터 강의 질문입니당
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 1번 질문 일단 강의에서 shared_ptr 간단하게 구현하셨다고 들었습니다 SharedPtr 구현부에서 void operator=(const SharedPtr& sptr) { _ptr = sptr._ptr; _block = sptr._block; if (_ptr != nullptr) { _block->_refCount++; cout << "RefCount : " << _block->_refCount << '\n'; } }복사대입연산자에서 질문입니다SharedPtr<Knight> k1(new Knight());SharedPtr<Knight> k2(new Knight());k1=k2; 할때 _ptr = sptr._ptr;_block = sptr._block 를 먼저해버리면 k1이 가지고 있는 값 처리가 안될거 같은데간단하게 보여주실려고 k1이 가리키고 있는 knight 객체나 refblock 처리 부분을 생략하신거죠?2번 질문shared_ptr을 쓸때 Ref 블럭 최초 생성되는 시기가 궁금합니다제가 생각하기에첫번째 생성자 호출할때Knight* k=new Knight(); shared_ptr<Knight> k1(k); 할때 block을 생성할 거 같고두번째는 shared_ptr<Knight> k1 = make_shared<Knight>(); 복사 생성자를 통해서 make로 만들어진 블럭을 연결할거 같습니다혹시 이거 말고도 블럭이 생성되는 case가 있나요?3번 질문shared_ptr<Knight> k1 = make_shared<Knight>(); //끝나기 전 연결끊기 k1->_target = nullptr; 이거는 nullptr 인자를 받는 shared_ptr 임시객체를 만들어서 이동대입연산자로 처리하나요?아직 c++이 미숙해서 그런지라이브러리 헤더파일 볼려고했는데 잘 안 읽히네요...
- 미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
쎅..쎽로우 월드 21:36
const char* str = "Hello World"; 에서 문자열은 .rodata역영에 들어기기 때문에 수정이 불가능 한 것은 알겠습니다. 그런데 char test2[] = "Hello World";의 경우에는 왜 readOnly data영역에 들어가지 않았기 때문에 Test함수를 통해서 Hello World가 Xello World 로 수정이 가능하다는 것까지는 알겠습니다. 그렇다면 test2[] 배열의 "Hello World';는 초기화를 해주면 1) test2의 문자열은 스택에 들어가는 것인가요? 포인터변수로 가르키면 리터럴이 데이터 영역에 들어가고 배열로 초기화를 해주면 스택에 들어가고.. 2) 문자열 데이터의 메모리위치? 들어갈 메모리의 기준이 헷갈립니다...
- 해결됨[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
함수객체론 해결을 하지 못하고 함수 포인터를 사용해야만 하는 상황이 있을까요?
함수 포인터와 함수 객체에 대해서 강의를 들었습니다. 강사님께서 함수 포인터에겐 진행상황을 저장할수 없다는 단점이 있어, 클래스를 이용해 함수 객체를 이용하면 단점이 보완가능하다고 설명해주시고, 함수 객체 또한 매게 변수로 사용이 가능한걸로 아는데, 그렇다면 함수포인터는 함수 객체로 대체해서 쓰면 가능하지 않나요? 아니라면 함수 객체로만 해결이 가능한 그런 상황이 있을까요?
- 미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
몫과 나머지 print하기
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 몫은 al로, 나머지는 ah로 가는 것까지는 알겠습니다. 그런데 mov al, ah를 하는 이유가 궁금합니다. (PRINT_DEC ah를 하는 경우, 오류가 발생하는데, 왜 오류가 발생하는지 궁금합니다.)
- 미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
동적바인딩으로 동적할당 질문입니다.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 나이트의 갯수를 입력값으로 받고 싶어서 처음 Player* p=new Knight[num]; 순간 되는줄 알고 하다가 생각해보니 아주 위험한 짓이더군요 이 코드 뉘앙스처럼 만들고싶으면Player** p=new Player*[num];해서 for문으로 하나씩 넣던가아니면벡터를 쓰는 방법 밖에 없겠죠?
- 미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
초기화된 여부
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요 초기화 된 데이터는 section .data로 초기화 되지 않은 데이터는 section .bss에 넣는다는 것은 알겠는데, 초기화 되었다 라는 것이 어떠한 의미인지 잘 모르겠습니다. (초기화되었다는 게 위에서 이미 그 변수를 선언해주는 것임은 알고 있는데, 어셈블러에서 초기화되었는지에 대한 여부를 어떻게 확인하는지 잘 모르겠습니다.)
- 미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
달팽이 연습문제 풀다가 문득 질문드립니다!
안녕하세요! 열심히 공부중인 초보 학생입니다. 달팽이 연습 문제를 풀다가 <iomaip> 에 대해 기억이 안나면 구글링을 하면 된다고 하셨는데, 회사 면접 시험 도중 구글링이 가능 할까요? 상당히 무거운 분위기와 환경에서 시험을 치를것 같은데, 위와 같은 사소한 기능들이 기억이 나지 않을까 걱정됩니다. 혹여 위와 같은 구글링이 안된다면 유용한 기능들이 있는 헤더들을 외워두고 가야할까요??
- 해결됨[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
부동소수점의 지수 부분
안녕하세요 실수를 표현하는 방법 중 지수 부분이 조금 관심이 가서 인터넷을 찾아봤는데 00000000과 11111111은 사용이 안되어서 00000001 ~ 11111110까지 활용이 가능하다고 하더군요.. 여기까지는 그렇구나 했는데 이게 10진수로는 -126 ~ 127이라고 해서 많이 헷갈립니다... 1바이트인 char의 경우에는 -128 ~ 127까지가 표현범위인 것으로 알고 있고 00000001 ~ 11111110이면 -127 ~ 126이 되어야된다고 생각하고 있었거든요 중요한 부분인지는 잘 모르겠지만 순수하게 궁금합니다... p.s. 새로운 내용들을 공부할 때마다 예전에 배웠던 내용들 중 잘 사용하지 않는 부분들은 자꾸만 잊어버리는데(ex - bitflag) 좋은 방법이 있을까요?;;
- 미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
Release 는 무엇인가요?
강의를 잠깐 보면서 따라하다가 비주얼 스튜디오 맨위에 32비트 64비트 바꿔주는 아이콘 옆에 Debug라는 아이가 있길래 클릭 해 봤더니 밑에 Release 라는 아이도 있었습니다. Release는 무엇인가요?
- 미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
SASM SAVE
SASM 사용할때 파일 저장 안하고 그냥 실행 하면 오류뜨나요? 왠만하면 저장하고 실행하는게 나은가요?
- 미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
구조체 패딩 관련 질문입니다
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. struct Padding { char a; //1 long long b; //8 short c; //2 int d; //4 char e; //1 long long f; //8 char g; //1 }; 디폴트 패킹 값으로 설정되어있고 32bit 환경과 64bit 환경에서 둘다 테스트해봤습니다. 처음에 디폴트 패킹값이 8이라고 알고있어서8byte 단위로 끊어서 c , d , e 변수가 하나의 8byte 단위로 들어갈거라고 생각해서 sizeof(Padding)이 40byte라고 생각했는데결과는 48byte가 나왔습니다그래서 메모리 뷰를 확인해 본 결과 0x000000837FB1F948 03 00 cc cc ..?? 0x000000837FB1F94C 04 00 00 00 .... 0x000000837FB1F950 05 cc cc cc .???0x000000837FB1F954 cc cc cc cc ???? short c 랑 int d가 8byte 차지하고char e 혼자 8byte를 차지하더라고요왜 굳이 8byte단위로 처리 가능한데short c / int d / char e 를 하나의 8byte로 처리하지 않고 오히려 4byte씩 끊어서 처리하는 느낌이 들었는데 이런 현상에 대해서 궁금합니다
- 미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
람다식과 함수포인터 관련 질문입니다.
위와같이 람다함수를 함수포인터에 대입하는건 에러가 안나는데 람다 캡처 블록에 값표시(=),참조표시(&)를하면 에러가 생기는데 이유를 모르겠습니다.
- 미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
원인이 뭔지 잘 모르겠습니다 ㅠㅠ
안녕하세요 열공하고있는 초보 학생입니다! 강사님의 강의를 여러번 돌려보면서 복습차 텍스트 RPG를 만드는 중에 이해를 못하는 부분이 생겨서 질문드립니다.. 이것때문에 어제 오늘 뇌가 폭발할 지경이네요! struct Playerinfo{ int Hp; int Atk; int Def;}; void EnterLobby();void Stat(Playerinfo& info);void UserInfo(Playerinfo& ttt); int main(){ Playerinfo player; EnterLobby(); UserInfo(player);} void EnterLobby(){ cout << "(1) 테스트입니다." << endl; cout << endl; int userinput; cin >> userinput; Playerinfo player; if (userinput == 1) { Stat(player); cout << player.Hp << " " << player.Atk << " " << player.Def << endl; }} void Stat(Playerinfo& info){ info.Hp = 100; info.Atk = 100; info.Def = 100;} void UserInfo(Playerinfo& player){ cout << player.Hp << " " << player.Atk << " " << player.Def << endl;} 원래는 각종 기능을 넣어서 만들다가 중간에 막히는 부분이 생겨서 다 지우고 테스트 삼아서 위에처럼 작성해봤는데 여전히 똑같은 문제가 발생하고 있습니다. 이렇게 작성 후 실행을 하고 1을 누르면 처음에 참조로 수정했던 Hp, ATK, DEF 가 UserInfo 함수로 넘어와서 다시 참조로 출력해보면 괴랄한 숫자로 바뀌어버리는데 이게 도대체 무슨 이유일까요.. 지금 C++ 공부시작한지 한달도 안되어서 겨우겨우 포인터랑 참조를 몇번씩 돌려가며 열공중인데 복습차원에서 만들다가 이부분이 막혀서 원인을 모르겠습니다 ㅜㅜ 제발 도와주세요~!!
- 미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
몇가지 질문이 있어서 글 올립니다 !
강사님 안녕하세요! 강의를 들으면서 몇가지 궁금증이 생겨서 질문을 올리게 되었습니다. 1. 어셈블리어 학습 정도. : 어셈블리어는 처음이라 강의 내용의 흐름은 이해가 가지만 sasm에서 사용하는 문법이라던지, 레지스터 용어, 16진수와 2진수의 매끄러운 변환등 디테일한 부분들을 완벽하게 짚고 넘어가지 못하는 생각이 들었습니다. C++을 주언어로 사용하는 게임개발자 취업을 준비하는 입장에서는 어셈블리어의 학습을 어느정도까지 해두어야 할지 궁금해서 여쭤봅니다. 중요한 부분이라면 강의를 여러번 반복하거나 관련 서적을 이용하여 깊게 공부해두려고 합니다. 2. 게임개발자의 고용 형태. :강사님의 게임 프로그래머 개론을 들으면서 갖게된 궁금증이 생겼습니다. 보통 프로젝트 단위로 게임 개발자의 채용이 이루어진다고 하셨는데 , 그렇다면 게임 개발자는 정규직이 아닌 계약직 형태로 채용이 더 많은건지 궁금증이 생겼습니다. 물론 정규직 채용과 계약직 채용이 둘 다 있을거라고 생각하는데, 프로젝트 단위의 계약직 채용이 주를 이루고 있는걸까요 ? 3. part2 :아직 part2를 듣지 못했기 때문에 조금 이른 질문일 수도 있지만 part1이 끝나면 part2와 part3를 같이 들을 예정입니다. part2의 DirectX12 강의는 클라이언트 개발자의 주된 기술과 관련된 부분이라고 볼 수 있을까요 ? 아직 part4까지 듣지 못해서 단정지을 수 는 없지만, 클라이언트 개발자 쪽이 조금더 흥미가 가는 것 같아서 질문드립니다. 좋은 강의 올려주셔서 항상 감사합니다. 열심히 배우겠습니다.
- 해결됨[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
rbp 스택에 저장할시 메모리 변조
해당 함수에서 여러가지 포인터 연산중 실수로 rbp저장된 곳을 건드리게 된다면 나중에 함수 반환시 크래쉬가 날 것 같긴합니다만 애매하게 rbp가 다른 가상메모리 주소로 가게 되서 프로그램이 동작하게 된다면 너무너무 위험한거 아닌가요? 혹여나 버그 발생한 장소를 찾아낼수 없는 경우도 발생하나요?
- 미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
12분 질문
레지스터의 크기에 따라서 예약된 이름이 다르다고 하셨는데 이상태의 경우인데 강의에서는 mov eax, 0x1234 mov rbx, 0x1234567 mov cl, 0xff 이렇게 해주셨는데 그러면 eax라는 이름에 0x1234가 왜 안들어가고 rax에 값이 들어가나요? rax는 64비트이고 eax는 32비트의 이름을 가진 레지스터인데.. 이해가 잘 가지 않습니다.
- 미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
Pat1 을 공부하고 여러가지 잡다하게 공부하다 현타가 심하게 온 1인입니다
part5는 언제 나오는지 선생님 답답해 미치겠어요 ㅠㅠ 5출시도 했는데 어디 배울만한곳이 학원도 없어서그러는데 언제쯤 출시하실 계획인지 알수 있을까여?
- 미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
end( )의 의미?
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. map<int, int> m; for (int i = 0; i < 1000; i++) { m.insert(pair<int, int>(i, i + 100)); } map<int, int>::iterator findit = m.find(100); if (findit != m.end()) { cout << "찾음" << endl; } else { cout << "못찾음" << endl; } 이터레이터가 주소를 가리키는 걸로 배웠습니다. 그런데 if (findit != m.end()) 이부분이 이해가 되질 않습니다. 심지어 if (findit != m.begin()) 이렇게 수정해 봤는데도 "찾음" 이라고 출력 됩니다. end( ) 함수는 데이터 끝에 다음 쓰레기 값을 들고 있는걸로 기억하는데 if (findit != m.end()) while문을 쓴것도 아니고? for문에 범위 지정을 할때는 end( ) 쓰는건 이해가 됩니다. 어떻게 이게 되는지 전혀 이해가 안 됩니다.
- 미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
VS 대신 VScode를 사용해도 될까요?
지금 군대에서 강의를 듣고있는데 사지방 컴퓨터가 껏다 켜면 초기화 됩니다. 그래서 VS를 매번깔기엔 용량부담이 너무 큰데 vscode나 구름 ide를 활용해도 될까요? 차이가 많이 날까요?
- 미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
wchar_t wch = L '안'; 관련.. 질문
강의를 보면서 따라 작성을 하였는데 L 밑에 빨간줄이 뜹니다. 빨간줄(식별자 L이 정의되어 있지 않습니다) 무엇을 고쳐야 하나요?