Мой узел содержит переменную int и строчную переменную, и я попытался использовать двоичное дерево поиска. код выглядит следующим образом:инициализация массива строки в двоичном дереве поиска
struct node{
int a;
string members[5];
};
int main(){
node * root = NULL;
root = (node*)malloc(sizeof(node));
root->members[0] = "aaaaa";
return 0;
}
конечно, мой код был не совсем так, я сделал это короткое замыкание в основном, потому что я хочу показать только эту проблему. он дал мне «место записи нарушения прав доступа». Я попытался использовать 'new node();' вместо malloc, и этого не произошло. почему это точно?
Я получаю его сейчас: D, поэтому проблема в том, что строка - это класс. Я упустил из виду важный факт здесь. спасибо: D – Rei
@Rei: на самом деле, концептуально все объекты в C++ должны быть построены с помощью 'new'. Для определенных типов (POD) он также работает, чтобы просто выделить память, но нет ничего неправильного 'new'ing этих объектов, и сделать это на самом деле проще, чем использование' malloc() '. –