좋아, 그래서 아이폰에 대한 OpenGL ES 응용 프로그램에서 일하고, 그리고 흥미로운 문제가 만났습니다.포인터 계산 및 malloc'ed 배열 탐색
필자는 세부 수준과 구 좌표의 범위에 따라 구의 정점, 법선 및 텍스처 좌표를 계산하는 기능을 가지고 있습니다.
//After I figure out the size of the vertices:
GLfloat* vertices = (GLfloat *) (malloc(sizeof(GLfloat) * arraySize)));
//Later on when I'm computing vertices...
GLfloat* vertPosition = vertices;
vertPosition[0] = px;
vertPosition[1] = py;
vertPosition[2] = pz;
vertPosition += 3;
이 재앙으로 밝혀졌다 :
원래 배열에 정점을 저장하면이 같은 것을 보았다. 나는 & T 로고와 같은 것으로 끝났다. 조금 더 많은 작업 :-) 나는 카운터를 추가 발견하고 그 인덱스에 배열 고정 된 모든 사용 :
vertPosition[(vertexCount * 3) + 0] = px;
vertPosition[(vertexCount * 3) + 1] = py;
vertPosition[(vertexCount * 3) + 2] = pz;
vertexCount++;
내 질문이 있습니다 : 어떤 임시 포인터를 사용하고 전방을 움직이는 일이? 제가 지금 효율적으로 얻은 것입니까, 아니면 포인터 연산이 더 좋을까요?