dangling-pointer

    8熱度

    2回答

    是否存在簡單,高效的弱/保護指針?我需要指向同一個對象的多個指針,當對象被刪除時它們全部自動設置爲NULL。有一個總是用來刪除對象的「主」指針,但可以有幾個指向同一對象的其他指針。 這裏有一些解決方案,不完全匹配我的需求: QPointer:我不是開發一個應用程序QT;我不希望包含這個庫文件/派生自QObject。 boost::weak_ptr: 訪問解除​​分配的對象時引發異常。我的情況太昂貴

    11熱度

    4回答

    我在最近的一次採訪中被問到了這個問題,基本上寫了一個函數來結合free和assign null的功能。我回答以下方式: void main() { int *ptr; ptr = new int; ptr = newdelete(ptr); } (int*) newdelete (int *ptr) { delete(ptr);

    2熱度

    4回答

    在以下代碼段中,free(x)之後,爲什麼y變爲0? 根據我的理解,x指向的堆中的內存,仍然被指向y,尚未分配給其他人,那麼它如何變爲0? 而且,我不認爲這是free(x)它變爲0 有何評論? #include <stdio.h> int main(int argc, char *argv[]) { int *y = NULL; int *x = NULL;

    3熱度

    5回答

    在經歷了一些痛苦的經歷後,我明白了懸擺指針和雙重自由的問題。我正在尋求適當的解決方案 aStruct具有許多領域,其中包括其他陣列。 aStruct *A = NULL, *B = NULL; A = (aStruct*) calloc(1, sizeof(sStruct)); B = A; free_aStruct(A); ... // Bunch of other code in v

    3熱度

    5回答

    說我有兩個容器存儲指向相同的對象: std::list<Foo*> fooList; std::vector<Foo*> fooVec; 比方說,我通過一個,如果它的方法去除從這些容器中的一個對象: std::vector<Foo*>::iterator itr = std::find(fooVec.begin(), fooVec.end(), pToObj); fooVec.e