【发布时间】:2011-03-13 09:16:45
【问题描述】:
我有一个
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 放在地图上。
【问题讨论】: