我试图创建一个仅从已经创建的数组中获取正值的新数组,并且当我循环遍历原始数组时,索引出现错误“表达式必须具有指向对象类型的指针”,我尝试对此错误进行研究,并且在遇到此错误时每个人的情况都不同,所以我自己一个人做。这是我的代码:

int foo::createNewArray() const {
    int newarray[50];
    int oldarray = oldarray[values];
    int size = (sizeof(oldarray));

    for (int i = 0; i > size; i++){
        if (oldarray[i] > 0)
            newarray[i] = oldarray[i];
    }


上面的“ i”是有错误的。 oldarray [values]在单独的类文件中声明。这是代码的一小部分。

        class foo{
        int oldarray[1];
        enum unit {values};

        public:
        int createNewArray() const;
};

最佳答案

在这里,用局部oldarray变量对int数组进行阴影处理:

int oldarray = oldarray[values];


从那时起,直到块末尾,oldarray表示一个int,然后其余代码对此没有多大意义。

07-21 16:59