首页 > 解决方案 > 我不明白为什么我的程序在数组的索引中要求指针

问题描述

我正在编写一个代码来查找 2 个数组的交集。使用 myij迭代器,IDE 要求我将它们转换为指针或其他东西。我特别收到了一个指向对象的错误。

我也无法真正理解何时以及如何使用指针。我知道它们是什么(有点),但我不明白什么时候使用它们。

void arrIntersect(int fArr, int sArr, int fArrElem, int sArrElem)
{
    int i, j, k;

    int largeArrElem = (fArrElem > sArrElem)?fArrElem:sArrElem;
    int unionArr[largeArrElem];

    for (i = 0; i < largeArrElem; i++)
    {
        for (j = 0; j < largeArrElem; j++)
        {
            if (fArr[i] == sArr[j]) //Here the i and j say pointer to object//
            {
                for (k = 0; k < largeArrElem; k++)
                {
                    unionArr[k] = fArr[i]; //Here the i says pointer to object//
                }
                break;
            }
            break;
        }

    }

    for (k = 0; k < largeArrElem; k++)
    {
        printf("%d, ", unionArr[k]);
    }

}

标签: arraysc

解决方案


嗨,您的交集函数不正确。您必须减少 largArrElem 的大小,还必须减少 j 的大小。现在,对于数组的问题,您是否尝试使用 malloc 动态创建它们?另外,如果您这样做了您必须在参数中添加“ * ”,例如:

void arrIntersect(int *fArr, int *sArr, int fArrElem, int sArrElem)

推荐阅读