如何在目标c中动态创建无符号字符类型数组

Posted

技术标签:

【中文标题】如何在目标c中动态创建无符号字符类型数组【英文标题】:how to create unsigned char type array dynamically in objective c 【发布时间】:2011-09-16 10:15:56 【问题描述】:

我想根据另一个 nsmutablearray 的值在目标 c 中创建一个无符号字符数组, 请帮帮我

unsigned char buffer2[24];
        buffer2[0] = 0X55; buffer2[1]=0x66; buffer2[2]=0x77; buffer2[3]=0x88; buffer2[4]=0x44;//print command
        buffer2[5] = 0X1D; buffer2[6]=0x6B; buffer2[7]=02; buffer2[8]=0x0D; 
        buffer2[9] = 0X35; buffer2[10]=0x30; buffer2[11]=0x30; buffer2[12]=0x30; buffer2[13]=0x33;
        buffer2[14] = 0X35; buffer2[15]=0x37; buffer2[16]=0x37; buffer2[17]=0x30; buffer2[18]=0x33;
        buffer2[19] = 0X30; buffer2[20]=0x31; buffer2[21]=0x38; buffer2[22]=0x37; buffer2[23]=0x30;

我想动态传递这个数组的值。

提前致谢。 希瓦姆

【问题讨论】:

如果@Nekto 提供的答案不是您想要的,请让您的问题更清楚。 【参考方案1】:

你可以使用C的malloccalloc函数:

int count = 24;
unsigned char *buffer = (unsigned char *)calloc(count, sizeof(unsigned char));

使用后别忘了释放它:

free(buffer);

简单示例:

NSMutableArray *array;
unsigned char *buffer = (unsigned char *)calloc([array count], sizeof(unsigned char));
for (int i=0; i<[array count]; i++)
    buffer[i] = [[array objectAtIndex:i] unsignedCharValue];
// use array
free(buffer);

【讨论】:

以上是关于如何在目标c中动态创建无符号字符类型数组的主要内容,如果未能解决你的问题,请参考以下文章

C语言 四种基本数据类型

ESP8266 WebServer如何流式传输无符号字符

printf()函数输出啥类型的数据?

如何在C中将无符号字符数组转换为十六进制字符串

值类型和引用类型

如何计算无符号字符数组中元素的平均值?