Als «pointers» getaggte Fragen

Datentyp, der auf einen anderen im Speicher gespeicherten Wert "zeigt". Eine Zeigervariable enthält eine Speicheradresse einer anderen Entität (Variable oder Funktion oder andere Entität). Dieses Tag sollte für Fragen verwendet werden, bei denen Zeiger und keine Referenzen verwendet werden. Die am häufigsten verwendeten Programmiersprachen mit Zeigern sind C, C ++, Go und Assemblersprachen. Verwenden Sie ein bestimmtes Sprach-Tag. Andere hilfreiche Tags sind Methode, Funktion, Struktur usw., die die Verwendung von Zeigern beschreiben.


5
Was sind die Regeln für das Umsetzen von Zeigern in C?
K & R geht nicht darüber hinweg, aber sie benutzen es. Ich habe versucht zu sehen, wie es funktionieren würde, indem ich ein Beispielprogramm geschrieben habe, aber es lief nicht so gut: #include <stdio.h> int bleh (int *); int main(){ char c = '5'; char *d = &c; bleh((int *)d); …
70 c  pointers  casting 

4
Wie vermeide ich Speicherverluste, wenn ich einen Vektor von Zeigern auf dynamisch zugewiesene Objekte in C ++ verwende?
Ich verwende einen Vektor von Zeigern auf Objekte. Diese Objekte werden von einer Basisklasse abgeleitet und dynamisch zugeordnet und gespeichert. Zum Beispiel habe ich so etwas wie: vector<Enemy*> Enemies; und ich werde von der Enemy-Klasse ableiten und dann dynamisch Speicher für die abgeleitete Klasse zuweisen, wie folgt: enemies.push_back(new Monster()); Was …
68 c++  stl  pointers  vector  derived 

4
Was bedeutet ((void (*) ()) buf) (); bedeuten?
Ich löse eine binäre Exploitation-Herausforderung auf picoCTF und bin auf diesen Code gestoßen: ((void (*)())buf)(); Wo bufist ein Zeichenarray? Ich habe die Herausforderung gelöst, kann aber nicht verstehen, was genau es tut. Ich habe mir diesen Thread angesehen, konnte ihn aber nicht erkennen. Was heißt ((void (*)())buf)();das



7
Wie funktioniert der Zeigervergleich in C? Ist es in Ordnung, Zeiger zu vergleichen, die nicht auf dasselbe Array verweisen?
In Kapitel 5 von K & R (The C Programming Language 2nd Edition) habe ich Folgendes gelesen: Erstens können Zeiger unter bestimmten Umständen verglichen werden. Wenn pund qPunkt an den Mitgliedern des gleichen Array, dann Beziehungen wie ==, !=, <, >=etc. richtig funktionieren. Dies scheint zu implizieren, dass nur Zeiger …



1
Was ist die Semantik überlappender Objekte in C?
Betrachten Sie die folgende Struktur: struct s { int a, b; }; Typischerweise hat 1 diese Struktur die Größe 8 und die Ausrichtung 4. Was ist, wenn wir zwei struct sObjekte erstellen (genauer gesagt, wir schreiben zwei solche Objekte in den zugewiesenen Speicher), wobei das zweite Objekt das erste überlappt? …


1
Kann ein Zeiger auf einen unvollständigen Typ unvollständig sein?
Kann int (*)[]ein unvollständiger Typ sein? C 2018 6.2.5 1 sagt: An verschiedenen Stellen innerhalb einer Übersetzungseinheit kann ein Objekttyp unvollständig (ohne ausreichende Informationen zur Bestimmung der Größe von Objekten dieses Typs) oder vollständig (mit ausreichenden Informationen) sein. Wenn also die Größe eines Typs bekannt ist, scheint der Typ vollständig …



1
Unterschied zwischen @H und @H [0]
ich habe var H: array of THandle; Dann erstelle ich in einer Schleife mehrere Threads, ordne den Elementen von H Thread-Handles zu und warte darauf. Das Übergeben von @H [0] als 2. Parameter an WFMO unten funktioniert. WaitForMultipleObjects(Length(H), @H[0], True, INFINITE) <-- Works Das Übergeben von @H wie unten schlägt …

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.