我試圖創建自己的HashMap來了解它們的工作原理。我正在使用一個鏈接列表數組來將值(字符串)存儲在我的哈希映射中。因動態數組而導致的HashMap內存泄漏
我創建數組是這樣的:
Node** list;
取而代之的是:
Node* list[nSize];
這是這樣的陣列可以在運行時的任何尺寸。但我認爲我正在發生內存泄漏,因爲我正在這樣做。我不知道錯誤在哪裏,但是當我運行以下簡單代碼時.exe崩潰。
爲什麼我的應用程序崩潰了,我該如何修復它?
注意:我知道使用向量會比數組好,但這只是爲了學習,我想挑戰自己使用'動態'數組來創建哈希映射。 PS:是我正在使用的那種數組的正確術語(動態數組)?
struct Node
{
// to implement
};
class HashMap
{
public:
HashMap(int dynSize)
{
*list = new Node[dynSize];
size = dynSize;
for (int i=0; i<size; i++)
list[i] = NULL;
cout << "END\n";
}
~HashMap()
{
for (int i=0; i<size; i++)
delete list[i];
}
private:
Node** list; // I could use a vector here but I am experimenting with a pointer to an array(pointer), also its more elegant
int size;
};
int main()
{
// When I run this application it crashes. Where is my memory leak?
HashMap h(5);
system("PAUSE");
return 0;
}