dangling-pointer

    1热度

    1回答

    如果标题是不明确的,我有这样的例子: int *a = new int[5]; int*b = a; delete[] a; a = NULL; 现在a为NULL,但b不是。如果我访问b,它将返回错误的值并可能导致程序崩溃。 如何预防?

    0热度

    5回答

    我的代码: #include <stdio.h> #include <stdlib.h> int main(void) { int *p = (int *)malloc(sizeof(int)); free(p); *p = 42; return 0; } 我创建了一个指针,然后我就指着分配的空间,最后我指派了42到它。 在我看来,它不应该工作,

    2热度

    4回答

    假设我有以下几点: struct Foo { Foo() : bar(NULL), box(true) {} Bar* bar; bool box; }; ,我声明如下: std::vector<Foo> vec(3); 我有一个功能,现在它确实是这样的: Foo& giveFoo() { //finds a certain foo and does return vec[i];

    4热度

    7回答

    C++代码: person* NewPerson(void) { person p; /* ... */ return &p; //return pointer to person. } C#代码: person NewPerson() { return new person(); //return reference to person. }

    -1热度

    2回答

    我写了一个方法来释放我的结构。现在我有一个问题。当我调用这个方法两次时,它给了我一个错误。但是我确实检查了我的结构中是否有东西,所以我不知道它是如何给我带来错误的。 我的结构: typedef struct { int num_rows; int num_cols; int** data; } matrix; 我的免费方法: void free_matrix(m

    32热度

    5回答

    我知道这是很常见的问题,但对我来说还是新的! 我不明白晃来晃去的指针的概念,是谷歌搜索和编写测试方法 找到一个...我只是想知道这是一个悬挂指针吗?因为无论我发现什么样的东西都返回 的东西,在这里我正在尝试类似的东西! 谢谢! void foo(const std::string name) { new_foo(name.c_str()); ///// will it be Dangl

    0热度

    1回答

    我正在发送一个HTTP请求来保存/更新服务器上的数据。该请求是异步完成的,并在完成时调用回调函数。一切正常,除了有时候,应用程序在回调中崩溃。 这是我在做什么: user = new User(); user->saveOnServer(); user->zombie = true; // Mark the user that it needs to be deleted in the cal

    0热度

    1回答

    我在网上读到悬摆指针,当我发现这个链接的代码: http://www.billioncodes.com/c/ques-and-ans/747-what-is-dangling-pointer-give-an-example-on-pointers-to-pointer-and-passing-by-address 我会把它贴在这里: #include <stdio.h> void f(int *

    14热度

    1回答

    我正在研究Stanley B. Lippman编写的C++ Primer第4版。在第12.4.1,当即将构造函数初始化笔者会谈中,他给出了这样的例子: class ConstRef { public: ConstRef(int ii); private: int i; const int ci; int &ri; }; // OK:

    0热度

    2回答

    这样的函数是否会产生悬挂指针? int *foo() { int a[2] = {2, 3}; int *p = NULL; p = a; return p; }