指针数组" Use of uninitialised value"错误
" Use of uninitialised value" error with an array of pointers
我需要构建一个哈希表,但我会从valgrind the Orror中获得"使用尺寸8的非直接值8"的数组,该数组应该在代码中初始化的数组(如您所知)请参阅Hashtable的构造函数)。
这是班级魔术师:
class Magician{
public:
int magiID;
Magician(int id) : magiID(id) {}
};
这是hashtable的类:
class HashTable {
public:
int k;//total size of the array
int mod;
Magician **array;
HashTable(int k): k(k) {
array = new Magician *[k];
for(int i = 0; i<k; k++) array[i] = NULL; //Initialization of the array
int mod(k);
while ((mod%10 == 0)||(mod%2 == 0)) {
mod--;
}
if(mod <= 1) mod = 2;
}
~HashTable(){
delete[] array;
}
int reHash(int x, int i){
return (x%mod + i);
}
void insertElement(Magician* m){
int id = m->magiID;
int j = 0;
while(array[reHash(id, j)%k] != NULL){ //Use of uninitialised value of size 8
j++;
}
array[reHash(id, j)%k] = m; //Use of uninitialised value of size 8
}
};
有问题的行(方法插件中的)是试图在数组中达到某些东西的线条。我的初始化不好吗?如果是,那为什么?
magiID
中的一个可能的罪魁祸首是负值。请注意,定义了C和C %
操作员,以便(a / b * b) + (a % b) == a
。如果a
为负,并且b
为正,则结果为负,您可以在数组开始之前索引。
相关文章:
- 为什么static_assert错误:即使我传递常量"expression must have a constant value"?
- 方法错误"not all control paths return a value"和方法不返回值
- 如何解决类成员函数中的"return a value"错误?
- Qt 错误:QSqlQuery::value:尝试从表中检索统计信息时未定位在有效记录上 (QComboBox)
- 如何修复此错误"the value of 'x1' is not usable in a constant expression"?static_assert
- 在 Lua 中加载 C++ 模块时'Attempt to index a string value'错误
- boost::asio async_accept总是发生错误,error_code.value() 是 22,这意味着参
- C++ 迭代器错误"does not refer to a value"
- C++14 类函数错误:"Object has no attribute 'value'"
- 指针数组" Use of uninitialised value"错误
- 获取此地址时出现"expression must be an l-value or function designator"错误
- "[Error] pointer value used where a floating point value was expected" 如何解决此错误?
- 如何修复理性狂想曲错误:"Current value is " VC11 ", but no Visual Studio installation was not found in the direc
- 为什么我会收到"void value not ignored as ought to be"错误?
- 当整数变量用于在 c++ 中声明数组大小时,错误显示为"Expression must have a const value"
- 我正在开发Arduino Uno。错误:开关外壳的"'RX' not declared in the scope."和"duplicate case value"
- 函数中的C ++-"a reference .. can not be initialized with a value"的错误
- 为什么在以下代码上"must be modifiable l-value"编译器错误 (C2105) ?
- 错误"value computed is not used"警告
- Eclipse CDT 无法在 Windows 中运行编译的可执行文件,并显示错误"terminated, exit value: <some number>"