【发布时间】:2019-02-26 22:33:44
【问题描述】:
我正在尝试使用以下代码处理两个字符串。结果工作得很好,但是每当我尝试对第二个字符串执行相同的操作时,第一个字符串就会被第二个字符串的值覆盖。例如,如果第一个字符串 =“fuhg”,第二个字符串等于“abc”,第一个字符串变为:“abcg”。 它可能与内存分配或类似的东西有关,但我无法弄清楚,因为我在那个领域不是很好。
string newPassChar;
string newBloom=bloomFilter(newPass);
int index=0;
for ( int k =0 ; k < alpha.length() ; k++ )
{
if (newBloom[k]=='1')
{
newPassChar[index]=alpha[k];
index++;
}
}
【问题讨论】:
-
您需要确保
newBloom[k]、newPassChar[index]和alpha[k]不会越界。也就是说,如果您需要帮助调试代码,请提供minimal reproducible example。
标签: c++ string memory memory-management