0
Ich möchte einen Prozess mit Daten in SimGrid erstellen, so dass ich dies tun:Wie erstellt man einen Prozess mit Vektor in SimGrid?
int worker(int argc, char *argv[])
{
vector<string> vector1;
vector1.push_back("word");
MSG_process_create("x", executor, &vector1, MSG_host_self());
return 0;
}
Aber in executor
ich einen Segmentation Fehler haben:
int executor(int argc, char* argv[]){
MSG_process_sleep(10);
vector<string> *data = (vector<string>*) MSG_process_get_data(MSG_process_self());
XBT_INFO("%s", data->front().c_str());
return 0;
}
Ich weiß, dass es passiert ist, weil vector1
aus geht der Bereich, wenn worker
Funktion endet und vector1
verschwand, so "es gibt keine Vektor1 Daten" in Executor.
Wie wird es richtig gemacht?