1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | struct slime { int x, y; int speed; int hp; int state; }; int _tmain(int argc, _TCHAR* argv[]) { slime* slime_01; slime_01 = new slime; slime_01->speed = 99; ... return 0; } |
이렇게 구조체(or클래스)라던지 관련 정보를 담아서 포인터로 만들고
new로 할당해주고 쓰는 이유가 머임? 그냥 일반 변수로 선언해서 쓰는거랑 뭔 차이?
성능에 차이가 있음? 모야머야
메모리가 무한하지 않기 때문에 삭제 시점을 함수 종료( 지역 변수 )나 프로그램의 종료( 전역 변수 ) 시점이 아닌 프로그래머 / 사용자의 임의로 결정하기 위함이지.
그럼 프로그램 시작부터 끝까찌 사용한다는 전제면 그냥 일반변수로 만들어도 되겠넴?
모든 것을 전역변수로 만들어 쓰시면 됨미당 고갱님
동절할당이 정적할당보다 느려 할당할 때 - return 0;
접근도 조금 더 느림 - return 0;
ㄴ 꼭 그렇진 않음
접근은 오히려 힙이 더 빠를 수도 있음요. 힙을 사용하는 API / C-Lib 랑 혼용할 경우, 메모리 배치상의 문제로 인한 캐시 플로우 때문에.
오 그런 경우도 있군뇨 - return 0;
api에다 c-lib? c-lib가 뭐임? C라이브러리?
http://nstatic.dcinside.com/dgn/gallery/images/btn_re_1.gif
http://nstatic.dcinside.com/dgn/gallery/images/btn_re_1.gif