これは、GMP 4.1.2のバグであるか、それは私が間違ってやっているものですか?

StackOverflow https://stackoverflow.com/questions/1124750

  •  13-09-2019
  •  | 
  •  

質問

このコードのビットに私は、文字列"kellogs special k"を通過し、私は、文字列が整数であることを意味1を得ます。私が間違っている地球上で何をしているのですか?それとも、GMPの問題ですか?

#define F(x) mpf_t (x); mpf_init( (x) );

long __stdcall FBIGISINTEGER(BSTR p1) {
    USES_CONVERSION;
    F(n1);
    LPSTR sNum1 = W2A( p1 );
    mpf_set_str( n1, sNum1, 10 );
    return mpf_integer_p( n1 );
}
誰もが、より最近のGMPを使用することをお勧めするつもりだ場合は、

ところで、あなたは私のWindows用の静的LIBのウェブアドレスを与えることができますしてください。 TIAます。

役に立ちましたか?

解決

あなたはmpf_set_strの戻り値をチェックする必要があります。これは、失敗した場合に成功と0-1を返します。このケースでは、失敗を返しているだろうとn1がそのまま残されています。 mpf_initがゼロに初期化するので、ゼロmpf_integer_p有する整数であるかどうかをテストするtrueを返す。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top