我正在为自己实现一个跳过列表,并且我遇到了一些C++问题。 我有两种结构:返回指向结构体并访问其字段的指针C++
的skiplist的节点 - 它保持其int值,和一个指针指向其他节点的数组。
struct node{ int val; node** next; };
跳过列表,其中包含指向列表头部和尾部的指针(标记)。
struct skiplist{ node *head, *tail; };
另外,我有,它返回一个指向skiplist结构(I使用该函数来初始化skiplist)的函数:
skiplist* createSkipList(){
skiplist* l = new skiplist;
node* listHead = new node;
node* listTail = new node;
node* headNext[MAX_LEVEL]; //array of pointers
listHead->next = headNext;
for(int i=0; i<MAX_LEVEL; i++){
listHead->next[i] = listTail;
}
l->head=listHead;
l->tail=listTail;
}
而在main()函数我拨打:
skiplist* skiplist=createSkipList();
一切正常,在createSkipList()
功能,但如果我想引用T中的skiplist他主要()通过访问skiplist->tail
该程序崩溃。 我一直在寻找相关的帖子,但他们没有帮助我。
如上所述in a similar post我不应该遇到晃动指针,因为我使用new
运算符来分配结构。 我将是任何提示感谢;)
你不''从'createSkiplist()'返回'l'。 – 2013-05-11 09:47:14
打开编译器警告,并停止浪费你的时间和其他人的时间。编译器会告诉你关于丢失的回报。 – 2013-05-11 10:24:06