需要在 c 函数中生成一些随机的 10 字节长度的字符串,并从 Objective-c 中调用该函数。因此,我正在创建一个指向 uint8_t 的指针并将其传递给 C 函数。该函数生成随机字节并将它们分配给 *randomString。但是,从函数返回到objective-c 后,randomValue 指针指向NULL。
这是我在 C 中的随机函数:
void randomString(uint8_t *randomString)
{
randomString = malloc(10);
char randomByte;
char i;
for (i = 0; i < 10; i++) {
srand((unsigned)time(NULL));
randomByte = (rand() % 255 ) + 1;
*randomString = randomByte;
randomString++;
}
}
这是objective-c部分:
uint8_t *randomValue = NULL;
randomString(randomValue); //randomValue points to 0x000000
NSString *randomString = [[NSString alloc] initWithBytes:randomValue length:10 encoding:NSASCIIStringEncoding];
NSLog(@"Random string: %@", randomString);