我在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
答案 0 :(得分:3)
sizeof
返回指针的大小,而不是指向它的数据。
但是,编译器处理sizeof,并且它不会根据malloc动态返回值,因此您不能使用sizeof
(或除{{1}之外的任何其他内容)仔细检查分配},它将返回一个等于或大于分配的数字,表示分配块大小。