Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/163.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ GMP中从mpf_t到char*str的转换_C++_Segmentation Fault_Gmp - Fatal编程技术网

C++ GMP中从mpf_t到char*str的转换

C++ GMP中从mpf_t到char*str的转换,c++,segmentation-fault,gmp,C++,Segmentation Fault,Gmp,我在mpf\t res中存储了一些值,并试图将其复制到char*my\u res。我在中找到了这个mpf\u get\u str函数,并尝试了以下代码: char* my_res; mpf_t res; // give res some value mpf_get_str(my_res, NULL, 10, 230000, res); 这给我带来了分段错误(内核转储)错误。我有一段时间没有用C++了,有人能给我简要介绍一下吗?谢谢 由于未分配my\u res,因此您正在写入随机地址。首先尝

我在
mpf\t res
中存储了一些值,并试图将其复制到
char*my\u res
。我在中找到了这个
mpf\u get\u str
函数,并尝试了以下代码:

char* my_res;
mpf_t res;

// give res some value

mpf_get_str(my_res, NULL, 10, 230000, res);

这给我带来了
分段错误(内核转储)
错误。我有一段时间没有用C++了,有人能给我简要介绍一下吗?谢谢

由于未分配
my\u res
,因此您正在写入随机地址。首先尝试创建一个缓冲区<代码>字符buf[x]字符缓冲区[sizeof(mpf_t)*230002]不应该工作?我得到了同样的错误。你应该包括使用缓冲区的全部代码。另外,快速阅读文档时,我发现缓冲区应该指向一个n_位+2字节的块。在你的例子中,它的代码< 230000 + 2 < <代码> >代码> 230002 > <代码> sieof(MPFYT)*230002 < /C>。如果你正在做C++,你应该使用一个现有的C++包装器来进行GMP。在gmpxx.h中,有一个GMP附带的mpf_类,您可以很容易地从中获得std::string。