我正在爲自己實現一個跳過列表,並且我遇到了一些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