我有問題在C++中創建動態表。 我的程序中斷長嘯:在xxx.exe處0x75914598std :: bad_alloc在內存位置(可能與創建動態表)
未處理的異常:微軟C++異常:性病:: bad_alloc的內存位置0x0107F73C。
我知道有一些我錯過了,所以如果你能如此善良,並指出我在哪裏以及如何修復它。 ll
具有隨機值,(但即使我設置了一個值,就像我在下面的代碼中得到的值一樣,所以問題出現在下面的代碼中),這是在另一個函數中產生的(問題出在這個代碼上:/) 。
全碼: http://pastebin.com/Gafjd5Um
代碼:
#include <iostream>
#include <math.h>
#include <cstdio>
#include <locale.h>
#include <conio.h>
#include <cstdlib>
#include <time.h>
#include <vector>
class GeneratePass
{
private:
//int length;
int ll=5;
char *lowertab;
public:
void ChooseLenght();
void CreateList();
GeneratePass()
{
lowertab = new char[ll];
}
~GeneratePass()
{
delete[] lowertab;
}
};
void GeneratePass::CreateList()
{
srand(time(NULL));
int i, j;
for(i = 0; i < ll; i++)
{
lowertab[ i ] =(char)(rand() % 24) + 97;
}
for(i = 0; i < ll; i++)
{
cout << lowertab[ i ];
}
}
int main()
{
GeneratePass create;
create.CreateList();
return 0;
}
頂多大?如果它是整數範圍,那麼這很可能是該不良分配的來源。 –
對不起,我忘了提及它。我編輯了我的帖子。 'll'不能大於16. – engray
你能發佈你的完整代碼嗎?當我在Visual Studio 2013上自己嘗試時,我沒有收到編譯錯誤(當'll'設置爲11時我的) – user3476093