월 22,000원
5개월 할부 시다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
타입 변환#4 13:12 질문
타입 변환#4 강의에서 13:12 부분에 질문이 있습니다.Weapon* weapon = (Weapon*)item;을 하면 item이 담고 있는 크기가 weapon보다 더 커 weapon은 4바이트짜리니까 weapon._damage는 충분히 담을 수 있지 않나요??(혹시.. 상속받는 item까지의 바이트까지 포함해야 하는 건가요?) 사실 Weapon* weapon = (Weapon*)item부분에서 정확히 무엇을 이야기하는 건지 이해하기 힘든데.. 설명해주시면 감사하겠습니다.!
- 미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
완강했습니다.
안녕하세요 루키스 강사님 다름이 아니고 언리얼 데디케이트 서버로 게임을 만들려고 하는데 관련 강의 자료가 언리얼 공식 홈페이지 말고는 찾아볼게 없는 건가요?
- 미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
지정자 관련 문의드립니다.
안녕하세요루키스님 여러강의를 수강중에 있는데 궁금한점이 있어 문의드립니다.코드중 ::, ., -> 이러한 기호들이 어떠한 경우에 연속으로 사용되는 궁금합니다.예를 들면a::b::c (a>b>c인 경우 a , b, c가 함수 ?)a.b.c (a>b>c인 경우 a, b, c가 변수 ?)a->b->c (a, b, c가 포인터 ?)인가요?답변부탁드립니다.감사합니다.
- 미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
연습문제(달팽이) 21분:59초 질문
int nextX = x+ dx[dir];로 선언해주셨는데, 만약에 cin >> N 값에 3을 입력하면 dir이 Right의 방향을 가리키고 있다가 down으로 nextX=3이 되면 방향이 전환된 후 int nextX = x+ dx[dir];을 거치면 nextX 가 2값을 갖게 되는 데 왜 그런지 잘 모르겠습니다..
- 미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
파일 분할 관리 관련 질문 13:22
CPP_Study와 Test1은 서로 독립적인 건데, Test_2()를 main에서 선언해주면 왜 Test1에 있는 함수와 상호작용이 되는 건가요??
- 미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
char 배열 질문있습니다!
우선 선생님의 너무 질 좋은 강의에 시간 가는 줄 모르고 재밌게 배우고 있어서 감사말씀 드리고 싶습니다!배열이름이 해당 배열의 첫번째 인덱스의 주소값이라면 char 배열도 주소값이 나와야 하는게 아닌가요? 왜 int와 다르게 주소값이 아닌 그 주소 안에 있는 Data가 나오는건지 궁금합니다
- 미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
혹시 _data안에 T()이게 뭔지 알려주실수 있나요?
T() 템플릿뒤에 붙은 ()이게 어떤 기능을 하나요?
- 미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
12분 8초에 스택 유효범위에 대해서 질문있습니다
강의 12분 8초에 esp 레지스터의 주소값을 메모리에 검색해서 볼 때 esp 밑으로는(esp보다 높은 주소) 스택의 유효범위라고 말씀하셨는데 스택의 유효범위라는 것이 OS가 정해놓은 전체 스택범위를 말하는 건가요? 스택은 높은주소에서 낮은 주소로 쌓이는 걸로 알고 있는데 저기 esp 위로의 값들은 어차피 안쓸 값들인데 왜 있는건가요?
- 미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
23분 23초에 main함수내에서 크래시가 나는 부분에서 질문있습니다
제가 이해한바로는push 1push 2call MAX 를 하고MAX 함수에서 pop rbp를 하기 전까지를 다음과 같다고 생각했습니다여기서 pop이 막히는데요22분 29초에 설명을 보면 pop을 하게 되면 이전 rbp로 돌아간다고 하셨는데 rsp는 RET을 가르키게 되고 rbp는 이전 bp값을 가르키는 걸로 말씀하셨더라구요 이게 그냥 pop이라는 instruction이 그렇게 하는걸로 이해하면 될까요?그렇다면 pop은 무조건 rbp는 이전 bp값으로 돌아가고 rsp는 RET로 돌아가게 하는 것인가요?
- 미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
정렬 함수 질문입니다.
void Sort(int numbers[], int count) { // numbers[0]을 numbers[1] [2] [3] [4] [5]랑 비교 그다음 [1]을 [2] [3] [4] [5] 랑 비교 ..... for (int i = 0; i < count; i++) { for (int j = count - 1; j > i; j--) { if (numbers[i] > numbers[j]) { Swap(numbers[i], numbers[j]); } } cout << " " << numbers[i]; } cout << endl; } 저의 경우 best를 정의하지 않았는데 일단 제대로 작동 했습니다.best가 없다면 나중에 코드를 고쳤을 때 문제 되는 부분이 생기는 건가요?아니면 가독성의 차이만 있을까요?
- 미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
포인터, 배열 관련 질문
이 부분에서 dest[j] = '\0';까지는 dest에 HelloWORLD라는 값이 저장되는데 return dest로 넘어가는 순간 Hello로 바뀌어서 왜 그런지 모르겠습니다.. 그리고 char* StrCat으로 함수를 만들지 말고 void StrCat으로 해도 똑같이 작동하나요??
- 미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
Value(값)으로 리턴하는 함수의 리턴 값을 받을때에 대한 질문드립니다.
안녕하세요, 추석 잘 보내고 계신가요?다름이 아니라, 여쭤볼 것이 있어서,제가 UE4 C++을 코딩하면서여러 습관들이 있는데, 그 중 하나가 제가 거의 포인터가 아닌 참조를 선호하고,Data를 Write가 아닌 Read일때 const 참조로 도배를해버리는데, 심지어 불가피하게 포인터를 사용할 경우예를들어,Human* const human = 객체 주소;이렇게 const 를 중간에 박아서, 어셈블리어를 까볼때참조형이랑 같게 한다든지const Human* const human = 객체 주소;이런식으로 하면 const Human& human = 객체;와 동의어라고 생각하여 const Human* const human;이런식으로 사용합니다. 첫번째 질문 ]함수의 매개변수 / 함수의 반환값을 받을 때데이터가 순전히 Read용도로 사용할 경우그냥 습관적으로 const 자료형& 을 사용합니다.이런 습관이 맞는지에 대해서 여쭤봅니다. 함수 내부에 지역 변수를 리턴하는 값을 const 참조형으로 받는게 좋은지일반적으로 Value로 받는게 좋은지에 대해서 여쭤봅니다. 물론 함수 지역 변수를 리턴하는 것을 그냥 참조로 받으면 해당 줄이 끝나면 리턴을 하는 함수의 CallStack 에서해당 함수 프레임이 pop 되면서 사라지기 때문에 VC가 잡아주어 빨간줄이 나겠지만, 그냥 참조가 아닌 저는const 참조로 받는게 습관입니다. vector<Human> GetHumanVector(){vector<Human> HumanVector = '동적할당 해서 배열 값 세팅 전부하고'return HumanVector; // 지역 변수 동적 배열을 리턴}int main(){const vector<Human>& HumanVec = GetHumanVector(); // 1번째 경우 : 저의 스타일const vector<Human> HumanVec = GetHumanVector(); // 2번째 경우 : 값으로 Receive 하는 것} 1번째 경우와 2번째 경우, 저는 1번째 경우를 사용하는데 2번째 경우로 저렇게 받아버리면 값 복사가 되면서GetHumanVector(); 이 const vector<Human> HumanVec 전달 해줄때 순간적으로 메모리 사용량이 2배가 되지 않을 까 생각이 되어무조건 참조로 받는 것이 옳다라고 생각합니다.만약에 저 배열의 크기가 500MB라고 가정을 해봤을때2번째 경우처럼 값으로 받을 경우 컴파일러가 해당 줄을 실행을하고 값을 전달을 할때 1GB가 메모리가 사용될 것이다.라고 어디서 선생님이었나 책이었나 본 것 같아서메모리 효율적 사용이라는이러한 당위성으로 인해 저는습관적으로 저렇게 사용하는데 혹시 제 기억이 틀린건지적어놓은 공책이 있었는데 없어지고 검색을 해봐도딱히 비슷한 예제가 안올라와서R.V.O 리턴 값 최적화 정도로 함수 리턴할떄 값으로 리턴해도 된다. 이 정도 내용 밖에 없네요1) const vector<Human>& HumanVec = : const 참조로 받는 게 좋을지2) const vector<Human> HumanVec = : const로 받는게 좋을지 선생님의 의견은 어떠신지요 두번째 질문 ]혹시 1)을 사용할때 간헐적으로 버그가날 수 있나요?저는 없다고 보는데 일단 참조는 컴파일 타임에 생성과 동시에 초기화가 되고, 일단 const로 받아서 빌드 돌릴때는 문제가 없는데런타임때 버그가 날 확률이 조금이라도 있을까요???
- 미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
구구단 이중 for 문 쓰기 vs if 문 쓰기
구구단 해설에서 이중 for문을 쓰셨는데저는 이렇게 풀었습니다 int A = 1; int B = 2; for (int i = 0; i < 72; i++) { cout << B << "*" << A << "="<< A*B<< endl; A++; if (A == 10) { B++; A = 1; } } 제가 쓴 것이 A 와 B 변수를 더 써서 혹시나 메모리를 더 쓴다거나 문제가 있을까요?개인적으로 for 문을 두번씩 쓰는게 너무 어렵고 if문을 쓰니깐 이해가 더 잘되는데 for문을 꼭 써야하는 상황이 아니라면 if문을 써도 상관 없는 건가요?
- 미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
cout 관련 질문 드립니다
뭔가 비트연산 파트와는 별개의 질문이긴 하지만 비트연산 실습을 연습해보다가 잘 이해가 안가서 질문드립니다unsigned char flag = 0;unsigned defaultState = 1;flag = ((flag || defaultState) << 3);printf("%d\n", flag);위와 같이 C스타일로 출력하면 8로 값이 잘 나오는데cout << flag << endl;이렇게 C++스타일로 찍으면 값이 빈칸으로 아무것도 안나오는 이유가 혹시 뭔지 여쭤봐도 될까요??
- 미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
어셈블리어 [] 관련...
어셈블리어 연습을 하다가 [변수], [레지스터] 관련 내용이 이해가 잘 안되어서https://stackoverflow.com/questions/39474332/assembly-difference-between-var-and-var에 관련 내용이 있어서 참고를 하였습니다그런데 여기에서 어셈블리어의 [변수] == c에서의 *변수라는내용이 있는데 이게 왜 이런 것인지 이해가 잘 안 됩니다 엄밀히 말하자면 어셈블리어 프로그램으로 계속 실험을 하니[레지스터] == *레지스터인 것은 이해가 되었는데[변수] == (*변수)가 아닌 (변수)가 맞는 것 같아헷갈립니다... p.s. 레지스터에 값을 이동시킬 때 동일한 값이어도 해당값이 주소값인지 변수의 값인지 컴파일러가 알고 스스로 구분하나요?ex) a = 0x30203020 &a = 0x30203020
- 미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
로또에서 srand 질문입니다.
로또만들때 Choose함수 안에 srand(time(0)); 를 넣을시메인에서 Choose함수를 여러번 호출하면 같은값이 나오는데메인에 처음에 srand(time(0));를 넣으면 다른값이 나옵니다! 차이가 뭔지 모르겠어서 질문드립니다.
- 미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
PrintStatInfo(const char* name,const StatInfo& info) 부분 오류
함수 선언 부분에서void PrintStatInfo(const char* name, const StatInfo& info);부분에서 빌드를 하면 "확인 할 수 없는 외부참조 입니다"라는 오류가 뜨면서 되지 않습니다.혹시나 해서 const를 지우고 StatInfo& info만 했을때는 정상적으로 실행이 돼서 const 부분이 문제인거 같은데 어떤 이유로 이런건가요??
- 미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
스택 관련 어셈블리어에서
스택 관련 어셈블리어에서 mov와 push가 컴파일러에 따라 다르게 나올 뿐 동일한 기능을 하는 것이라면main 함수 스택프레임의 지역변수 a,b에 대한 mov 어셈블리어를 실행했을 때에는 esp에 변화가 없었지만MultiplyBy 함수 스택프레임의 매개변수 a, b에 대한 push 어셈블리어를 실행했을 때에는 esp에 변화가 생겼었는데 왜 그런지 궁금합니다;; 그리고 1개 함수의 스택프레임에는 매개변수 + 반환 주소값 + 이전 함수 ebp + 지역변수가 들어가는 것으로 알고 있습니다그런데 막상 sub esp, ...을 통해서 해당 함수가 사용할 스택프레임의 영역을 정할 때에는 이미 4개 요소 중 3개가 이미 저장된 상태 같은데 왜 이렇게 되는 것인지 모르겠습니다(매개변수와 반환 주소값은 이전 함수에서 세팅을 해준다고 하더라도 일단은 해당 함수의 스택 프레임에 속할 텐데)
- 미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
스마트 포인터 질문 23:00
use after free, 댕글링 문제 스마트 포인터를 통해 메모리 오염 막을 수 있는거 알겠습니다.그런데 지금 k2가 {} 지나면 유효하지 않은데k2의 데이터자체는 사용할 수 없을 텐데...굳이 또 k1->Attack()을 호출할 필요가 있는것인가요..??
- 미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
중요한건 아니지만...PRINT 관련 질문드립니다
강의에 나온 b데이터 (section .data 에 b times 5 dw 1) 를 모두 출력해보는 연습문제에서 PRINT_HEX 2, [b+ecx]는각각 1 / 100 / 1 / 100 / 1 으로 출력되어서 100이 나오는 이유까지는 이해가 됐는데 PRINT_DEC 2, [b+ecx] 라고 하면각각 1 / 256 / 1 / 256 / 1 이 출력되는데 256이 나오는 이유를 잘 모르겠어서 질문드립니다.