F
Francogrex
Hi, how to I get this correctly? I am trying to cast the double
pointer a_double_ptr to an int pointer a_int_ptr. What I need is to
have the a_int_ptr dereferenced to 15. but it's not, it's
dereferencing to -858993459. I am sure I am doing something very wrong
but can't know how to fix it. Thanks. Code below.
int main ()
{
double a=15.65;
double* a_double_ptr = &a;
int* a_int_ptr= (int *) a_double_ptr;
return 0;
}
GDB:
(gdb) p a
$1 = 15.65
(gdb) p &a
$2 = (double *) 0x22ff40
(gdb) p &a_double_ptr
$3 = (double **) 0x22ff4c
(gdb) p a_double_ptr
$4 = (double *) 0x22ff40
(gdb) p *a_double_ptr
$5 = 15.65
(gdb) p &a_int_ptr
$6 = (int **) 0x22ff48
(gdb) p a_int_ptr
$7 = (int *) 0x22ff40
(gdb) p *a_int_ptr
$8 = -858993459
pointer a_double_ptr to an int pointer a_int_ptr. What I need is to
have the a_int_ptr dereferenced to 15. but it's not, it's
dereferencing to -858993459. I am sure I am doing something very wrong
but can't know how to fix it. Thanks. Code below.
int main ()
{
double a=15.65;
double* a_double_ptr = &a;
int* a_int_ptr= (int *) a_double_ptr;
return 0;
}
GDB:
(gdb) p a
$1 = 15.65
(gdb) p &a
$2 = (double *) 0x22ff40
(gdb) p &a_double_ptr
$3 = (double **) 0x22ff4c
(gdb) p a_double_ptr
$4 = (double *) 0x22ff40
(gdb) p *a_double_ptr
$5 = 15.65
(gdb) p &a_int_ptr
$6 = (int **) 0x22ff48
(gdb) p a_int_ptr
$7 = (int *) 0x22ff40
(gdb) p *a_int_ptr
$8 = -858993459