Als «free» getaggte Fragen

17
Was passiert WIRKLICH, wenn Sie nach malloc nicht frei sind?
Das hat mich schon seit Ewigkeiten gestört. In der Schule wird uns allen beigebracht (zumindest war ich das), dass Sie jeden zugewiesenen Zeiger freigeben MÜSSEN. Ich bin allerdings etwas neugierig auf die tatsächlichen Kosten, die entstehen, wenn kein Speicher freigegeben wird. In einigen offensichtlichen Fällen, z. B. wenn mallocsie innerhalb …
538 c  malloc  free 

11
Woher weiß frei, wie viel frei ist?
In der C-Programmierung können Sie jede Art von Zeiger, die Sie möchten, als Argument an free übergeben. Woher weiß es, wie groß der zugewiesene Speicher ist, der freigegeben werden soll? Immer wenn ich einen Zeiger auf eine Funktion übergebe, muss ich auch die Größe übergeben (dh ein Array von 10 …
385 c  size  pointers  free 

13
Wie funktionieren malloc () und free ()?
Ich möchte wissen wie mallocund freearbeiten. int main() { unsigned char *p = (unsigned char*)malloc(4*sizeof(unsigned char)); memset(p,0,4); strcpy((char*)p,"abcdabcd"); // **deliberately storing 8bytes** cout << p; free(p); // Obvious Crash, but I need how it works and why crash. cout << p; return 0; } Ich wäre wirklich dankbar, wenn die …

23
Setzen der Variablen nach free auf NULL
In meiner Firma gibt es eine Codierungsregel, die besagt, dass die Variable nach dem Freigeben von Speicher auf zurückgesetzt wird NULL. Zum Beispiel ... void some_func () { int *nPtr; nPtr = malloc (100); free (nPtr); nPtr = NULL; return; } Ich habe das Gefühl, dass in Fällen wie dem …

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 …

8
So finden Sie einen Fehler "Double Free oder Korruption"
Wenn ich mein (C ++) Programm ausführe, stürzt es mit diesem Fehler ab. * glibc erkannt * ./load: doppelt frei oder beschädigt (! prev): 0x0000000000c6ed50 *** Wie kann ich den Fehler aufspüren? Ich habe versucht, print ( std::cout) -Anweisungen zu verwenden, ohne Erfolg. Könnte gdbdas einfacher machen?
92 c++  c  debugging  free 


3
Warum den Rückgabewert von free auf void setzen?
Ich lese ein Buch ( Programmieren mit POSIX-Threads von Butenhof, 1997), das C verwendet, und bin auf die folgende Zeile gestoßen: (void)free(data); Hier dataist nur ein Zeiger auf eine zugewiesene Struktur, data = malloc(sizeof(my_struct_t)); Warum ist das Ergebnis der freeBesetzung void? Nach meinem Verständnis von C scheint dies aus zwei …
82 c  casting  free  void  legacy-code 
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.