Hi.
I wrote a smart pointer struct (named ptr) as a linked list, like
this:
struct ptr{
int node;
ptr *next;
ptr(){}
ptr(int _node, ptr *_next){ node=_node; next=_next; }
};
struct list_t{
ptr *sht;
int size;
void push(int node){
size++;
sht=new ptr(node,sht);
}
}shthead[100001], comp[200001], tree[200001];
However, when I debugged the code in gdb, all the ptr*'s turned to
void*.
There is no compile error though I didn't ever know this problem when
coding, and I have to convert the void* to ptr* to view the data in it
in gdb.
I watched the type definition in gdb, below is the output of it:
(gdb) pt ptr
type = struct ptr {
int node;
void *next;
public:
ptr(void);
ptr(int, void *);
}
I'm using Linux, 32-bit, gdb 7.1, g++ 4.5.0.
There's no problem if I use g++ 4.4.3, also gdb 7.1.
And my code is compiled without any compilation flags but a -g.
GDB version info:
This GDB was configured as "i686-pc-linux-gnu"
Is there anyone knows the reason for this please?
Stone.
_______________________________________________
help-gplusplus mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/help-gplusplus