使用new來分配內存並初始化一個類的變量。新運算符導致內存損壞
這裏使用的代碼:
新運營商:
ptrIssuResrc = new IssuResource();
-----------------------------------
類定義:
class IssuResource
{
public:
// constructor: create a IssueResource object
IssuResource(void)
{
lastUpdatedResource = 0;
}
UINT16 lastUpdatedResource;
UINT32 conn_list[MAX_CONNECTION];
bool addConnResourceToList(UINT32);
使用ptrIssuRescr
:
class IssuResource *issuResrcPtr = NULL;
issuResrcPtr = card->ptrIssuResrc;
class IssuResource *ptrIssuResrc = card->ptrIssuResrc;
ptrIssuResrc->addConnResourceToList(connection->getLcn());
由於此代碼,我正面臨一些內存損壞,已經縮小。請幫我解決這裏最新的錯誤?我怎樣才能確保沒有記憶coruuption?我已經將新操作符移動到代碼中的另一個位置,並且它工作正常。但我仍然需要確保不會導致新問題。
TIA
您在此代碼中的任何地方都沒有使用'new'。 – Gorpik
訪問'conn_list'時可能超出邊界,發佈更多相對於1conn_list1訪問的代碼? – billz
conn_list保持未定義狀態,未指定MAX_CONNECTION。 – Arjan