월 22,000원
5개월 할부 시다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 해결됨[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
포인터 관련
인터넷을 찾았을 때 굉장히 헷갈리는 부분이 있는데예시로 int* a = &b;에서포인터 a는 b의 주소를 가리킨다라는 설명도 있고포인터 a는 b를 가리킨다라는 설명도 있는데둘 중에 어떤 것이 맞는 설명인가요?
- 미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
다형성과 가상함수
안녕하세요. 다형성 챕터 강의 완강하고 제가 수업을 듣고 개념을 제대로 이해한 것이 맞는지 궁금해서 질문 올립니다.1. 정적바인딩은 컴파일시 결정된다. 모든 함수는 정적바인딩.Knight k;MovePlayer(&k);void MovePlayer(Player* player){player->Move(); // Move Player!}이 함수가 매개변수로 최상위 클래스 타입의 포인터를 매개변수로 받고 있기에 함수 입장에서 컴파일시 Move함수가 최상위 클래스의 Move함수로 인식하기 때문에 이런 현상이 일어나는 것 인가요?2. 동적바인딩은 런타임시 결정된다. 동적바인딩(가상함수)으로 함수를 설정하고 싶으면 virtual 키워드를 함수앞에 사용. 클래스 내에 가상함수가 있다면, 그 클래스를 생성할때 그 클래스주소 (offset 0)에 vftable 주소가 들어감, vftable에는 가상함수로 지정한 함수들의 주소가 있다. 이 vftable로 인해 최상위 객체로 관리하는 함수에서 파생클래스의 주소를 넘겨주어도 알아서 재정의된 가상함수를 찾아서 실행해 준다.
- 미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
질문있습니다.
안녕하세요. 질문 1.실무에서int number = 1; int* pointer = &number;*pointer = 1;둘 중 어느 형식을 많이 쓰나요? 질문 2.실제 포인터를 매개변수로 담는 함수와레퍼런스를 매개변수로 담는 함수 중 실무에서 무엇을 더 많이 쓰나요?
- 미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
temp질문
제가 이해하고있는게 맞나해서 강의 듣고 질문드립니다EnterLobby()함수에서Statinfo player라는 지역변수를 할당하고그 player라는 값안에다가 CreatePlayer()의 값을 넣는데 여기서 CreatePlayer()함수의 내부코드는마찬가지로 지역변수 ret생성후 ret.hp.. 이렇게 값을 할당해서 그값들을 리턴해주는데 그 리턴되는 값들이 바로 player값에 들어가는게 아니라 EnterLobby()함수에 지역변수(player와 temp?라는 메모장같은 변수가 있다고 할때)ret값이 temp에 옮겨지고 그 temp값이 player로 들어가는 과정이 맞는지 질문드립니다temp가 생성되는 이유하고 시점을 모르겠어서 정확히 이해한건지 모르겠네요그리고 또 하나 질문이 있는데temp라는건 저희가 알아듣기 편하게 임의로 지정한 변수 이름인건가요? 사실상 스택프레임의 할당된 어느 구역일 뿐인지 궁금합니다
- 해결됨[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
팩토리얼 함수 질문
처음 메인함수에서 factorial(5)를 실행하면팩토리얼 함수로 들어가서 return을 n * factorial(n - 1)이잖아요 그러면5 * factorial(4)니까 함수가 다시실행되서5 * 4 * factorial(3)이런식으로 계속 호출 되는건가요?그리고 리턴값이 왜 120이 나오는지 조금 헷갈립니다 처음factorial(5)를하면 5 * factorial(4)일텐데 이값을 리턴해주는게 아니고 또다시 함수가 호출되는거같은데 혹시 리턴값이왜 120이 나오는지 설명해주실 수 있으실까요 ㅠ
- 해결됨[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
매개변수랑 리턴주소 질문
영상에 매개변수랑 리턴주소는 이전함수가 세팅을 해준다고했는데 이게 도저히 무슨말인지 이해가 안갑니다처음 main함수가 스택프레임에 매개변수,리턴값,지역변수 이렇게 할당되고 메인함수안에서 또다른 함수가 실행되면 또 3종세트가 할당되는건 알겠는데 이전함수가 세팅을 해준다는게 무슨의미인가요??
- 미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
rsp값에 대해
강의 마지막 부분을 보면 add rsp, 16을 한뒤에pop rbxpop rax를 하셨는데요, 이과정에서 실질적으로 push 5, 2가 pop이 되지 않았는데도정상적으로 rbx에 값이 이전에 push했던 값으로 돌아오는것을확인 하였습니다. 그렇다면 현재 stack에 Top에 해당하는 주소값은 사실상 rsp라고 생각 되는데 맞는건지 궁금해서 질문 드립니다.
- 해결됨[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
가위바위보 질문(부동소수점 예외 코어덤프됨)
이렇게 뜨면서 승률이 안나오는데이문제가 나누기할때 0으로 나눠서 나오는 문제인걸로 아는데처음에 바로 실행하면 현재승률 없음이나오고 다음 가위바위보를하면 토탈에 값이 0이어서 그런거같은데 이부분을 어떻게 해결하면 좋을까요??
- 해결됨[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
별찍기 질문드려요
강의영상 8:40분쯤에 i + 1로 변경해서 쭉 출력이되었는데이 부분이 이해가 잘 안됩니다 그 이유가 처음 초기값이j = 0이고 i = 0인데 j변수 for문에서 j < i + 1을하면0 < 0 + 1 즉 0 < 1이 되어서 한번실행되고 j++를 해주고 다시 처음 for문으로 와서 i++가 되어있는데 그럼 다시j변수 for문에서 1 < 1 + 1이 될텐데 그럼 1 < 2인데 별 찍는 코드가 그럼 한번만 실행되는거 아닌가요? 2보다 작은 동안이니까 한번 실행되는거 같은데 왜 아닌지 궁금합니다
- 미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
생성자에서 new를 하는 건 안 좋은 습관이라고 하셨는데 그 이유가 무엇인가요?
얕은 복사 vs 깊은 복사 #1 15:50에서 생성자 안에서 new를 하는 건 안 좋은 습관이라고 하셨는데 그 이유가 무엇인가요?
- 미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
암시적 생성자 관련
암시적 복사 생성자는 암시적 기본 생성자와는 달리 명시적으로 기타 생성자를 만들어도 그대로 작동이 잘 되는 것 같은데문법 상으로 원래 이런 것인가요?그리고 다른 객체들의 경우 return 0; 이후에 소멸자를 호출하고 있지만Knight k5;k5 = (Knight)1;의 k5는return 0; 이전에 소멸자가 호출되는 것 같은데 이유가 무엇인가요?
- 해결됨[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
실수 계산 질문드려요
18:11분에 0.375를 구하는게 0.5 0 + 0.25 1 + 0.125 + 1이라고 하셨는데 비트가 오른쪽으로 있다고 계산해서 2배씩 줄어드는건 알겠는데 곱하기는 왜 0.5는 0을곱해주고 나머지는 1을 곱해준건가요??
- 해결됨[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
프로그램 질문드립니다
제가 현재 군복무중이라 비쥬얼 스튜디오를 설치 할려면 할 순 있는데 막 이상한 오류들이 떠서 설치를 막아논거같더라고요 그래서 구름ide같은걸로 강의 보면서 연습하고싶은데 꼭 비쥬얼 스튜디오를 사용해야할까요?? 너무 고민이 되네요 아니면 다른 c++컴파일러 프로그램을 다운받아서 하는것도 괜찮을까요??
- 해결됨[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
heap overflow 예시에서
예시를 똑같이 작성하고 실습하였는데 아무리 시도를 해도 HEAP CORRUPTION DETECTED라는 내용은 안 나오고 중단점 명령 실행됨(중단점 명령이 ....exe에서 실행되었습니다)이라고만 나오는데 이 2개가 동일한 의미인가요?
- 미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
포인터 관련 질문
안녕하세요 포인터 기초 #1, #2 들으면서 궁금한게 생겼습니다.전역 변수를 사용하면 쉽게 처리할 수 있는 부분들인거같은데 왜 굳이 어려운 포인터를 사용하는지에 대한 이유를 알고 싶습니다.
- 미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
이런 방식으로 로또 번호를 생성하는 것도 랜덤이라고 볼 수 있을까요?
void ChooseLotto(int numbers[], int count) { // 랜덤으로 1~45 사이의 숫자 6개.... 중복 없이 int lotto[45]; for (int i = 0; i < 45; i++) { lotto[i] = i + 1; } // 공을 섞는 과정 for (int i = 0; i < 1000; i++) { int randNum1 = rand() % 45; int randNum2 = rand() % 45; Swap(&lotto[randNum1], &lotto[randNum2]); } for (int i = 0; i < count; i++) { numbers[i] = lotto[i]; } }안녕하세요, 강의 잘 보고 있습니다. 저는 실습 풀이를 이렇게 했는데요.로또 추첨을 할 때 커다란 통에 공을 집어넣고 6개의 번호가 쓰인 공을 꺼낸다고 하면, 한 번 꺼낸 공은 다시 추첨기에서 나오지 않아야 한다고 생각했습니다.따라서 1~45의 값이 들어있는 배열을 선언하고, 해당 배열을 rand()와 swap()을 이용해 계속 반복하여 섞어주고, 마지막에 0번~5번 인덱스까지 6개의 수를 numbers 배열에 담아주었습니다.이런 방식으로 로또 번호를 생성하는 것도 랜덤으로 번호를 생성한 것이라고 볼 수 있을까요?
- 미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
스택 영역
스택 영역의 크기가 왜 컴파일 단계에서 결정되나요?프로그램이 실행하기 위해서 크기가 결정되어야 되는건가요?
- 해결됨[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
스택 프레임에서
지역변수의 경우에는 매개변수, 이전bp값과는 다르게push 명령어 없이도 스택에 저장되는 것인가요?만약 맞다면mov ebp, espsub esp, ..... 이후 어느 명령어를 통해서지역변수 c의 값이 스택에 저장된 것인지 궁금합니다.
- 미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
C++ 언리얼 과정 관련 질문드립니다.
안녕하세요. Rookiss님!게임 서버 개발자에 도전해보고 싶어서 Rookiss님 강의를 수강하게 되었습니다!그래서 서버 개발을 위주로 공부하고 싶은데 C++ 언리얼 과정 중에 있는 게임수학과 DirectX12 강의를 스킵하고 진행해도 다른 강의 진행에 문제가 없을지 서버 개발자로 취업하는데 문제가 없을지 질문드립니다!
- 해결됨[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
강의를 듣고 필기를 하였는데 블로그에 업로드가 가능한가요?
강의 총 2번듣고 개인적으로 노트에 루카스님이 설명하시는걸 필기 했는데블로그에 정리한 필기를 올려도 될까요? 프로그래밍 이란? 적절한 데이터를 저장하고 가공 / 데이터 + 로직데이터에는 rodata 영역 -> readonly datadata 영역 -> 0이 아닌 초기화 값이 있을 경우bss 영역 -> 초기 값이 0이거나 초기값이 없는 변수일 경우char -> 1바이트, short -> 2바이트 int -> 4바이트 , <언리얼엔진 경우 int32> __int64 -> 8바이트1Bit -- 최소 단위 , 8비트 -> 1바이트자료형별 숫자 범위char (-128 ~ 127) , short(-32768 ~ 32767) , int (-21.4억 ~ 21.4억)콘솔/모바일 게임 메모리가 늘 부족하여 바이트 단위로 관리가 필수예) 온라인 게임 4만명이 플레이 할시에 4바이트 * 4만명 데이터정수 오버 플로우, 정수 언더 플로우 -> 범위 초과시 생기는 오류char 의 경우 128을 입력할시에 정수 오버 플로우로 -127이 저장되는 현상이 발생함boolean -> 1,0을 가지는 1바이트 정수 어셈블리에는 bool이라는 것이 없다.연산의 최소 단위는 1바이트이다. 실수의 경우 프로그래밍에서는 실수값은 "근사값"이라 (==를 되도록 사용하지 말자)수가 커질수록 오차범위가 커진다!문자Char -> 알파벳 / 숫자 문자 / wchar_t 유니코드아스키 코드 : 숫자와 알파멧을 매핑함 (1,2,3,4,a,b,c,d,) 97=a유니코드 : 전세계 모든 문자에 대해 유일코드 매핑, 한국/중국어 = 가장많은 번호UTF8 : 알파벳, 숫자 1바이트 / 유럽문자 2바이트 / 한글, 한자 3바이트UTF16: 대부분 문자 2바이트, 고대문자 4바이트문자열: 문자들이 열을 지어서 모여있는것 (정수 1~8바이트 고정길이)문자열의 끝은 NULL(0) ('\0")정리 내용은 이런식의 제가 이해한 바탕으로 개인적인 필기 글로 작성해보고자 합니다괜찮을까요?