У меня есть
map<char*, int> labels;
, который демонстрирует какое-то поведение, которое я вообще не могу обернуть.Для одного индекса он возвращает разные значения, и я уверен, что это одни и те же индексы.Вот пример:
ранее в моей программе, я добавляю запись следующим образом:
labels[current->u.bj.target->name] = blockNum + 1;
//Test code
if (blockNum + 1 == 9)
{
stringtest = current->u.bj.target->name;
cout << "Condition Met" << endl;
testCond = true;
}
позже в моей программе, я делаю следующее
if ((*stringtest) == (*current->u.bj.target->name))
cout << "Why is this printing the correct val " <<labels[stringtest] << endl;
branchTarget = labels[current->u.bj.target->name];
cout << "Why is this value different" << branchTarget << endl;
как вы можете сказать из операторов cout, labels[stringtest]
возвращает 9, но labels[current->u.bj.target->name]
возвращает 0, несмотря на то, что они оба указывают на одно и то же.Может кто-нибудь дать мне представление, что не так / как это исправить?Я почти уверен, что никогда не ставлю 0 на карту вообще.