Tag: malloc
Die malloc-Funktion führt die dynamische Speicherverwaltung in C und ist Teil der standard-Bibliothek. Verwenden Sie dieses tag für Fragen über die Nutzung, das Verhalten und die Implementierungen von malloc.
4
Antworten
Wenn ich mit malloc zusammen mit der Automatischen Referenz-Zählung, muss ich dann trotzdem noch manuell den Speicher frei? int a[100]; int *b = malloc(sizeof(int) * 100); free(b); InformationsquelleAutor Stas Jaro | 2012-05-07
3
Antworten
Habe ich ein Bild-Kompressions-Anwendung, die hat jetzt zwei verschiedene Versionen von memory allocation systems. In das original ein, malloc ist überall, und die zweite, ich implementiert eine einfache pool-allocator, dass nur reserviert Speicherblock und gibt Teile der,
8
Antworten
Kann mir jemand erklären, warum mein Aufruf von malloc mit einem string-in Größe 6 gibt eine sizeof von 4 Byte? In der Tat, jedes integer-argument gebe ich malloc bekomme ich eine sizeof von 4. Nächsten, ich bin
4
Antworten
Ich testen wollen, die mcheck-Funktionalität auf meinem PC zuerst zu erkennen, die malloc konsolidieren Fehler. Ich habe auf diese Weise werden Sie sicher, dass dies helfen wird, herauszufinden, einen ähnlichen Absturz auf embedded-linux-box. Leider, der Absturz dauert
3
Antworten
Können Sie mir helfen herauszufinden, wie zuordnen eines 2D-Arrays zuweisen nennen? Ich versuchte zu tun: int** arr = (int**)malloc(num * * num * sizeof(int*)); Aber seine nicht funktioniert. num ist in Zeilen und Spalten. int (*arr)[num] =
4
Antworten
Ich habe mit C für ganz irgendwann, und ich habe dieses triviale problem, das ich Abfragen über. Sagen, ich will einen Charakter erstellen array, speichert bis zu 1000 Zeichen. Nun, wenn ich mit malloc für das gleiche
7
Antworten
Was ist besser zuordnen von Speicher für eine Funktion, die Häufig allozieren und freigeben von Speicher ? Angenommen, diese Funktion wird immer aufgerufen, rund 500 bis 1000 mal pro Sekunde auf einem 1-GHz-Prozessor. (Bitte ignorieren Sie die
11
Antworten
Habe ich gewidmet, eine große Anzahl von Zeilen C-code cleanup-Etiketten/Bedingungen für fehlgeschlagene memory allocation (angedeutet durch die alloc Familie zurückkehren NULL). Ich wurde gelehrt, dass dies war eine gute übung, so dass auf die memory-Fehler, wird eine
6
Antworten
Bin ich zu sehen-code zuweisen von Speicher für Schwimmer mit sizeof(int). Ich Frage mich, ob sizeof(float) immer gleich sizeof(int) auf allen Architekturen? float *pointer2Float = (float *) USER_DEFINED_MALLOC (...,..., sizeof(int)) Hinweis: diese USER_DEFINED_MALLOC isa-wrapper für konventionelle malloc,
2
Antworten
Zitat aus GCC-Dokumentation (Hervorhebung von mir): Den malloc Attribut wird verwendet, um dem compiler, dass eine Funktion kann behandelt werden, als wenn jeder nicht-NULL-Zeiger gibt es nicht alle alias andere Zeiger gültig, wenn die Funktion zurückgibt und,
3
Antworten
Ich bin verwirrt in Bezug auf heap und free list. Ich habe ein paar Fragen und ich habe mein eigenes Verständnis, wie malloc funktioniert in C. Bitte korrigieren Sie mich, wenn ich falsch bin. Ist der heap-Speicher
8
Antworten
Gibt es eine Möglichkeit, malloc eine große Auswahl, aber finden Sie es mit 2D-syntax? Ich will etwas wie: int *memory = (int *)malloc(sizeof(int)*400*200); int MAGICVAR = ...; MAGICVAR[20][10] = 3; //sets the (200*20 + 10)th element UPDATE:
4
Antworten
Wann werde ich dann benutzen Sie malloc-anstelle der normalen array-definition in C? Kann ich nicht verstehen den Unterschied zwischen: int a[3]={1,2,3} int array[sizeof(a)/sizeof(int)] und: array=(int *)malloc(sizeof(int)*sizeof(a)); InformationsquelleAutor Antonio Ciccia | 2012-06-28
2
Antworten
Muss ich einen Weg finden, um mmap anstelle von malloc. Wie ist das möglich? (Ich bin nicht mit der libc nur syscalls) Und ja brk() ist möglich. Ich verwendet, sbrk (), aber erkannte seine nicht, sys-call... (x86
3
Antworten
typedef struct _PERSON { size_t age; unsigned char* name; }PERSON; int init(PERSON** person) { (* person) = (PERSON *) malloc(sizeof(struct _PERSON)); (* person)->age = 1; (* person)->name = (unsigned char *) malloc(sizeof(4)); (* person)->name = "NAME"; return
5
Antworten
kurze Frage Können mit der free () - Funktion ohne vorherigen Aufruf ein malloc ?? ei. void someFunc( void ) { char str[6] = {"Hello"}; //some processing here .... free(str); } Bekomme ich kein kompilieren Fehler, aber
7
Antworten
Ich habe ein Programm, das im Grunde aussieht: typedef struct cpl_def { int A; int B; int OK; struct cpls *link; }cpls; int main(void) { int n1, n2; int num = 300; /* say */ int *a;
2
Antworten
Einfach jetzt schrieb ich eine einfache Daten-Struktur Sequenz Stack in c, und begegnete einem problem. ==8142== Use of uninitialised value of size 4 ==8142== at 0x408F4AB: _itoa_word (_itoa.c:195) ==8142== by 0x40935EA: vfprintf (vfprintf.c:1629) ==8142== by 0x4099EFE: printf
2
Antworten
Ich habe Probleme beim freigeben von Speicher, der ich zugeteilt mit malloc. Das Programm läuft gut, bis er den Teil, wo es soll Speicher freigeben mit free. Hier das Programm friert ein. So Frage ich mich, was
7
Antworten
Während es gibt viele verschiedene anspruchsvolle Implementierungen von malloc /free für C/C++, ich bin auf der Suche nach einem wirklich einfachen und (vor allem) klein ist, dass ein Werk auf einer fixed-size-buffer und unterstützt realloc. Thread-Sicherheit etc.
2
Antworten
Disclaimer: Dies ist eine Hausaufgabe. Ich bin versucht es und nicht erwarten oder wollen, dass jemand es für mich tun. Nur ein paar Hinweise (hehe) wo ich bin, die falsch gehen würde geschätzt. Den Hausaufgaben verlangt von
7
Antworten
int length = strlen(src); char *structSpace = malloc(sizeof(String) + length + 1); String *string = (String*) structSpace; int *string = (int*) structSpace; *Erstellte ich ein struct namens String C und C++ sind zwei verschiedene Sprachen, das sieht
5
Antworten
Die realloc-Referenz sagt: Kann die Funktion den Speicherblock verschieben an eine neue Position, in welchem Fall die neue Position wird zurückgegeben. Bedeutet es, dass wenn ich dies tun: void foo() { void* ptr = malloc( 1024 );
2
Antworten
Also der folgende code verursacht einen Fehler: //free pointers created with malloc for (int i = 0; i < 3; i++) { if (rt_offset_rs[i] != NULL ) { free(rt_offset_rs[i]); //<== AT THiS LINE } FEHLER: Heap-block zu
2
Antworten
So, ich bin nach einem tutorial auf C-und ich bin stecken in Strukturen, da Sie die Verwendung der malloc-Funktion und diese Funktion scheint nicht gut zu gehen mit meinem compiler (Visual Studio C++ 10.0). Also folgte ich
4
Antworten
Dazu ein kurzes code-snippet, mit zwei Aufrufe exit(3) im Falle des Scheiterns. Diese Anrufe freigeben Speicher von malloc? Die Google-Suche einmal sagt, es tut, und noch mal, es ist nicht... Sollte ich das free()? Außerdem: was ist
2
Antworten
Dies ist mein code: int main(int argc, char *argv){ FILE *fp; char *tmp, *tmp2, *user, *pass, *line; printf("Inserire utente: "); scanf("%ms", &user); /* scanf %ms alloca dinamicamente la memoria */ printf("Inserire password: "); scanf("%ms", &pass); line =
8
Antworten
Ich habe versucht, zu schreiben, die ein string-replace-Funktion in C, die auf eine char *, die zugewiesen wurde, wurde mit malloc(). Es ist ein wenig anders, dass Sie es finden und ersetzen von Zeichenfolgen, sondern als Zeichen
3
Antworten
Möchte ich meinen eigenen malloc/free, so kann ich eine genaue Zuweisung kopieren. Irgendwelche gurus irgendwelche Tipps und Anregungen? Habe ich ein paar Fragen für heute: Sollte ich einfach malloc große Brocken von Speicher, und dann verteilen Sie
2
Antworten
7.22.3.4 Die malloc-Funktion Der malloc-Funktion reserviert Speicherplatz für ein Objekt, dessen Größe angegeben ist, die durch Größe und deren Wert ist unbestimmt ist. Prototyp: void *malloc(size_t size); Ich habe versucht, die übergabe eines negativen Werts als parameter:
8
Antworten
Heute, ich schien für ein interview und der interviewer fragte mich, Sagen Sie mir die Schritte, wie Sie entwerfen Sie Ihre eigenen free( ) Funktion für freigeben des allokierten Speichers. Wie kann es effizienter sein, als der
2
Antworten
Ist der max-Begrenzung für malloc (virtuellen heap denke ich mal?) für eine 32-bit-Anwendung auf einem 64-bit-system (Windows 2003 SP2 x64 um genau zu sein) 2GB? Ich bin im Grunde versucht, ein Programm darüber hinaus mit kein Glück.
4
Antworten
Dieser folgende code funktioniert einwandfrei: #include <stdio.h> #include <stdlib.h> int main() { struct node{ int a, b, c, d, e; }; struct node *ptr = NULL; printf("Size of pointer ptr is %lu bytes\n",sizeof (ptr)); printf("Size of struct
3
Antworten
Stieß ich auf folgenden code: int main() { char *A=(char *)malloc(20); char *B=(char *)malloc(10); char *C=(char *)malloc(10); printf("\n%d",A); printf("\t%d",B); printf("\t%d\n",C); return 0; } //output-- 152928264 152928288 152928304 Möchte ich wissen, wie die Verteilung und die Polsterung erfolgt
2
Antworten
Ich habe vor kurzem beschlossen, zu putzen, bis mein C-wissen (was wenig ich habe). Ich habe ziemlich schnell gemerkt, dass die ersten skill zu gehen, bewölkt war memory management. Verdammt. Habe ich beschlossen, dass das beste, was
5
Antworten
hey Leute Recht so habe ich bei diesem problem für die letzten 6 Stunden und wurden schlagen google wie verrückt ohne Erfolg. Rechts muss ich einen Zeiger auf ein array. Dieses array enthält Zeiger auf verketteten Listen.
2
Antworten
Meine server-daemon funktioniert gut auf den meisten Maschinen aber auf eines bin ich immer: malloc.c:3074: sYSMALLOc: Assertion `(old_top == (((mbinptr) (((char *) &((av)->bins[((1) - 1) * 2])) - __builtin_offsetof (struct malloc_chunk, fd)))) && old_size == 0) ||
3
Antworten
Ich brauche deinen Rat auf diesem Stück code: die Tabelle Felder, Optionen[0], options[1] etc... scheint nicht korrekt freigegeben wurden. Vielen Dank für Eure Antworten int main() { .... char **options; options = generate_fields(user_input); for(i = 0; i
4
Antworten
Ich versuche zu Lesen, eine Datei in einen Puffer in Blöcken von der Größe BLOCK_SIZE (derzeit gleich 1000 unsigned chars). Mein code zunächst fest, die Anzahl der Blöcke wird es haben, um zu Lesen, um die gesamte
2
Antworten
Hier ist das Stück code in dem "segmentation fault" Auftritt (perror wird nicht genannt): job = malloc(sizeof(task_t)); if(job == NULL) perror("malloc"); Um genauer zu sein, gdb sagt, dass die segfault geschieht innerhalb eines __int_malloc - call, das
7
Antworten
Ich bin das senden einer text-Datei - client-server Trennung der text in Pakete, die jeweils 512 bytes aber einige Pakete, die text enthalten weniger als max Größe, damit auf der Server-Seite beim Empfang jedes Paket, ich bin
2
Antworten
Ich möchte eine Funktion schreiben, die erstellt eine Kopie von einem double-array mit Zeigern. Das ist mein code bisher: #include <stdio.h> #include <stdlib.h> double* copy (double *array, int size) { double *v=malloc(sizeof(double)*size); for (int i=0; i<size; i++)
6
Antworten
Arbeite ich an der Implementierung Schwanz für eine Zuordnung. Habe ich es richtig funktioniert aber ich scheine immer einen Fehler aus frei zu zufälligen Zeiten. Kann ich nicht sehen, es aufspüren, um ein Muster oder etwas anderes,
2
Antworten
Werde ich umformulieren, die ganze Frage hier, so dass es zu vertreten hat. Ich bin in der Lage zu kopieren Binärdatei perfekt in der gleichen Maschine nicht über sockets, sondern nur eine einfache Kopie-Funktion. Zu versuchen, diesen
4
Antworten
Ich habe eine grundlegende Frage zu memcpy(): Habe ich eine Struktur, die paar arrays wie seine Mitglieder. Ich wollte kopieren Sie die Daten in der Struktur, in a buffer memory (zugewiesen durch malloc()) Sehe ich einen segmentation
2
Antworten
Valgrind sagt mir, dass es ein Leck in einem Speicher, ich habe versucht, free (), aber ich nehme an, dass es nicht richtig gemacht. Irgendwelche Ideen? Danke. Ungültige free() /delete /delete /realloc() bei 0x4C27D4E: kostenlos (vg_replace_malloc.c:427) durch
6
Antworten
Ich habe ein Programm, das versucht, die strcpy() Funktion. Ich weiß, dass, wenn man benutzt ein char-array wie: char array[10] null-terminator kann eingestellt werden durch: array[0] = '\0'; Allerdings, wie würde ich mich über die Einstellung der
12
Antworten
Ich habe dieses Stück code #include <stdio.h> #include <stdlib.h> #include <stdint.h> #include <string.h> int main(){ void *a, *b; a = malloc(16); b = malloc(16); printf("\n block size (for a): %p-%p : %li", b, a, b-a); a =
6
Antworten
Wenn eine Funktion zurück, ist der Speicher via malloc befreit? Oder kann es immer noch zugegriffen werden, die in der main () - Funktion mit Zeigern? zB. void function(int *a) { a=(int *)malloc(sizeof(int)); *a=10; } int main()
3
Antworten
#include<stdio.h> #include<string.h> char *y; y=(char *)malloc(40); //gives an error here int main() { strcpy(y,"hello world"); } error: conflicting types for 'y' error: previous declaration of 'y' was here warning: initialization makes integer from pointer without a cast