Die Malloc-Funktion führt eine dynamische Speicherzuweisung in C durch und ist Teil der Standardbibliothek. Verwenden Sie dieses Tag für Fragen zur Verwendung, zum Verhalten und zur Implementierung von malloc.
In dieser Frage schlug jemand in einem Kommentar vor, dass ich das Ergebnis von nicht besetzen sollte malloc, dh int *sieve = malloc(sizeof(int) * length); eher, als: int *sieve = (int *) malloc(sizeof(int) * length); Warum sollte das so sein?
Was ist der Unterschied zwischen: ptr = (char **) malloc (MAXELEMS * sizeof(char *)); oder: ptr = (char **) calloc (MAXELEMS, sizeof(char*)); Wann ist es eine gute Idee, Calloc über Malloc zu verwenden oder umgekehrt?
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 …
Ich sehe in C ++, dass es mehrere Möglichkeiten gibt, Daten zuzuweisen und freizugeben, und ich verstehe, dass Sie beim Aufrufen anrufen mallocsollten freeund wenn Sie den newOperator verwenden, mit dem Sie koppeln sollten, deleteund es ein Fehler ist, die beiden zu mischen (z. B. Aufrufen free()von etwas, das erstellt …
alloca()ordnet Speicher eher auf dem Stapel als auf dem Heap zu, wie im Fall von malloc(). Wenn ich von der Routine zurückkehre, wird der Speicher freigegeben. Tatsächlich löst dies mein Problem, dynamisch zugewiesenen Speicher freizugeben. Die Freigabe des zugewiesenen Speichers bereitet malloc()große Kopfschmerzen und führt, wenn sie irgendwie übersehen wird, …
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 …
Es ist bekannt, dass dies callocanders ist als mallocdarin, dass der zugewiesene Speicher initialisiert wird. Mit callocwird der Speicher auf Null gesetzt. Mit mallocwird der Speicher nicht gelöscht. In der täglichen Arbeit betrachte ich also callocals malloc+ memset. Übrigens habe ich zum Spaß den folgenden Code für einen Benchmark geschrieben. …
Heute habe ich Seite 167 von The C Programming Language (zweite Ausgabe Brian W. Kernighan & Dennis M. Ritchie) erreicht und festgestellt, dass der Autor sagt, ich muss besetzen malloc. Hier ist der Teil aus dem Buch: 7.8.5 Speicherverwaltung Die Funktionen malloc und calloc erhalten Speicherblöcke dynamisch. void *malloc(size_t n) …
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 …
Ich erhalte diesen Fehler: Warnung: Inkompatible implizite Deklaration der eingebauten Funktion 'malloc' Ich versuche das zu tun: fileinfo_list* tempList = malloc(sizeof(fileinfo_list)); Nur als Referenz wird folgende Struktur verwendet: typedef struct { fileinfo** filedata; size_t nFiles; size_t size; size_t fileblock; } fileinfo_list; Ich sehe nichts falsch an dem, was ich getan …
Wenn ich mallocin meinem Code verwende: int *x = malloc(sizeof(int)); Ich bekomme diese Warnung von gcc: new.c:7: warning: implicit declaration of function ‘malloc’ new.c:7: warning: incompatible implicit declaration of built-in function ‘malloc’
In einem Projekt hat jemand diese Zeile verschoben: double (*e)[n+1] = malloc((n+1) * sizeof(*e)); Was angeblich ein zweidimensionales Array von (n + 1) * (n + 1) verdoppelt. Angeblich , sage ich, weil mir bisher niemand, den ich gefragt habe, genau sagen konnte, was dies bewirkt, woher es stammt oder …
Ich überprüfe den C ++ - Code eines anderen für unser Projekt, das MPI für Hochleistungsrechnen verwendet (10 ^ 5 - 10 ^ 6 Kerne). Der Code soll die Kommunikation zwischen (möglicherweise) verschiedenen Maschinen auf verschiedenen Architekturen ermöglichen. Er hat einen Kommentar geschrieben, der etwas in der Art sagt: Wir …
We use cookies and other tracking technologies to improve your browsing experience on our website,
to show you personalized content and targeted ads, to analyze our website traffic,
and to understand where our visitors are coming from.
By continuing, you consent to our use of cookies and other tracking technologies and
affirm you're at least 16 years old or have consent from a parent or guardian.