0
我有一個頭文件,我在這裏定義方法。我最終試圖實現一個雙向鏈表來存儲對的數據。 這是cont.h訪問結構時出現分段錯誤
template <class Key, class T> class storage;
template < class Key, class T, class Compare = std::less<Key> >
class cont{
private:
storage <Key, T> data;
public:
typedef size_t size_type;
typedef Key key_type;
typedef T mapped_type;
//default constructor
cont(){}
cont(key_type k, mapped_type m)
{
std::pair<Key, T> x = std::make_pair(k,m);
data.begin_list(x);
//std::pair<Key, T> a = std::make_pair(k,m);
//data.push(a);
}
};
template <class Key, class T>
struct node
{
node *prev, *next;
std::pair<Key, T> node_data;
};
template <class Key, class T>
class storage{
private:
node <Key, T> *head;
node <Key, T> *tail;
node <Key, T> *curr;
int size;
public:
//default ctor
storage(){}
void begin_list(std::pair <Key, T> h)
{
size=1;
//bottom two lines induce segmentation fault
//head->node_data=h;
//head->prev=NULL;
}
};
main.cc看起來就像這樣:
#include "cont.h"
int main() {
cont<double, int> s(6.6, 3);
}
我不明白爲什麼我得到段錯誤。我應該爲每個節點動態分配內存嗎?
'我應該爲每個節點動態分配內存嗎?'當然你應該。 – john 2013-05-04 19:52:42