将对象指针数组初始化为NULL

时间:2018-08-01 17:11:59

标签: c++ arrays pointers hash null

我有一个项目,要求创建对象指针数组,该对象指针数组必须通过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();
};

1 个答案:

答案 0 :(得分:-1)

尝试将对象设置为nullptr: primHash[i] = nullptr