将 uint8_t 数组传递给方法
Pass uint8_t array to method
我有四个 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];
我有四个 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];