2
GMPのマニュアルによれば、「整数演算のための関数はすべての整数オブジェクトが初期化されていると仮定していますが、関数mpz_initを呼び出すことによって行います。例えばGMPの変数の初期化
、
int main(){
mpz_t n1, n2, result;
mpz_init_set_str(n1, "465860", 10);
mpz_init_set_str(n2, "167", 10);
mpz_init(result);
mpz_mod(result, n1, n2);
mpz_out_str(stdout, 10, result);
return 0;
}
あなたは上記のコードからmpz_init(result);
を削除する場合は、コンパイラがセグメンテーションフォールトエラーが生成されます。だから、私の質問は、正確にこれらの2つのタイプの定義の違いは:mpz_t result
とmpz_init(result)
です。 mpz_init
も必要ですか?
mpz_clearを忘れないでください!または、あなたのためにすべての魔法を行うC++インターフェイスを使用してください。 –