我有一个项目,要求创建对象指针数组,该对象指针数组必须通过init()方法初始化为NULL。这是代码:
int * rotate(const int * A, int steps, int len)
{
int *ret = malloc(steps * sizeof *ret);
int i;
for(i=0; i<len; i++) {
int pos = i-steps;
if(pos < 0)
pos+=len;
ret[pos]=A[i];
}
return ret;
}
并且在尝试编译代码时收到以下错误消息:
HashLin *primHash[10];
void HashPerfect:: init() { //FIX ME
for (int i=0; i<10; i++){
primHash[i] = NULL;
}
我觉得这可能与我的HashLin类的构造函数有关,但我不确定。如果可以帮助您诊断问题,请使用以下HashLin类的构造函数:
hashperfect.cpp: In member function 'void HashPerfect::init()':
hashperfect.cpp:17:15: warning: passing NULL to non-pointer argument 1 of
'HashLin::HashLin(int)' [Wconversion-null]
primHash[i] = NULL;
^
任何帮助将不胜感激!谢谢。
我的意图是创建一个指向HashLin对象的指针数组-这是HashLin对象类的代码...
HashLin::HashLin(){
//size = 0;
hashTable = vector<string>(1);
init();
};
HashLin::HashLin(int mySize){
hashTable = vector<string>(mySize);
init();
};
答案 0 :(得分:-1)
尝试将对象设置为nullptr:
primHash[i] = nullptr