Die grundlegende Allokationsschnittstelle. Mehr...
|
| void | mi_free (void *p) |
| | Zuvor alloziierten Speicher freigeben.
|
| |
| void * | mi_malloc (size_t size) |
| | size Bytes allozieren.
|
| |
| void * | mi_zalloc (size_t size) |
| | size Bytes null-initialisiert allozieren.
|
| |
| void * | mi_calloc (size_t count, size_t size) |
| | count Elemente zu je size Bytes null-initialisiert allozieren.
|
| |
| void * | mi_realloc (void *p, size_t newsize) |
| | Speicher auf newsize Bytes reallozieren.
|
| |
| void * | mi_recalloc (void *p, size_t count, size_t size) |
| | Speicher auf count Elemente zu je size Bytes reallozieren, mit zusätzlich mit Null initialisiertem Speicher.
|
| |
| void * | mi_expand (void *p, size_t newsize) |
| | Versuchen, Speicher direkt auf newsize Bytes zu reallozieren.
|
| |
| void * | mi_mallocn (size_t count, size_t size) |
| | count Elemente zu je size Bytes allozieren.
|
| |
| void * | mi_reallocn (void *p, size_t count, size_t size) |
| | count Elemente zu je size Bytes reallozieren.
|
| |
| void * | mi_reallocf (void *p, size_t newsize) |
| | Speicher auf newsize Bytes reallozieren.
|
| |
| char * | mi_strdup (const char *s) |
| | Eine Zeichenkette allozieren und duplizieren.
|
| |
| char * | mi_strndup (const char *s, size_t n) |
| | Eine Zeichenkette bis zu n Bytes allozieren und duplizieren.
|
| |
| char * | mi_realpath (const char *fname, char *resolved_name) |
| | Einen Dateipfad auflösen.
|
| |
Die grundlegende Allokationsschnittstelle.
◆ mi_calloc()
| void * mi_calloc |
( |
size_t | count, |
|
|
size_t | size ) |
count Elemente zu je size Bytes null-initialisiert allozieren.
- Parameter
-
| count | Anzahl der Elemente. |
| size | Größe jedes Elements. |
- Rückgabe
- Zeiger auf den alloziierten Speicher von size*count Bytes, oder NULL bei Speichermangel oder wenn
count*size überläuft.
Gibt einen eindeutigen Zeiger zurück, wenn mit size oder count von 0 aufgerufen wird.
- Siehe auch
- mi_zalloc()
◆ mi_expand()
| void * mi_expand |
( |
void * | p, |
|
|
size_t | newsize ) |
Versuchen, Speicher direkt auf newsize Bytes zu reallozieren.
- Parameter
-
| p | Zeiger auf zuvor alloziierten Speicher (oder NULL). |
| newsize | Die neue erforderliche Größe in Bytes. |
- Rückgabe
- Zeiger auf den realloziierten Speicher von newsize Bytes (immer gleich p), oder NULL bei Speichermangel oder wenn der Speicher nicht direkt erweitert werden konnte. Wenn NULL zurückgegeben wird, wird der Zeiger p nicht freigegeben. Andernfalls wird der ursprüngliche Zeiger als Ergebnis der Reallokation zurückgegeben, da er direkt mit der neuen Größe passt. Wenn newsize größer ist als die ursprünglich für p allozierte size, sind die Bytes nach size nicht initialisiert.
◆ mi_free()
Zuvor alloziierten Speicher freigeben.
Der Zeiger p muss zuvor alloziiert worden sein (oder NULL sein).
- Parameter
-
| p | Zu freizugebender Zeiger, oder NULL. |
◆ mi_malloc()
| void * mi_malloc |
( |
size_t | size | ) |
|
size Bytes allozieren.
- Parameter
-
| size | Zu allozierende Anzahl von Bytes. |
- Rückgabe
- Zeiger auf den alloziierten Speicher oder NULL bei Speichermangel. Gibt einen eindeutigen Zeiger zurück, wenn mit size 0 aufgerufen wird.
◆ mi_mallocn()
| void * mi_mallocn |
( |
size_t | count, |
|
|
size_t | size ) |
count Elemente zu je size Bytes allozieren.
- Parameter
-
| count | Die Anzahl der Elemente. |
| size | Die Größe jedes Elements. |
- Rückgabe
- Ein Zeiger auf einen Block von count * size Bytes, oder NULL bei Speichermangel oder wenn count * size überläuft.
Wenn kein Überlauf auftritt, verhält es sich exakt wie mi_malloc(count*size).
- Siehe auch
- mi_calloc()
- mi_zallocn()
◆ mi_realloc()
| void * mi_realloc |
( |
void * | p, |
|
|
size_t | newsize ) |
Speicher auf newsize Bytes reallozieren.
- Parameter
-
| p | Zeiger auf zuvor alloziierten Speicher (oder NULL). |
| newsize | Die neue erforderliche Größe in Bytes. |
- Rückgabe
- Zeiger auf den realloziierten Speicher von newsize Bytes, oder NULL bei Speichermangel. Wenn NULL zurückgegeben wird, wird der Zeiger p nicht freigegeben. Andernfalls wird der ursprüngliche Zeiger entweder freigegeben oder als Ergebnis der Reallokation zurückgegeben (falls er direkt mit der neuen Größe passt). Wenn der Zeiger p NULL ist, verhält es sich wie mi_malloc(newsize). Wenn newsize größer ist als die ursprünglich für p allozierte size, sind die Bytes nach size nicht initialisiert.
◆ mi_reallocf()
| void * mi_reallocf |
( |
void * | p, |
|
|
size_t | newsize ) |
Speicher auf newsize Bytes reallozieren.
- Parameter
-
| p | Zeiger auf zuvor alloziierten Speicher (oder NULL). |
| newsize | Die neue erforderliche Größe in Bytes. |
- Rückgabe
- Zeiger auf den realloziierten Speicher von newsize Bytes, oder NULL bei Speichermangel.
Im Gegensatz zu mi_realloc() wird bei Rückgabe von NULL der ursprüngliche Zeiger p freigegeben (falls er nicht selbst NULL war). Andernfalls wird der ursprüngliche Zeiger entweder freigegeben oder als Ergebnis der Reallokation zurückgegeben (falls er direkt mit der neuen Größe passt). Wenn der Zeiger p NULL ist, verhält es sich wie mi_malloc(newsize). Wenn newsize größer ist als die ursprünglich für p allozierte size, sind die Bytes nach size nicht initialisiert.
- Siehe auch
- reallocf (auf BSD)
◆ mi_reallocn()
| void * mi_reallocn |
( |
void * | p, |
|
|
size_t | count, |
|
|
size_t | size ) |
count Elemente zu je size Bytes reallozieren.
- Parameter
-
| p | Zeiger auf einen zuvor alloziierten Block (oder NULL). |
| count | Die Anzahl der Elemente. |
| size | Die Größe jedes Elements. |
- Rückgabe
- Ein Zeiger auf einen realloziierten Block von count * size Bytes, oder NULL bei Speichermangel oder wenn count * size überläuft.
Wenn kein Überlauf auftritt, verhält es sich exakt wie mi_realloc(p,count*size).
- Siehe auch
- reallocarray() (auf BSD)
◆ mi_realpath()
| char * mi_realpath |
( |
const char * | fname, |
|
|
char * | resolved_name ) |
Einen Dateipfad auflösen.
- Parameter
-
| fname | Dateiname. |
| resolved_name | Sollte NULL sein (kann aber auch auf einen Puffer von mindestens PATH_MAX Bytes zeigen). |
- Rückgabe
- Bei Erfolg ein Zeiger auf den aufgelösten absoluten Dateinamen, oder NULL im Fehlerfall (mit errno auf den Fehlercode gesetzt).
Wenn resolved_name NULL war, sollte das zurückgegebene Ergebnis mit mi_free() freigegeben werden.
Ersatz für die Standardfunktion realpath(), damit mi_free() auf das zurückgegebene Ergebnis angewendet werden kann (wenn resolved_name NULL war).
◆ mi_recalloc()
| void * mi_recalloc |
( |
void * | p, |
|
|
size_t | count, |
|
|
size_t | size ) |
Speicher auf count Elemente zu je size Bytes reallozieren, mit zusätzlich mit Null initialisiertem Speicher.
- Parameter
-
| p | Zeiger auf einen zuvor alloziierten Block (oder NULL). |
| count | Die Anzahl der Elemente. |
| size | Die Größe jedes Elements. |
- Rückgabe
- Ein Zeiger auf einen realloziierten Block von count * size Bytes, oder NULL bei Speichermangel oder wenn count * size überläuft.
Wenn kein Überlauf auftritt, verhält es sich exakt wie mi_rezalloc(p,count*size).
- Siehe auch
- mi_reallocn()
-
recallocarray() (auf BSD).
◆ mi_strdup()
| char * mi_strdup |
( |
const char * | s | ) |
|
Eine Zeichenkette allozieren und duplizieren.
- Parameter
-
| s | Zu duplizierende Zeichenkette (oder NULL). |
- Rückgabe
- Ein Zeiger auf neu alloziierten Speicher, initialisiert mit der Zeichenkette s, oder NULL bei Speichermangel oder wenn s NULL ist.
Ersatz für die Standardfunktion strdup(), damit mi_free() auf das zurückgegebene Ergebnis angewendet werden kann.
◆ mi_strndup()
| char * mi_strndup |
( |
const char * | s, |
|
|
size_t | n ) |
Eine Zeichenkette bis zu n Bytes allozieren und duplizieren.
- Parameter
-
| s | Zu duplizierende Zeichenkette (oder NULL). |
| n | Maximale Anzahl von zu kopierenden Bytes (ohne das abschließende Nullzeichen). |
- Rückgabe
- Ein Zeiger auf neu alloziierten Speicher, initialisiert mit der Zeichenkette s bis zu den ersten n Bytes (und immer nullterminiert), oder NULL bei Speichermangel oder wenn s NULL ist.
Ersatz für die Standardfunktion strndup(), damit mi_free() auf das zurückgegebene Ergebnis angewendet werden kann.
◆ mi_zalloc()
| void * mi_zalloc |
( |
size_t | size | ) |
|
size Bytes null-initialisiert allozieren.
- Parameter
-
- Rückgabe
- Zeiger auf neu alloziierten, null-initialisierten Speicher, oder NULL bei Speichermangel.