我的節點包含一個int和一個字符串變量,並且我嘗試使用二叉搜索樹。代碼如下:初始化二叉搜索樹中的字符串數組
struct node{
int a;
string members[5];
};
int main(){
node * root = NULL;
root = (node*)malloc(sizeof(node));
root->members[0] = "aaaaa";
return 0;
}
當然
,我的代碼是不完全一樣的,我把它短主要是因爲我想只顯示問題。它給了我'訪問衝突寫入位置'。我嘗試使用'新節點();'而不是malloc,那沒有發生。爲什麼這是完全的?
我現在明白了:D所以問題出在那裏,因爲string是一個類。我忽略了一個重要的事實在這裏哈哈。謝謝:D – Rei 2014-11-08 02:50:57
@Rei:實際上,從概念上講,C++中的所有對象都需要用'new'來構造。對於某些類型(POD),它也可以分配內存,但是這些對象的新屬性並沒有什麼錯,實際上這比使用'malloc()'簡單。 – 2014-11-08 02:54:14