2013-03-24 81 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