Suche Ersatz für NEW unter C
-
mit NEW kann ein neues Objekt erstellt werden. Doch wie kann ich unter C ein neues Object erstellen, welches nach Verlasse einer Funktion nicht gelöscht wird... genau wie bei NEW?
etwa:
strust test { char *str; struct test *before; struct test *after; }; struct test *ptr; int foo() { ptr=new test; }
ich möchte sowas wie eine global verfügbare linked list realisieren. auf welche dann jede funktion zugreifen darf...
-
schau dir malloc , calloc und realloc an.
Einfach bei goolge suchen.//EDIT
http://www.pronix.de/pronix-753.html
Da wirds direkt erklärt
-
http://www.google.de/search?hl=de&q=speicher+reservierung+c&btnG=Google-Suche&meta=
Das war jetzt aber schwer.
-
aha - wäre das dann korrekt?
ptr=(test *)malloc(sizeof(test));
-
TheShadow2000 schrieb:
ptr=(test *)malloc(sizeof(test));
den cast brauchst du nur in c++.
ansonsten ists okay.
wenn du aber mehr als ein element haben willst:
ptr = malloc(sizeof(test) * anzahl);wenn du chars haben willst, ist sizeof(char) immer == 1, also:
ptr = malloc(anzahl);
-
Ein kleiner Fehler noch:
// entweder ptr = malloc(sizeof(struct test)); // struct-Keyword notwendig da kein typedef // oder ptr = malloc(sizeof(*ptr));