1
當我嘗試設置類對象的數據時,出現訪問衝突讀取位置。當我嘗試設置shared_ptr的值時,爲什麼我會訪問違反閱讀位置<T>元素
void make_heap_array()
{
//Example of ptr_arr is define: It's define in class variables: vector<shared_ptr<Data_Node<Item>>> ptr_arr;
int total_data = arr_data.size();
for (int i = 0; i < total_data; i++)
{
shared_ptr<Data_Node<Item>> new_node = shared_ptr<Data_Node<Item>>();
Item data = arr_data[i];
new_node->set_data(data); //Error: Access violation reading location
ptr_arr.push_back(new_node);
}
}
Data_Node是使用模板,一些方法類,這裏是它的代碼:
template <class Item>
class Data_Node
{
Item info;
public:
const Item& data() const
{
return info;
}
void set_data(const Item& new_data)
{
info = new_data;
}
};
你知道我該如何解決這個問題嗎? – Gaurav
@Gaurav:修復什麼?我不知道你的目標是什麼。也許構造一個持有對象的共享指針,例如與'make_shared'? –
好吧,我試圖讓Data_Node對象是shared_ptr。 – Gaurav