Wenn ein pointer erstellt wird, in der Umfang, was passiert, um die Spitzen zu variabel, wenn der Mauszeiger den Bereich verlässt?

Der Titel sagt alles.

Ich fand eine alte Frage, die im wesentlichen die gleichen, aber ich brauchte ein kleines bisschen weiteren Abklärung.

In dieser Frage die akzeptierte Antwort sagt:

char* text = "Hello, world"; 

Hier eine automatische variable (pointer) ist
auf dem Stapel erzeugt und eingestellt auf einen Wert, der in steter Erinnerung,
das bedeutet:

  • der string in "" existiert durch das ganze Programm-Ausführung.
  • Sie sind nicht verantwortlich für "Zuweisung" oder "freigeben" es
  • können Sie nicht
    ändern Sie es. Wenn Sie es ändern wollen, dann müssen Sie reservieren einige
    "non-constant memory", und kopieren Sie es.

Ist dieser Spruch, dass der Zeiger gelöscht wird, nicht aber die Daten, die der Zeiger verweist?
Wenn ich zum erstellen von 1.000.000 Zeiger auf Zeichen in einer Funktion, wenn Sie außerhalb des Bereichs würde alle meine Speicher freigegeben werden? Oder einfach nur der Speicher benötigt, um die Zeiger, so dass die tatsächlichen Zeichen, die sich hinter der hog-alle meine Speicher?

  • Der Zeiger ist nicht gelöscht. Es wird zerstört, was im Falle eines Zeigers, tut nichts.
InformationsquelleAutor xcdemon05 | 2013-02-13
Schreibe einen Kommentar