gpt4 book ai didi

objective-c - 如何将生成的数组从 c 函数返回到 objective-c

转载 作者:搜寻专家 更新时间:2023-10-30 20:00:37 25 4
gpt4 key购买 nike

需要在 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);

最佳答案

一个更自然的语义,比如 malloc() 本身是:

uint8_t * randomString()
{
uint8_t *randomString = malloc(10);
srand((unsigned)time(NULL));
for (unsigned i = 0; i < 10; i++)
randomString[i] = (rand() % 254) + 1;
return randomString;
}

关于objective-c - 如何将生成的数组从 c 函数返回到 objective-c,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13253920/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com