我试图检查两个数组是否相等,如果不相等,则打印相应的文本。我这样做了,但是我没有从这段代码中得到任何输出或错误。我在这方面做错了什么?
MainProject.obj : error LNK2022: metadata operation failed (8013119F) : A TypeRef exists which should, but does not, have a corresponding TypeDef: (Impl): (0x01000038).
1>LINK : fatal error LNK1215: metadata operation failed (8013119F) :
我知道他们是执行此操作的其他方法,但是我想知道我在此方面做错了什么。谢谢。
答案 0 :(得分:1)
首先,pay
和Ez
是指针,但是您永远不要使它们指向任何有效的地方。这是未定义的行为,可能会导致分段错误或完全不同的操作。更改此:
payl* pay;
expected* Ez;
对此:
payl* pay = new payl;
expected* Ez = new expected;
别忘了最后删除它们:
delete pay;
delete expected;
此外,您的比较无法通过这种方式进行。代替这个:
for(int i=0; i>itr; i++){
for(int j=0; j>eitr; j++){
您应该将>
环绕,然后执行以下操作:
for (int i = 0; i < itr; i++) {
for (int j = 0; j < eitr; j++) {
进行这些更改后,它将正确打印每个数组中每个元素的每个实例,该实例与其他元素不同。这不仅意味着最后一个是5
,另一个是6
。这不是检查两个数组是否相等的方法。相反,循环应如下所示:
for (int i = 0; i < itr; i++) {
if (pay->arrayp[i] != Ez->arraye[i]) {
cout<<"incorret matching"<<pay->arrayp[i]<<"!="<<Ez->arraye[j]<<endl;
}
}