我很难理解如何分辨悬空指针和内存泄漏.关于最近的任务令我感到困惑,我有几个问题,在阅读之后,我仍然感到困惑.我不希望有人为我做我的作业,我希望能够理解为什么它是什么,如果这是有道理的.
所以,作业:
鉴于声明:
int *ptrA, *ptrB;
Run Code Online (Sandbox Code Playgroud)
判断下面的每个代码段是否导致内存泄漏,悬空指针或两者都没有.画画帮忙.
ptrA已经指向内存中的东西,所以这个既不是悬空指针也不是内存泄漏.ptrA = new int;
ptrB = new int;
*ptrA = 345;
ptrB = ptrA;
Run Code Online (Sandbox Code Playgroud)
ptrB没有任何结果.ptrA = new int;
*ptrA = 345;
ptrB = ptrA;
delete ptrA;
Run Code Online (Sandbox Code Playgroud)
ptrA = new int;
ptrB = new int;
*ptrA = 345;
*ptrB = *ptrA;
Run Code Online (Sandbox Code Playgroud)
ptrA = new int;
ptrB = new int;
*ptrA = 345;
ptrB = new int;
*ptrB = *ptrA;
Run Code Online (Sandbox Code Playgroud)
ptrA = LocationOfAge();
Run Code Online (Sandbox Code Playgroud)
其中函数LocationOfAge定义为: …