数组匹配期间无输出

时间:2018-12-04 12:37:47

标签: c++ arrays for-loop if-statement

我试图检查两个数组是否相等,如果不相等,则打印相应的文本。我这样做了,但是我没有从这段代码中得到任何输出或错误。我在这方面做错了什么?

    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) :

我知道他们是执行此操作的其他方法,但是我想知道我在此方面做错了什么。谢谢。

1 个答案:

答案 0 :(得分:1)

首先,payEz是指针,但是您永远不要使它们指向任何有效的地方。这是未定义的行为,可能会导致分段错误或完全不同的操作。更改此:

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;
    }
}