0

如果涉及从objective-c和c本身来回转换的字符串,我是一个c-noob。我想将字符串转换为 mp_int 并返回。我正在使用的库是libtommath,方法签名如下。

mp_int a;
mp_init(&a);

int res = mp_read_radix(&a, "3493483984238472398423742344793247923648234", 10);
NSLog(@"%i", res);

unsigned char *b = malloc(255);
mp_toradix(&a, &b, 10);

NSString *c = [[NSString alloc] initWithCString:b encoding:NSASCIIStringEncoding];

NSLog(@"--%@", c);

方法签名:

int mp_init (mp_int * a)
int mp_read_radix (mp_int * a, const char *str, int radix)
int mp_toradix (mp_int * a, char *str, int radix)

上面的代码似乎很疯狂......有人可以帮忙吗?它在函数调用结束时给出 EXC_BAD_ACCESS(右括号)。

标记

4

1 回答 1

2

mp_toradix(&a, &b, 10);是错的。它应该是mp_toradix(&a, b, 10);


作为旁注,您正在泄漏分配给 b 的内存。

于 2012-06-11T20:10:29.097 回答