월 22,000원
5개월 할부 시다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
포인터vs배열 질문있습니다
제가 이해한게 정확한지 궁금해서 그러는데요예를들어 배열로 char[] a = "abcef";를 만들어 줬다고하면배열은 모든 문자를 한글자씩 밀어넣는다고 하면 char이 1바이트니까 제가 만든 배열은 NULL값도 포함해서 총 6바이트가 되는게 맞는건지 궁금하고요 만약 맞다면 그러면 int타입의 배열로 선언하면 예를 들어 char[] b = {1, 3, 4}로 선언하면 int는 4바이트니까 총 NULL값까지 16바이트의 크기가 되는건가요? 그리고 포인터는 32비트 혹은 64비트냐에 따라 무조건 4바이트 혹은 8바이트 고정크기인데이유는 포인터를 이용해서 문자열을 만들면 예를들어 "Hello World"를 넣는다고하면 먼저 데이터 영역 어딘가에 Hello World의 배열이 만들어지고 그 배열 첫번째 요소인 H의 주소를 가리키는 포인터다라고 해석했는데 맞을까요??
- 미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
배열에서 참조부분 질문드립니다
Statinfo& monster_2 = *(monsters + 2); monster_2.hp = 300; monster_2.attack = 6; monster_2.defence = 2; 이 부분에서 왜 포인터와 달리 *을 사용해야하는건지 이해가잘 안갑니다 포인터는 주소를 담는 바구니이니 monster + n만해도 되는거는 이해가 가는데참조가 이해가 잘 안갑니다 너무 헷갈리네요 혹시 다시 설명 해주실 수 있으실까요?? 주소를 참조하는 개념이 아닌가요??
- 해결됨[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의 값이 스택에 저장된 것인지 궁금합니다.