한번만 더 질문드립니다 ㅠㅠ
262
17 asked
void* pointer = malloc (sizeof (Monster));
Monster& m1 = *( ( Monster* ) pointer );
m1._hp = 100;
m1._attack = 10;
m1._mp = 5;
free (pointer);
이런식으로 해도 작동이 되는데 혹시 제가 이해한게 맞는건지 정확하게 이해 한듯 느낌이 팍 왔는데 확인할 방법이 없어서 이렇게 질문드려봅니다
일단 pointer 이부분이 반환값이 void 형 주소값을 반환받는건데 Monster 이부분은 클레스 타입이므로
Monster클레스 타입의 주소값을 Monster*로 포인터를 만들어 줬는데 이 주소값과 pointer 주소값이 서로 만들어진 형식이 한쪽은 void 고 한쪽은 class 이므로
Monster* m1 = (Monster*) pointer 이런식으로 하는이유가
pointer 가 void 형식의 주소값인건 아는데 지금은 Monster*값을 쓸꺼야 하고 괄호를 열어서 (Monster*)이라는걸로 확인시켜 줬기 때문에
Monster* m1에 정상적으로 이식이 된거고
여기서
참조 형태로 바꾸고 싶어서
Monster& m1으로 바꿨으니 void로 주소값을 반환 하는 pointer 가 참조형태로 탈바꿈? 하기 위해서 앞에 *을 하나 더 찍는방식으로 참조 타입으로 이식 됬다 라고 판단 되는데 그럼 처음 답변해주셨던 (Monster&)*((Monster*)pointer ) 이분부분에서 굳이 (Monster&)이부분은 삭제해도 어차피 (Monster*)이부분에서 class 탑입으로 바꾸겠다고 했으니 생략이 가능한게 아닌지 위에 코드도 동일하게 주소랑 값들이 다 나오는데 혹시 제가 착각하고 있는게 있는지 ......아니면 정상적으로 제가 생각한게 맞는지 궁금합니다 ㅠㅠ
질문이 길어져서 죄송합니다 열심히 공부해서 꼭 게임한번 만들어 보고 싶어서 문법 열심히 공부하는데 시골이라 학원도 없고 오직 온라인으로 밖에 공부할수 없는 이 슬픈 현실이 너무 절 괴롭게 합니다 ..... 소중한 시간을 항상 내주시는거에 대해 정말 감사드립니다
Answer 2
1
아니면 정상적으로 제가 생각한게 맞는지 궁금합니다 ㅠㅠ
네 정상적으로 생각하셨습니다. (Monster&)는 생략해도 됩니다.
잘 이해하셨는데 너무 스트레스를 받으시는군요 ㅎㅎ
하긴 포인터가 원래 좀 그렇긴 합니다.
원리를 알고 보면 굉장히 단순한건데~
처음 배울 땐 왜케 어려웠는지(?) 저도 모르겠네요.
위로의 차원에서 한 마디 드리자면,
저도 대학생 때는 포인터랑 C++이 너무 어려워서
(C++ = 뭐만 하면 크래시 나는 짜증나는 녀석)
코딩에 흥미를 잃고 대학교 과제만 깨작 깨작 제출하고 지내다가
대학원 때 와서 우연히 필요에 의해 게임 개발 공부를 하면서
다시 본격적으로 시작하게 되었습니다.
나이로 치면 28때 시작한거니, 아마 지금 시작하시더라도 저보다는 훨씬 빠르실거에요.
차근차근 하시면 뜻하시는 바를 이룰 수 있을거라 봅니다.
그리고 사실 학원이라고 해도 별거 없어요..
공부는 다 혼자 하는겁니다 화이팅
visualstudio에서 파일분할관리실습시 설정 문의를 드립니다.
0
541
1
정렬함수 좀 더 확실하게 이해 할 방법이 있을까요?
0
441
1
strcpy() 구현 관련 질문
0
513
1
빌드(망치)를 누르니 이런 오류가 떴습니다. 어떻게 해야 하나요?
0
452
1
클래스 타입의 포인터 질문합니다
0
546
1
입력값을 enum 값에 넣어주는거 이제 막혔나요?
0
497
1
템플릿 특수화 관련 질문
0
384
1
포인터 관련 질문합니다!
0
263
1
Unable to start assembler. Check your settings.
0
829
2
cpu선택
0
539
1
포인터 질문이 있습니다
0
322
1
20:35 에서 구조체 크기에 대한 질문입니다!
0
584
1
iterator 삭제관련
0
406
1
함수 호출을 디스어셈블러로 분석하다가 궁금점이 생겼습니다!
0
310
1
15 분 45초 대 질문
0
308
0
스택 프레임 질문합니다!
2
306
1
오른값 참조 in 게임
0
384
0
동적할당 질문이 있습니다
0
449
1
안녕하세요 메모리에 대해 질문드립니다.
0
304
1
함수객체 의 매개변수
0
358
1
복사생성자
0
434
1
main이나 endl 부분이 주황색으로 표시된건 어떻게 하나요
0
419
1
포인터 실습 강의를 보고 궁금한게 있습니다.
0
353
1
스택 오버플로우
2
790
1

