如果是来自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)
上面的代码似乎是疯子......任何人都可以帮忙吗?它在函数调用的 end 处给出一个EXC_BAD_ACCESS(关闭括号)。
标记
答案 0 :(得分:2)
mp_toradix(&a, &b, 10);
错了。它应该是mp_toradix(&a, b, 10);
正如附注所示,你正在泄漏分配给b的内存。