#[错误]来自' int *'的无效转换到' int'

时间:2016-11-22 09:03:08

标签: c++

我需要的帮助不大。当我编译我的代码时,它给了我这个错误:

  

[错误]来自' int *'的无效转换到' int' [-fpermissive]

我的代码如下,请指出错误:

#include <iostream>

using namespace std;

class ptrArry{
private:
    int *ptr;
    int MaxSize;
public:
    ptrArry(){
        ptr=NULL;
        MaxSize=2;
        for(int i=0; i<MaxSize; i++){
            *(ptr+i) = new int[MaxSize];
        }
    }
    void setArry(int val){
        for(int i=0; i<MaxSize; i++){
            for(int j=0; j<MaxSize; j++){
                cout<<"i="<<i<<endl;
                cout<<"j="<<j<<endl;
                ptr=val;
            }
        }
    }
    void getArry(){
        for(int i=0; i<MaxSize; i++){
            for(int j=0; j<MaxSize; j++){
                cout<<"i="<<i;
                cout<<"j="<<j;
                cout<<ptr[i][j];
                cout<<endl;
            }
        }
    }
};
int main() {
    ptrArry obj1;
    obj1.setArry(50);
    obj1.getArry();
    return 0;
}

1 个答案:

答案 0 :(得分:3)

我能看到的一些事情:

setArray()函数中的这一行是导致它的原因:ptr=val; 您正在为指针变量分配一个整数值 - 这正是编译器所抱怨的。您应该这样做:*ptr=val;并且通过这样做,您将整数值存储到ptr变量指向的内容。

在两个大括号之间的代码中有一个迷路`}}类定义结束。

编辑:感谢whozcraig的评论如下:*(ptr+i) = new int[MaxSize];也没什么意义。