C Tutorial/Memory/Memory Allocation — различия между версиями

Материал из C\C++ эксперт
Перейти к: навигация, поиск
м (1 версия: Импорт контента...)
 
м (1 версия: Импорт контента...)
 
(нет различий)

Текущая версия на 13:32, 25 мая 2010

Memory Allocation

  1. The functions for allocation of memory: malloc, relloc, and calloc.
  2. The functions return the pointers to void, which can be typecast to any data type.
  3. These functions take the input as the size of memory requirement.


<source lang="cpp">#include <stdio.h>

  1. include <malloc.h>

main(){

   int *base;
   int i,j;
   int cnt=0;
   int sum=0;
   printf("how many integers you have to store \n");
   scanf("%d",&cnt);
   base = (int *)malloc(cnt * sizeof(int));
   printf("the base of allocation is %16lu \n",base);
   if(!base)
       printf("unable to allocate size \n");
   else {
       for(j=0;j<cnt;j++)
          *(base+j)=5;
   }
   sum = 0;
   for(j=0;j<cnt;j++)
       sum = sum + *(base+j);
   printf("total sum is %d\n",sum);
   free(base);
   printf("the base of allocation is %16lu \n",base);
   base = (int *)malloc(cnt * sizeof(int));
   printf("the base of allocation is %16lu \n",base);
   base = (int *)malloc(cnt * sizeof(int));
   printf("the base of allocation is %16lu \n",base);
   base = (int *)calloc(10,2);
   printf("the base of allocation is %16lu \n",base);

}</source>

how many integers you have to store
1234
the base of allocation is          4016352
total sum is 6170
the base of allocation is          4016352
the base of allocation is          4016352
the base of allocation is          4021296
the base of allocation is          4007120