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
Unterschied zwischen * ptr + = 1 und * ptr ++ in C.
Ich habe gerade angefangen, C zu studieren, und als ich ein Beispiel für die Übergabe eines Zeigers an einen Zeiger als Funktionsparameter machte, fand ich ein Problem. Dies ist mein Beispielcode: #include <stdio.h> #include <string.h> #include <stdlib.h> int* allocateIntArray(int* ptr, int size){ if (ptr != NULL){ for (int i = …


21
Warum wird die Adresse Null für den Nullzeiger verwendet?
In C (oder C ++) sind Zeiger etwas Besonderes, wenn sie den Wert Null haben: Es wird empfohlen, Zeiger nach dem Freigeben des Speichers auf Null zu setzen, da dies bedeutet, dass das erneute Freigeben des Zeigers nicht gefährlich ist. Wenn ich malloc aufrufe, wird ein Zeiger mit dem Wert …
121 c++  c  memory  pointers 


10
Erstellen Sie einen Zeiger auf ein zweidimensionales Array
Ich brauche einen Zeiger auf ein statisches zweidimensionales Array. Wie wird das gemacht? static uint8_t l_matrix[10][20]; void test(){ uint8_t **matrix_ptr = l_matrix; //wrong idea } Ich bekomme alle Arten von Fehlern wie: Warnung: Zuweisung vom inkompatiblen Zeigertyp indizierter Wert ist weder Feld noch ein Zeiger Fehler: Ungültige Verwendung des flexiblen …
119 c  arrays  pointers 


9
C-Zeiger: Zeigen auf ein Array fester Größe
Diese Frage geht an die C-Gurus da draußen: In C kann ein Zeiger wie folgt deklariert werden: char (* p)[10]; .. was im Grunde besagt, dass dieser Zeiger auf ein Array von 10 Zeichen zeigt. Das Schöne an der Deklaration eines solchen Zeigers ist, dass Sie einen Fehler bei der …
118 c  pointers  size 



10
Ist free (ptr), wo ptr NULL ist, ein beschädigter Speicher?
Theoretisch kann ich das sagen free(ptr); free(ptr); ist eine Speicherbeschädigung, da wir den bereits freigegebenen Speicher freigeben. Aber was wenn free(ptr); ptr=NULL; free(ptr); Da sich das Betriebssystem undefiniert verhält, kann ich keine tatsächliche theoretische Analyse darüber erhalten, was passiert. Was auch immer ich tue, ist das Gedächtnisbeschädigung oder nicht? Ist …


6
Was macht diese Verwendung von Zeigern unvorhersehbar?
Ich lerne gerade Zeiger und mein Professor hat diesen Code als Beispiel bereitgestellt: //We cannot predict the behavior of this program! #include <iostream> using namespace std; int main() { char * s = "My String"; char s2[] = {'a', 'b', 'c', '\0'}; cout << s2 << endl; return 0; } …
108 c++  pointers 

2
Wertempfänger vs. Zeigerempfänger
Es ist für mich sehr unklar, in welchem ​​Fall ich einen Wertempfänger verwenden möchte, anstatt immer einen Zeigerempfänger zu verwenden. So rekapitulieren Sie aus den Dokumenten: type T struct { a int } func (tv T) Mv(a int) int { return 0 } // value receiver func (tp *T) Mp(f …
107 function  pointers  go 


2
"<Typ> ist Zeiger auf Schnittstelle, nicht Schnittstelle" Verwirrung
Liebe Entwicklerkollegen, Ich habe dieses Problem, das mir etwas komisch vorkommt. Schauen Sie sich diesen Codeausschnitt an: package coreinterfaces type FilterInterface interface { Filter(s *string) bool } type FieldFilter struct { Key string Val string } func (ff *FieldFilter) Filter(s *string) bool { // Some code } type FilterMapInterface interface …
102 pointers  go  interface 

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.