创建新数组 : Expression must have pointer to object type 时出现 C++ 错误

标签 c++ arrays pointers

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

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

最佳答案

这里你用一个本地 int 变量隐藏了 oldarray 数组:

int oldarray = oldarray[values];

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

关于创建新数组 : Expression must have pointer to object type 时出现 C++ 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16656709/

相关文章:

c++ - 同时进行优化和可测试性——如何将代码分解成更小的单元

c++ - 正确使用for循环

c - 在 C 中使用 pthread_join 时出现段错误

java - 我正在尝试在我的商店数组中显示一个项目

c - qsort const指针问题

c++ - 从 vc++ 调用存储在堆中的代码

c++ - 在空间图上使用 boost 凸包

c++ - Caffe ImageData神经网络基础示例解析模型文件失败

php - 按另一个数组的键对数组排序

c++ - 这个 `const char*` 的断言保证是真的吗?