У меня небольшая проблема. У меня есть массив и его размер изменяется при переходе к c-функции из функции object-c.Цель C: Размер массива изменяется при переходе к другому методу
void test(game_touch *tempTouches)
{
printf("sizeof(array): %d", sizeof(tempTouches));
}
-(void)touchesEnded: (NSSet *)touches withEvent: (UIEvent *)event
{
game_touch tempTouches[ [touches count] ];
int i = 0;
for (UITouch *touch in touches)
{
tempTouches[i].tapCount = [touch tapCount];
tempTouches[i].touchLocation[0] = (GLfloat)[touch locationInView: self].x;
tempTouches[i].touchLocation[1] = (GLfloat)[touch locationInView: self].y;
i++;
}
printf("sizeof(array): %d", sizeof(tempTouches));
test(tempTouches);
}
Журнал консоли:
[touchesEnded] sizeof(array): 12
[test] sizeof(array): 4
Почему размер отличается в 2 методов?
В методе [test] возвращаемый размер всегда 4, не зависящий от исходного размера массива.
Спасибо.
связанные: http://stackoverflow.com/questions/720077/calculating-size-of-an-array – whunmr