2013-03-24 108 views
0

我在動態聲明Objective-C中的GLfloat數組時遇到了一些問題。下面是一個C 頌歌我使用:GLfloat動態數組聲明

GLfloat *m_bindPositions; 

@implementation 

int nVerts   = [self m_countVertices]; 
m_bindPositions  = (GLfloat*)malloc((nVerts * 3) * sizeof(GLfloat)); 

nVerts在這個例子中等於6704.

,如果我是跑的sizeof(m_bindPositions)它應該返回80448.

目前,它的回報這使我相信內存的分配有錯誤,我不完全確定爲什麼。任何幫助將非常感激。

Thanks 

回答

3

sizeof在這種情況下返回的是指針的大小,而不是它指向的數據。

但是,編譯器是處理sizeof的東西,它不會動態地返回基於malloc的值,所以你不能再次檢查使用sizeof(或除malloc_size()之外的其他任何東西,這將返回一個數字等於或大於分配,代表分配塊大小。

+0

你打我一秒:-) – 2013-03-24 18:07:45