Malloc (jazyk C)

Z Kiwiki
Verzia z 12:22, 10. máj 2020, ktorú vytvoril Matej.F (diskusia | príspevky) (Vytvorená stránka „{{Funkcie jazyka c}} __NOTOC__ ==Funkcia system== <properties> knižnica=stdlib.h popis=Pridelí (alokuje) požadovanú veľkosť pamäte. </properties> Úplný funk…“)
(rozdiel) ← Staršia verzia | Aktuálna úprava (rozdiel) | Novšia verzia → (rozdiel)
Skočit na navigaci Skočit na vyhledávání
Rozdelenie funkcií jazyka C podľa knižníc, v ktorých sú definované
<ctype.h> <limits.h> <stdio.h> <stdlib.h> <math.h> <string.h> <time.h>

isalnum
isalpha
isdigit
isgraph
islower
isprint
ispunct
isspace
isupper
isxdigit

printf
scanf
getc
putc
getchar
putchar
fprintf
fscanf
fgetc
fputc
fopen
fclose
feof

system
malloc
qsort
rand
srand
atoi
atol
atof
itoa
div
abs
labs

pow
fabs
exp
log
log10
sqrt
ceil
sin
cos

strlen
strcmp
strchr
strcpy
strstr
strcat
strncat

clock
time

Funkcia system

knižnica

stdlib.h

popis

Pridelí (alokuje) požadovanú veľkosť pamäte.


Úplný funkčný prototyp:

  void *malloc(size_t size)

Podrobný popis funkcie

Táto funkcia pridelí (alokuje) požadovanú veľkosť pamäte a vráti smerník odkazujúci na túto časť pamäte.[1]

Parametre

size
Veľkosť vyžadovanej pamäte v bajtoch.

Návratová hodnota

Vráti smerník odkazujúci na pridelenú (alokovanú) časť pamäte. Ak sa nepodarilo prideliť (alokovať) pamäť, tak vráti NULL.

Príklad

 1 #include <stdio.h>
 2 #include <stdlib.h>
 3 #include <string.h>
 4 
 5 int main() {
 6 	char *str;
 7 
 8 	str = (char *)malloc(7); //pridelí pamäť s veľkosťou 7 bajtov smerníku str
 9 	strcpy(str, "kiwiki");
10 	printf("Textovy retazec = %s,  Adresa = %u\n", str, str);
11 
12 	str = (char *)realloc(str, 13); //zmení veľkosť pridelenej pamäte zo 7 bajtov na 13 bajtov
13 	strcat(str, ".info");
14 	printf("Textovy retazec = %s,  Adresa = %u\n", str, str);
15 
16 	free(str); //zruší pridelenie pamäte
17 
18 	return(0);
19 }

Výstup:

Textovy retazec = kiwiki,  Adresa = 14313456
Textovy retazec = kiwiki.info,  Adresa = 14313912

Zdroje