将uint8_t数组传递给方法

我有四个uint8_t数组:

 uint8_t arrayOne[12] = { 0x00,0x01,0x00,0x00,0x00,0x06,0xFE,0x03,0x01,0xC1,0x00,0x01 }; uint8_t arrayTwo[12] = { 0x00,0x01,0x00,0x00,0x00,0x06,0xFE,0x03,0x4E,0x2D,0x00,0x0C }; uint8_t arrayThree[12] = { 0x00,0x01,0x00,0x00,0x00,0x06,0xFE,0x03,0x01,0xF3,0x00,0x01 }; uint8_t arrayFour[12] = { 0x00,0x01,0x00,0x00,0x00,0x06,0xFE,0x03,0x20,0x04,0x00,0x01 }; 

我已将它们添加到数组中:

 uint8_t *theArray[] = { arrayOne,arrayTwo,arrayThree,arrayFour }; 

现在我想将此数组传递给方法,例如:

 [self theMethod:theArray]; 

至:

 -(void)theMethod:(uint8_t *)pointersArray[]{ ... ... } 

将数组指向方法的正确方法是什么 – (void)theMethod …?

这一行:

 uint8_t *theArray = { arrayOne,arrayTwo,arrayThree,arrayFour }; 

实际上是创建一个数组,其中包含指向转换为uint8_t值的数组的指针 。 我不认为这是你想要的。

首先(注意双指针):

 uint8_t *theArray[] = { arrayOne,arrayTwo,arrayThree,arrayFour }; 

然后你的ObjC方法变成:

 -(void)theMethod:(uint8_t **)pointersArray { } 

声明您的方法以获取指向数组指针的指针

 -(void)theMethod:(uint8_t **)pointersArray{ ... ... } 

通过像这样传递它来调用方法

 [self theMethod:&theArray];