월 22,000원
5개월 할부 시다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
함수형식에 대해서 궁금합니다
함수형식에 대해서 궁금합니다현재 c++ 강의 함수쪽 단원을 배우고있는데요 void main (float a, float b);{~}이런 형식으로 가르쳐주셨고 c++에서 잘 써먹고 있습니다. 인터넷에서 c++ 이 아닌 쉐이더코드쪽을 보면 void main (out vec4 a, in vec2 b){~} 이렇게 되어있는 것도 있더라구요.왜 오른쪽에 out 과 in 이 공존하는건가요?c++과 glsl 의 문법의 차이인건가요?
- 해결됨[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
delete[] 할때 소멸자 실행 순서
delete[]를 통해 다수의 클래스를 지울 때 실행되는 소멸자의 실행순서는 고정인가요?제 컴퓨터 환경에서의 한 간단한 실험에서는 생성순서의 역순으로 소멸자가 실행었습니다만 다른 상황에서도 그러한 방식이 유지될것이라는 확신을 얻을수는 없었습니다.delete의 내부동작방식이 cpu에 따라, 컴파일러에 따라 상이하게 동작할 여지가 있나요? 다시 말해 delete는 자기결정적인가요?
- 해결됨[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
visualstudio에서 파일분할관리실습시 설정 문의를 드립니다.
안녕하세요. rookiss 강사님. c++ part1 파일분할관리 단원설명과 관련하여 실제 실습시 환경설정문제로 실행이 제대로 안되는 문제를 해결하고자 질문을 올리게 되었습니다.c++ 파트1 파일 분할관리 단원에서 test1.cpp, test.h, cpp_study.cpp로 파일을 분할해서실제 실행해보는 과정에서 다음의 문제점을 발견할 수 있었습니다.hello world가 안뜨는 문제점을 발견하여, 이 문제점이 무엇인지 일단 파악하고자 break point를 걸어서 디버깅을 해보았습니다. 특이한건 f11로 void Test_2()함수를 타고 가보고자 시도를 하였으나 무슨 이유인지는 모르지만 컴파일러가 void Test_2()를 지나가고 바로 return 0;으로 가는 것을 확인할 수 있었습니다.이게 왜 그런지 모르다보니 구글에서 해당 사례가 있는지를 검색하였으나 검색을 해도 저와 비슷한 사례가 나오지 않다보니, 다시 강사님의 강의를 보던 도중 한가지를 확인할 수 있었습니다.왠지 지금 네모로 체크한 설정여부 유무가 문제가 아닐까 조심스럽게 추측해보았습니다.이 설정은 어떻게 할 수 있는지 문의드립니다.혹시라도 비슷한 사례를 경험하신 분들이 계시면 답변을 부탁드리고자 합니다.
- 미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
정렬함수 좀 더 확실하게 이해 할 방법이 있을까요?
핵심을 말하자면정렬함수 풀이과정을 하나하나 써보고디버그로 확인해봐서 알겠는데..뭔가 명확하게 머리에 들어오질 않습니다..구구절절 써보자면요처음에 정렬함수 만들떄비교를 위해 두개의 반복문이 필요하고작은 값을 저장할 변수가 필요하고비교를 위한 조건문이 필요하고작은 값을 변수에 저장하고 위치를 섞어 준다 까진 생각을 했는데두번쨰 반복문 조건부분과비교하는 부분의 코드구현을 못하겠더라구요..이유가 저는 문제를 있는 그대로 안보고혼자 작은 값을 아직 모르니 값을 다 비교를해야된다고 생각해서 반복문 두개를 다0번쨰부터 시작하니까 1과 다른 숫자를 비교하니 진행이 안되더라구요..그래서 풀이과정을 봤는데 이해가 안가서실행순서와 풀이과정을 메모장에 하나하나적고 디버그 모드로 확인해가면서 봤는데도아직 이해가 잘 안됩니다..더 문제는 뭐가 정확하게 이해가 안되는지를 모르겠어요..어떻게 동작하는지를 알겠는데머리속은 명확하게 이해를 못한거 같으니미칠꺼 같아요..제가 왜 이해를 못할까요?비교하는 조건 쪽을 제가 이해를 못하는거 같은데왜 if (numbers[b] < numbers[tx]) 일까..하나하나 실행순서를 전개해보고 반대로 했을떄 어떤지 해봐서 왜 if (numbers[b] < numbers[tx]) 인지는알겠는데.. 왜 머리에 안들어 올까요..뭘 더 해봐야 될까요..
- 해결됨[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
strcpy() 구현 관련 질문
포인터로 strcpy()를 구현할 때,1 char* StrCpy(char* dest, const char* src)2 {3 char* ret = dest;4 while (*src != '\0')5 {6 dest = src;7 dest++;8 src++;9 }10 *dest = '\0';11 return ret;12 }dest 포인터 변수를 반환하면 main 함수에서 출력 시 아무것도 출력 되지 않고, 3번째 줄처럼 dest 주소를 다른 char형 포인터에 저장하고, 해당 포인터 변수로 main함수에 반환을 해야 정상적으로 출력이 됩니다.어떤 이유에서 dest 포인터 변수는 출력이 안되는지 모르겠습니다.
- 미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
빌드(망치)를 누르니 이런 오류가 떴습니다. 어떻게 해야 하나요?
어떠한 경로에서 파일 혹은 디렉토리를 찾지 못한다는 것 같은데 어떻게 해결 할 수 있나요?
- 미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
클래스 타입의 포인터 질문합니다
class Knight(){public:void GetHp(){}}int main(){(1) Knight k1k1.GetHp()(2) Knght *k1k1->GetHp()함수를 호출할 때 멤버 함수 같은 경우 어떤 특정 객체의 주소를 넘겨주는 것까지 포함하고 있는 규약을 따르고 있고 마치 포인터와 유사하듯이 k1의 주소 즉 Knight의 스택 주소를 넘겨줘서 멤버 함수 내부에서 자기 자신의 정보를 수정할 수 있다고 알고 있습니다 .k1이 포인터 타입일 경우와 아닐 경우 둘 다 Knight의 주소를 담고 있지만 큰 차이점으로는 k1은 Knight의 스택 주소를 갖고 있고, 그 스택 영역이 끝나면 k1으로 더 이상 Knight의 접근할 수 없고*k1은 Knight의 힙 영역에 주소를 갖고 있는 것이 큰 차이점이라고 보면 될까요?int a=1 int *b=&a 그리고 포인터는 b의 변수에 a의 주소를 갖고 있고 그 주소를 타고 가면 int타입이 있을 것이라고 했는데 Knight *k1는 k1의 어떤 주소가 담겨 있는데 그 주소로 가면 Knight 타입이 있다는 의미인데 k1의 어떤 주소를 갖고 있는지 명시하지 않아도 Knight의 주소를 갖고 있을 것이라고 어떻게 아는 것일까요?
- 미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
입력값을 enum 값에 넣어주는거 이제 막혔나요?
7:20 분 처럼입력값을 enum 값에 넣어주려고 하는데'형식 이름을 사용 할 수 없다' 라고 뜨는데막힌건가요??오류문 온라인 검색해기랑구글에 영어로 검색해봐도관련 자료 뜨는게 없는데..이럴떈 어떻게 검색하는게 좋을까요??
- 해결됨[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
템플릿 특수화 관련 질문
안녕하세요. c++ 강의 중 "템플릿 기초 #1" 듣다가 질문이 생겨 남깁니다.템플릿 특수화가 필요한 이유를 모르겠습니다. 아래 두 코드를 비교했을 때 굳이 템플릿 특수화를 해야 하는 이유가 무엇인가요? 또, 템플릿 특수화가 필요한 상황은 어떤 상황이 있나요??<템플릿 특수화 사용한 경우>template<typename T> void Print(T a) { cout << a << endl; } template<> void Print(float a) { cout << "템플릿 특수화" <<endl; cout<< a << endl; }<오버로딩 사용한 경우>template<typename T> void Print(T a) { cout << a << endl; } void Print(float a) { cout << "템플릿 특수화" <<endl; cout<< a << endl; }컴파일러에 돌려보니 결과도 똑같이 나옵니다. 너무너무 궁금합니다ㅠㅠ 감사합니다.
- 미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
포인터 관련 질문합니다!
배열을 포인터 변수로 받을 때 포인터 변수는 배열의 시작 주소를 갖고 있는 변수로 알고 있습니다! 예를 들어 배열의 시작 주소를 담고 있는 포인터 변수가 *str이라면근데 함수 내부에서 배열에 인덱스 값에 접근할 때 str[i] 접근하는데 포인터 변수를 어떻게 배열처럼 사용할 수 있는지 그 원리를 잘 모르겠습니다..!
- 미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
Unable to start assembler. Check your settings.
이 에러가 뜬 경우에는 https://github.com/Dman95/SASM/releases/download/v3.12.1/SASMSetup3121.exe이 버전을 다운로드 받은 후, 세팅에서 에셈블리 옵션을 아래처럼 변경해주시면 됩니다.-g -f win64 $SOURCE$ -l $LSTOUTPUT$ -o $PROGRAM.OBJ$
- 미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
cpu선택
제가 인텔 cpu로 컴퓨터를 사려고했는데 언리얼에서는 인텔cpu의 p코어가 파킹되는 현상이있다하더라구요 라이젠을 사는것이 좋을까요?현업에서 사용하는 cpu가 궁금합니다.
- 미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
포인터 질문이 있습니다
포인터 값을 증가시키면 해당 포인터 자료형만큼 주소가 이동한다고 했는데요!(ex. int* 면 4byte씩, char* 면 1byte씩)근데 스택프레임에서의 주소 이동은 32bit면 4byte, 64bit면 8byte 단위로 이동하는걸로 알고 있는데, char* 형 이동 단위인 1byte씩 움직이는것도 가능한건가요???ex.char number = 1;char* pointer = &number;pointer += 2;만약 위처럼 코딩이 되어있을 때, 메모리를 까보면 pointer 주소값이 2byte 증가해 있는데, 이렇게 되면 32bit 기반 스택프레임에서 4byte의 절반인 0.5블럭만 갖게 되는 건가요????
- 미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
20:35 에서 구조체 크기에 대한 질문입니다!
구조체 자료형이 뭐든간에 변수 하나당 4byte로 스택 프레임에 공간을 확보한다고 하는데, 그러면 굳이 자료형을 선언하는 의미가 무엇인가요?그리고 4byte로 스택 프레임에 할당하면 이 변수가 자료형이 몇인지 어떻게 아나요?
- 미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
iterator 삭제관련
iterator 삭제 관련 질문입니다.for 문에서 v.erase(it)를 이용하면 해당 공간에 iterator 정보가 사라져 다음 순번때 에러가 발생합니다.for문을 사용하지 않고 erase를 동일하게 2번 적용할 경우 이떄는 정상적으로 작동합니다. v.erase(v.begin() +2); v.erase(v.begin() +3);두 가지 방식이 삭제하는 방식이 같다고 생각되는데 무슨 차이가 있는지 궁금합니다. 감사합니다.
- 미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
함수 호출을 디스어셈블러로 분석하다가 궁금점이 생겼습니다!
함수 호출을 하다가 리턴하기 전에 eip가 널이 되면 어떻게 동작하는지 궁금해서 한번 시도해봤는데요.예를 들면 main() 함수에서 A() 함수를 호출하고 또 A() 함수에서 중간에 B() 함수를 호출하는데B() 함수를 리턴하기 전에 eip 값을 0x00000000과 같은 널 값으로 고쳐보았습니다. 이렇게 하면 리턴하고나서 뭔가 에러?엑세스 위반? 이라는 게 뜨는 것 같더라구요근데 만약 이렇게 해서 엑세스 위반이 났을 때 어떤 함수를 호출할 때 잘못됐는지 디버깅 상에서 추적하려면 어떤 순서로 추적해야하는지 궁금합니다!
- 미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
15 분 45초 대 질문
int MultiplyBy2(int a){ int result = a * 2; return 0;}이 부분에서 return 0 값을 왜 result 로 바꿔 줘야하는건가요? 혹시 a * 2로 바뀐 값을 리턴으로 보내줘서 선생님의 설명과 같이 a * 2 를 보내줘야 하기에 result를 넣는건가요?
- 미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
스택 프레임 질문합니다!
함수 영역 스택 프레임이 [매개변수][RET][지역변수] 이렇게 세팅 되어 있다고 알려주셨는데요!다음 함수를 호출 할 때 매개변수 값만 넘겨주는 것이지 매개변수 주소와 주소 반환 값 주소는 여전히 이전 함수에서 스택 프레임 영역에 있고 다음 함수는 다시 스택 프레임 영역을 지정하고 지역변수 주소는 온전히 자기 영역에서 관리하는 것이라고 이해하는 것이 맞을까요?그리고 넘어온 매개변수 값을 사용할 때 해당 함수 지역변수로 봐야 할까요?그리고 다음 함수에서 스택 프레임 영역을 지정할 때 왜 이전 함수 베이스 포인터 주소를 저장하는지도 궁금합니다.
- 미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
오른값 참조 in 게임
좋은 강의 항상 감사합니다!오른값 참조를 영상을 다보고 드는 생각이 게임에서 내 캐릭터 정보를 다른 서버로 이전하고 싶은 경우, ex) 메이플스토리 : 버닝섭 -> 타서버로 월드리프내 캐릭터 정보를 해당 서버로 복사하고 본래 서버에 있는 캐릭터를 삭제하는 것보다, 오른값 참조처럼 이동시키면 캐릭터 정보가 이전되는 것과 본래 서버에서 내 캐릭터가 삭제되는 것까지 해결될 것 같다고 생각이 들었는데!!실제로 캐릭터 정보를 다른 서버로 이동시키는 작업에서 오른값 참조가 사용되는 것인가요??
- 미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
동적할당 질문이 있습니다
배열이 아닌 그냥 클래스 객체 같은 경우에 동적 할당은 왜 필요한가요?CTest* test1 = new CTest();CTest test2;이러한 경우에 포인터를 이용한 동적할당이 갖는 이점은 뭔가요??그리고 void* 에서 void는 auto 같은 개념으로 이해하면 되나요?