Objective c NSData到无符号字符*

Objective c NSData到无符号字符*,objective-c,Objective C,我需要将NSData转换为类似于无符号字符b[16]的内容。这就是我目前所拥有的 NSData *c = [@"testingsomething" dataUsingEncoding:NSUTF8StringEncoding]; unsigned char *a = (unsigned char *)[c bytes]; NSLog(@"size of a is %ld", sizeof(a)); unsigned char b[16] = "testingsomething"; NSLog(@

我需要将NSData转换为类似于
无符号字符b[16]
的内容。这就是我目前所拥有的

NSData *c = [@"testingsomething" dataUsingEncoding:NSUTF8StringEncoding];
unsigned char *a = (unsigned char *)[c bytes];
NSLog(@"size of a is %ld", sizeof(a));
unsigned char b[16] = "testingsomething";
NSLog(@"size of b is %ld", sizeof(b));
我得到的输出是

size of a is 4
size of b is 16

我该怎么做?非常感谢您的帮助。

首先,
sizeof
为您提供了指针大小,因为您为它提供了指针类型的对象。在第二个实例中,它给出了数组的大小,因为您给出了
sizeof
数组类型的对象。在C语言中,指针和数组通常是可互换的,但它们仍然被认为是不同的类型,并且具有不同的语义


如果要将字节复制到自己的缓冲区,请使用
NSData
的方法。或者,如果您试图以特定编码获取字符串的字节表示形式,请查看
NSString
的方法。

首先,
sizeof
为您提供指针大小,因为您为它提供了指针类型的对象。在第二个实例中,它给出了数组的大小,因为您给出了
sizeof
数组类型的对象。在C语言中,指针和数组通常是可互换的,但它们仍然被认为是不同的类型,并且具有不同的语义

如果要将字节复制到自己的缓冲区,请使用
NSData
的方法。或者,如果您试图获取特定编码中字符串的字节表示形式,请查看
NSString
的方法