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 help-gplusplus@gnu.org http://lists.gnu.org/mailman/listinfo/help-gplusplus