C 動態分配記憶體 (備忘)

來源:互聯網
上載者:User
C 動態分配記憶體

malloc 和 free 

void*malloc(size_t size);

voidfree(void *pointer);

 

calloc 和 realloc

void*calloc(size_t num_elements, size_t elements_size);

voidrealloc(void *ptr, size_t new_size); 

 

 1 
 2 /*
 3  * alloc.h
 4  *
 5  * 定義一個不易發生錯誤的記憶體 Clerk
 6  */
 7 
 8 #include <stdlib.h>
 9 
10 #define malloc
11 #define MALLOC(num,type) (type *)alloc((num) * sizeof(type))
12 
13 void *alloc(size_t size);
14 

 

/*
 * alloc.c
 *
 * 不易發生錯誤的記憶體 Clerk的實現
 */

#include <stdio.h>
#include "alloc.h"
#undef malloc

void *alloc(size_t size)
{
     void *new_mem;
     new_mem = malloc(size);
     if(new_mem == NULL)
     {
         printf("Out of memory!\n");
         exit(1);
     }
 
     return new_mem;
}

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.