What's the difference between?
delta trinity
deltatrinity at hotmail.com
Mon Dec 6 15:03:53 CET 2004
>From: <nimzeros at naver.com>
>Reply-To: nimzeros at naver.com
>To: <gmp-discuss at swox.com>
>Subject: What's the difference between?
>Date: Sat, 4 Dec 2004 10:09:06 +0900 (KST)
>
>What's the difference between
>mpz_set_str(p,"12423141325145251512521512343434343434",10) and
>mpz_set_str(p,1242314132514525151252151234343434343434,10) ?
>
>It is only difference of "". When I compiled with the second thing, 64bit
>error happened , but when I used the first thing, there was no error.
>
>If I use mpz_set_str(p,"1242314132514525151252151234343434343434",10), is
>p=12423141325145251512521512343434343434?
mpz_set_str second parameter is a pointer to a null terminated string. If
you pass a quoted string, the compiler will create a null-terminated string
in the code/data space, and at runtime, the value passed is a pointer to
that string. If you specify unquoted string, the compiler will think that
this is an explicit pointer value. It will pass the number you specify
(truncated to 32 bits in a 32 bits system) as the pointer value. What is at
that address is usually garbage. Unexpected result may occur, and in a
protected system, this is most likely to generate a protection fault
exception.
Deltatrinity
More information about the gmp-discuss
mailing list