I am trying to store a value from a
vector<vector<string>> data;
into a const char* variable - declared in the .h file - in this way:
heightmapName = data[0][1].c_str();
When I debug the program I notice that the variable heightmapName return this
heightmapName 0xcdcdcdcd <Error reading characters of string.> const char *
However, if I declare a new const char* and initialize it like this:
const char* what = data[0][1].c_str();
heightmapName = data[0][1].c_str();
what variable store the data just fine, while heightmapNamedoesn't.
This is the function:
void Configuration::fileParser(string fileName)
{
vector<vector<string>> data;
string line;
string delimiter = " ";
ifstream ss(fileName);
if (ss)
{
while (getline(ss, line))
{
vector<string> dataLine;
string token = line.substr(0, line.find(delimiter));
string value = line.substr(line.find(delimiter) +1);
dataLine.push_back(token);
dataLine.push_back(value);
data.push_back(dataLine);
}
ss.close();
}
//storeData(data);
const char* ahah = data[0][1].c_str();
heightmapName = data[0][1].c_str();
}
Why is this happening? and how can I solve this?
ps. I am using visual studio 2017
datais initialized, used, filled with data, etc.heightmapNameis undefined. It has no type. This code is not complete and probably won't compile. Is it a field within theConfigurationclass?Configurationobject is not valid, no operations that you will do on it will be valid. You need to show us a minimal reproducible example, not a snippet from a class.