Dangling pointer

Dangling pointer

Ein hängender Zeiger oder wilder Zeiger (engl. dangling pointer) bezeichnet in der Informatik einen Zeiger, der einen ungültigen Wert enthält und dadurch auf einen nicht vorhandenen oder nicht dem Zeiger zugeordneten Speicherbereich verweist.

Hängende Zeiger kommen oft dadurch zustande, dass sie nicht initialisiert wurden, aber auch dadurch, dass sie auf einen Speicherbereich verweisen, der bereits freigegeben wurde.

Hängende Zeiger können für den Programmlauf unvorhersehbare Auswirkungen haben und das Programm zum Absturz bringen.

Beispiel

C++

#include <iostream>
 
using namespace std;
 
int main {
    int * pPointer = new int; // Pointer vom Typ integer angelegt
    cout << pPointer;         // Das würde die Speicheradresse im Heap anzeigen
    delete pPointer;          // Speicher freigeben
    cout << pPointer;         // Zeigt noch immer die Speicheradresse im Heap an, obwohl sie freigeben wurde => Dangling Pointer
    // *pPointer = 10;           Zugriff auf diesen Pointer würden fatalen Fehler auslösen
    pPointer = 0;             // pPointer ist jetzt kein Dangling Pointer mehr, siehe Nullpointer
    return 0;
}

Es zeugt von guten Programmierstil nach einem delete den Pointer auf 0 zu setzen, auch wenn auf den Pointer nicht mehr zugegriffen wird.

Siehe auch

Nullzeiger


Wikimedia Foundation.

Игры ⚽ Поможем решить контрольную работу

Schlagen Sie auch in anderen Wörterbüchern nach:

  • Dangling pointer — Dangling pointers and wild pointers in computer programming are pointers that do not point to a valid object of the appropriate type. These are special cases of memory safety violations. Dangling Pointer Dangling pointers arise when an object is… …   Wikipedia

  • dangling pointer — betikslė rodyklė statusas T sritis informatika apibrėžtis Programavime – ↑rodyklė (2), rodanti į nebeegzituojantį arba į kitą atminties vietą perkeltą objektą. Bandant objektą pasiekti per rodyklę įvyksta klaida. Siekiant išvengti betikslių… …   Enciklopedinis kompiuterijos žodynas

  • Pointer (computing) — This article is about the programming data type. For the input interface (for example a computer mouse), see Pointing device. Pointer a pointing to the memory address associated with variable b. Note that in this particular diagram, the computing …   Wikipedia

  • dangling reference — betikslė rodyklė statusas T sritis informatika apibrėžtis Programavime – ↑rodyklė (2), rodanti į nebeegzituojantį arba į kitą atminties vietą perkeltą objektą. Bandant objektą pasiekti per rodyklę įvyksta klaida. Siekiant išvengti betikslių… …   Enciklopedinis kompiuterijos žodynas

  • Stale pointer bug — A stale pointer bug, otherwise known as an aliasing bug, is a class of subtle programming errors that can arise in code that does dynamic memory allocation, especially via the malloc function or equivalent.If several pointers address (are aliases …   Wikipedia

  • Opaque pointer — In computer programming, an opaque pointer is a special case of an opaque data type, a datatype that is declared to be a pointer to a record or data structure of some unspecified type. Opaque pointers are present in several programming languages… …   Wikipedia

  • Memory safety — Software Testing portal Memory safety is a concern in software development that aims to avoid software bugs that cause security vulnerabilities dealing with random access memory (RAM) access, such as buffer overflows and dangling pointers.… …   Wikipedia

  • Garbage collection (computer science) — This article is about garbage collection in memory management. For garbage collection in an SSD, see garbage collection (SSD). For other uses, see garbage collection. In computer science, garbage collection (GC) is a form of automatic memory… …   Wikipedia

  • Type safety — In computer science, type safety is a property of some programming languages that is defined differently by different communities, but most definitions involve the use of a type system to prevent certain erroneous or undesirable program behavior… …   Wikipedia

  • Hängender Zeiger — Ein hängender Zeiger oder wilder Zeiger (engl. dangling pointer) bezeichnet in der Informatik einen Zeiger, der einen ungültigen Wert enthält und dadurch auf einen nicht vorhandenen oder nicht dem Zeiger zugeordneten Speicherbereich verweist.… …   Deutsch Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”