我想将两个QString数组与Qt和C ++进行比较,我试过这个,但它起作用了,(事实上我的应用程序崩溃......):
if(ArrayOne[nb] != ArrayTwo[nb]){
}
然后我需要在我的数组的元素中分配一个值,但我也很努力:
ArrayOne[nb] = ArrayTwo[nb];
达到此目的:
if(ArrayOne[nb] != ArrayTwo[nb]){
ArrayOne[nb] = ArrayTwo[nb];
}
感谢!
答案 0 :(得分:1)
您的nb
值可能超出了QString大小的范围。即,nb> ArrayOne.size-1。
答案 1 :(得分:1)
你说你有:
QString ArrayOne;
如果这是真的,那么你只是在位置nb
比较两个字符串中的字符,而不是字符串数组。并且QString的operator[]
不检查范围,因此如果nb
超过QString的长度,程序可能会崩溃,特别是如果您分配给QString::operator[]
返回的无效引用... < / p>
因此,要明确:您的代码可能会崩溃,因为nb >= ArrayOne.length()