Dynamic memory

514 views
459 views

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
514
On SlideShare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
10
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide
  • Dynamic memory

    1. 1. Язык программирования C Динамическая работа с памятью Алексей Бованенко
    2. 2. Функции для работы с памятью <ul> <li>Заголовочный файл stdlib.h </ul> <ul> <ul> <li>void *malloc ( size_t size ) </ul> </ul> <ul> <ul> <li>void *calloc ( size_t n , size_t size ) - каждый байт выделяемой памяти инициализируется 0 </ul> </ul> <ul> <ul> <li>void *realloc ( void *ptr , size_t n ) </ul> </ul> <ul> <ul> <ul> <li>ptr == NULL — выделение памяти </ul> </ul> </ul> <ul> <ul> <li>void free ( void *ptr ) </ul> </ul>
    3. 3. Пример использования <ul> <li>char* ptr=(char *)malloc(10); </ul> <ul> <li>char* ptr=(char *)calloc(10,sizeof(char)); </ul> <ul> <li>char* ptr1=(char *)realloc(20, ptr); </ul> <ul> <li>free(ptr); </ul>
    4. 4. Пример использования <ul> <li>char **p; p=(char **)malloc(3*sizeof(int)); *p=(char *)malloc(2); **p='c'; printf(&quot;%x &quot;,**p); p++; *p=(char *)malloc(3); **p='b'; printf(&quot;%x &quot;,**p); p++; *p=(char *)malloc(4); **p='a'; printf(&quot;%x &quot;,**p); free(*p); p--; free(*p); p--; free(*p); free(p); </ul>
    5. 5. Конец Вопросы e-mail: a.bovanenko@gmail.com

    ×