Extra zero byte converting mpz_t to a string
    Niels Möller 
    nisse at lysator.liu.se
       
    Mon Apr 20 05:14:04 UTC 2015
    
    
  
Hans Aberg <haberg-1 at telia.com> writes:
> The manual does not seem to say what should be used in the GMP
> deallocator length l argument if one wants it to always work, as in
> this code:
>   char* cs = mpz_get_str(NULL, b, z);
>   ..
>   free_function(cs, l);
> Possibly one should use l = strlen(cs) + 1, but then that has to be
> computed also when not used.
strlen + 1 is right. The documentation for mpz_get_str is quite explicit
about that:
     If STR is 'NULL', the result string is allocated using the current
     allocation function (*note Custom Allocation::).  The block will be
     'strlen(str)+1' bytes, that being exactly enough for the string and
     null-terminator.
Regards,
/Niels
-- 
Niels Möller. PGP-encrypted email is preferred. Keyid C0B98E26.
Internet email is subject to wholesale government surveillance.
    
    
More information about the gmp-bugs
mailing list