我需要的帮助不大。当我编译我的代码时,它给了我这个错误:
[错误]来自' 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;
}
答案 0 :(得分:3)
我能看到的一些事情:
setArray()
函数中的这一行是导致它的原因:ptr=val;
您正在为指针变量分配一个整数值 - 这正是编译器所抱怨的。您应该这样做:*ptr=val;
并且通过这样做,您将整数值存储到ptr
变量指向的内容。
在两个大括号之间的代码中有一个迷路`}}类定义结束。
编辑:感谢whozcraig的评论如下:*(ptr+i) = new int[MaxSize];
也没什么意义。