Malloc (jazyk C): Rozdiel medzi revíziami
Skočit na navigaci
Skočit na vyhledávání
Riadok 30: | Riadok 30: | ||
char *str; | char *str; | ||
− | + | str = (char *)malloc(7); //pridelí pamäť s veľkosťou 7 bajtov smerníku str | |
− | + | strcpy(str, "kiwiki"); | |
printf("Textovy retazec = %s, Adresa = %u\n", str, str); | printf("Textovy retazec = %s, Adresa = %u\n", str, str); | ||
− | + | str = (char *)realloc(str, 13); //zmení veľkosť pridelenej pamäte zo 7 bajtov na 13 bajtov | |
strcat(str, ".info"); | strcat(str, ".info"); | ||
printf("Textovy retazec = %s, Adresa = %u\n", str, str); | printf("Textovy retazec = %s, Adresa = %u\n", str, str); | ||
− | + | free(str); //zruší pridelenie pamäte | |
return(0); | return(0); |
Verzia zo dňa a času 22:03, 19. máj 2020
<ctype.h> | <limits.h> | <stdio.h> | <stdlib.h> | <math.h> | <string.h> | <time.h> |
---|---|---|---|---|---|---|
isalnum |
printf |
system |
Funkcia malloc
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
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