Memory allocation problem!
Torbjorn Granlund
tg at gmplib.org
Sun Sep 4 00:08:32 CEST 2011
"laojiang" <7850242 at qq.com> writes:
Hi, I have a problem,such as I definite a one dimension array, and allocate it memory, but it did not works:
int n0,i;
mpf_t *f_f0;
double *f0;
f_f0= ( mpf_t *)malloc(n0 * sizeof( mpf_t *));
f0= ( double *)malloc(n0 * sizeof( double *));
for (n = 0; n < n0+1; n++)
{
mpf_init(f_f0[n]);
}
for(i =0;i<n0+1;i++ )
{
xval[i] = cos(pih *(2.0 *(i+1)-1.0)/(n0+1));
}
for(i =0;i<n00;i++ )
{
mpf_set_d(f_f0[i],f0[i]);
}
When I run the code,the result is :
jwe0019i-u The program was terminated abnormally with signal number SIGSEGV.
signal identifier = SEGV_MAPERR, address not mapped to object
Error occurs at __gmpf_set
And when I change the code like this:
f_f0= ( mpf_t *)malloc(2*n0 * sizeof( mpf_t *));
It can works. Could you tell me the reason? Thanks in advance!
Is this school assignment?
I would suggest that you run your code under a debugger, or else
read it carefully to spot your programming mistake.
--
Torbjörn
More information about the gmp-discuss
mailing list