0

我在 Objective-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。

它目前返回 4。这让我相信分配有错误

记忆,我不完全确定为什么。任何帮助将非常感激。

Thanks
4

1 回答 1

3

sizeof在这种情况下,返回指针的大小,而不是指针指向的数据。

但是,编译器是处理 sizeof 的,它不会基于 malloc 动态返回值,因此您不能使用sizeof(或除 之外的任何其他东西,malloc_size()它将返回等于或大于allocation,表示分配块的大小。

于 2013-03-24T17:48:02.220 回答