게시판 즐겨찾기
편집
드래그 앤 드롭으로
즐겨찾기 아이콘 위치 수정이 가능합니다.
메모리 질문 (C)
게시물ID : programmer_20583짧은주소 복사하기
작성자 : DJ.A
추천 : 0
조회수 : 451회
댓글수 : 3개
등록시간 : 2017/05/17 01:49:36
옵션
  • 본인삭제금지


서로 다른 크기의 텍스처를 화면 안에 두개 이상 그리라는 과제가 나왔는데요..

샘플 소스를 보니 texture [256][256][4] 이런식으로 256X256크기의 텍스처를 넣을 크기를 확보하더라구요.

그래서 이런 텍스처 변수를 몇개나 선언하느니, 포인터를 배열로 선언해서, 각 배열에 확보한 크기만큼의 메모리주소(선두부분)를 넣으면 되지 않을까? 생각했는데요.


int *texture[5];
texture[0]=(int)malloc(256*256); //256X256 크기의 주소 확보
texture[1]=(int)malloc(512*512); //512X512 크기의 주소 확보
.....


요런식으로 해서 여러가지 크기의 텍스처를 texture라는 포인터 변수 하나로 관리하면 좀더 코드가 깔끔해지지 않을까 생각했는데요,

이 방법대로 해도 문제는 없을까요?


그리고 질문하다가 문득 든 생각인데,

저런식으로 포인터 배열에 넣으면, 포인터 배열 상으로는 순서대로 들어가 있는것 처럼 보이지만,

저 각 배열 실제 메모리 주소들이 서로 연속해서 배정?받는다는 보장은 없겠죠?  

예를 들자면 메모리주소 0x01~0xFF까지 메모리 주소가 있다고 하고, 이중에 텍스처크기가 8비트 2개, 16비트 2개라고 치면,

0x01~0x08, 0x09~0x0F,0x10~0x1F,0x20~0x2F  이렇게 연속으로 메모리주소가 배정이 되는지.. (아무런 처리도 안했을 때)

그리고 연속으로 배정이 안된다고 하면, 연속으로 배정시킬 수 있는 방법이 무엇이 있을까요??

질문이 좀 복잡하게 나왔는데, 답변주시면 정말 감사하겠습니다.



전체 추천리스트 보기
새로운 댓글이 없습니다.
새로운 댓글 확인하기
글쓰기
◀뒤로가기
PC버전
맨위로▲
공지 운영 자료창고 청소년보호