Я новичок в C++, так что несите меня.Невозможно заполнить вектор внутри структуры
Я сделал структуру, которая выглядит следующим образом:
struct node{
double startPoint;
double endPoint;
vector<node*> children;
void addChild(node *aNode){
children.push_back(aNode);
}
void addPoints(double start, double end){
startPoint = start;
endPoint = end;
}
};
вниз линии в моей программе, у меня есть следующие:
vector<node*> data;
....
node *temp = (node*)malloc(sizeof(node));
temp->addPoints(lexical_cast<double>(numbers[0]), lexical_cast<double>(numbers[1]));
data[index]->addChild(temp);
где «Index» является индексом вектора данных , вещи lexical_cast
принимают эти числа от строки до удвоений.
Все работает до линии addChild(temp)
.
Терминал выплюнуть это:
First-chance exception at 0x585b31ea (msvcr90d.dll) in Tree.exe: 0xC0000005: Access violation reading location 0xcdcdcdc1.
Unhandled exception at 0x585b31ea (msvcr90d.dll) in Tree.exe: 0xC0000005: Access violation reading location 0xcdcdcdc1.
Но я понятия не имею, как иметь дело с этим.
Есть ли причина, по которой вы используете 'malloc' вместо' new' для инициализации динамических переменных? – Kevin
Что сказал отладчик? – pm100