GLfloat动态阵列声明

时间:2013-03-24 17:38:26

标签: iphone ios objective-c xcode

我在Objective-C中动态声明GLfloat数组时遇到了一些问题。这是c 颂我正在使用:

GLfloat *m_bindPositions;

@implementation

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

此示例中的nVerts等于6704。

如果我要运行sizeof(m_bindPositions),它应该返回80448。

它目前返回4.这使我相信

的分配有错误 内存,我不完全确定为什么。任何帮助将不胜感激。

Thanks

1 个答案:

答案 0 :(得分:3)

在这种情况下,

sizeof返回指针的大小,而不是指向它的数据。

但是,编译器处理sizeof,并且它不会根据malloc动态返回值,因此您不能使用sizeof(或除{{1}之外的任何其他内容)仔细检查分配},它将返回一个等于或大于分配的数字,表示分配块大小。